/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Redirect hvis en post ikke eksisterer?
Fra : Rasmus Nielsen


Dato : 18-10-03 15:02

Hej,

Jeg har en SQL, der ser således ud:
SQL = "select * from produktblade where varenummer = " & varenr & ""

Jeg vil gerne have en Response.Redirect, der bliver udført, hvis der ikke er
en post i DB'en med det nummer. Hvordan gør jeg det?

--
Venlig hilsen, Rasmus Nielsen.



 
 
Rasmus Nielsen (18-10-2003)
Kommentar
Fra : Rasmus Nielsen


Dato : 18-10-03 15:12

Jeg har fundet ud af det - jeg havde lige glemt at der var noget der hed
rs.eof...

--
Venlig hilsen, Rasmus Nielsen.



Thomas Voller (18-10-2003)
Kommentar
Fra : Thomas Voller


Dato : 18-10-03 15:18

"Rasmus Nielsen" <postmaster@rasmusn.dk> skrev...
> Jeg vil gerne have en Response.Redirect, der bliver udført, hvis der ikke
er
> en post i DB'en med det nummer. Hvordan gør jeg det?

Du skal for det første eksekvere SQL-sætningen vha. f.eks. et
connection-objekt og eller et recordset-object. Jeg viser det med et
Connection og et Recordset-object.

Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = MyConnString
objConn.Open

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Source = SQL
objRS.ActiveConnection = objConn
objRS.Open


Her kommer vi så til sagens kerne. Du kan checke om dit cursoren i dit
recordset peger på BOF eller EOF. Hvis den gør det, så er dit recordset
tomt..

If objRS.BOF OR objRS.EOF Then
Response.Redirect("http://dinside.dk")
Else
'Gør noget med din post.
End If


Husk så desuden at lukke objConn og objRS.

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing



Torben Brandt (18-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 18-10-03 16:17

Thomas Voller skrev:
> Her kommer vi så til sagens kerne. Du kan checke om dit cursoren i dit
> recordset peger på BOF eller EOF. Hvis den gør det, så er dit recordset
> tomt..
>
> If objRS.BOF OR objRS.EOF Then
> Response.Redirect("http://dinside.dk")
> Else
> 'Gør noget med din post.
> End If

Du skal se på objRS.BOF _AND_ objRS.EOF.
For .BOF er altid sand når recordsettet lige er åbnet.
Derfor er det også nok at se på om .EOF er sand, for at se om
recordsettet er tomt.

/Torben


Thomas Voller (18-10-2003)
Kommentar
Fra : Thomas Voller


Dato : 18-10-03 16:36

"Torben Brandt" <name@domain.invalid> skrev
> Du skal se på objRS.BOF _AND_ objRS.EOF.
> For .BOF er altid sand når recordsettet lige er åbnet.

Den er jeg ikke med på? Hvis jeg åbner et recordset som skitseret i min
forrige post, så stiller cursoren sig da på den første record i
recordsettet, ikke på BOF. Altså så længe vi antager recordsettet ikke er
tomt.
Hvis recordsettet er tomt, så er både BOF og EOF indtruffet. Du kan da godt
have ret i man kan så bruge AND, men da både BOF og EOF er sandt, så kan man
vel lige så godt bruge OR? Det skulle der da ikke være noget galt i?

Ret mig, hvis jeg tager fejl?


> Derfor er det også nok at se på om .EOF er sand, for at se om
> recordsettet er tomt.

Rigtigt nok. Jeg forsøger bare at tage højde for så mange ting som muligt
når jeg skruer noget sammen. Det er en god vane. Her er det dog en smule
overflødigt at checke for BOF.



Mvh. Thomas.



Torben Brandt (18-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 18-10-03 16:47

Thomas Voller skrev:
> "Torben Brandt" skrev:
>
>>Du skal se på objRS.BOF _AND_ objRS.EOF.
>>For .BOF er altid sand når recordsettet lige er åbnet.
>
> Den er jeg ikke med på? Hvis jeg åbner et recordset som skitseret i min
> forrige post, så stiller cursoren sig da på den første record i
> recordsettet, ikke på BOF. Altså så længe vi antager recordsettet ikke er
> tomt.
>
> Ret mig, hvis jeg tager fejl?

Næ, det var vist mig, der var gal på den. Sorry :)

/Torben


Jørn Andersen (18-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-03 18:38

On Sat, 18 Oct 2003 17:46:55 +0200, Torben Brandt
<name@domain.invalid> wrote:

>Næ, det var vist mig, der var gal på den. Sorry :)

Men du var ikke gal på, at det er nok at teste på .eof

--
Jørn Andersen,
Brønshøj

Jørgen Müller (19-10-2003)
Kommentar
Fra : Jørgen Müller


Dato : 19-10-03 07:08

Thomas Voller skrev:
>If objRS.BOF OR objRS.EOF Then

vil det så ikke være mere korrekt at indkapsle bof og eof i en prantes?

If (rs.BOF Or rs.EOF) Then

--
Med Venlig Hilsen
Jørgen Müller



Thomas Voller (19-10-2003)
Kommentar
Fra : Thomas Voller


Dato : 19-10-03 11:26

"Jørgen Müller" <j.muller@mail.tele.dk> skrev i
> vil det så ikke være mere korrekt at indkapsle bof og eof i en prantes?
> If (rs.BOF Or rs.EOF) Then


Tjoh, måske sådan rent logisk i koden. Det er dog ikke nødvendigt. Det er
derimod nødvendigt hvis man laver noget i denne stil:

If NOT (objRS.BOF OR objRS.EOF) Then
'Recordsettet er tomt.
End If


Uden parantesen vil det blive opfattet som om recordsettet ikke må være BOF,
men skal være EOF. Dog har vi har jo flere gange fået konstateret at det er
nok at checke for EOF, så der er ingen grund til at rode sig ud i
paranteser.

If NOT objRS.EOF Then
'Recordsettet er tomt.
End If


Mvh. Thomas.



Tom Jensen (19-10-2003)
Kommentar
Fra : Tom Jensen


Dato : 19-10-03 12:45

"Thomas Voller"
> If NOT objRS.EOF Then
> 'Recordsettet er tomt.
> End If
Og så lige en pikant detalje: Der skal _ikke_ stå NOT
Der er en slåfejl fra Thomas, han ved godt at der ser sådan ud:

if objRS:EOF then
' Ingen records
else
' Der er records
end if

--
Med venlig hilsen

Tom Jensen
FF Soft
www.ffsoft.dk

Hent en gratis web shop



Jørn Andersen (19-10-2003)
Kommentar
Fra : Jørn Andersen


Dato : 19-10-03 15:33

On Sun, 19 Oct 2003 12:44:45 +0100, "Tom Jensen" <tje@fsoft.dk> wrote:

>Der er en slåfejl fra Thomas, han ved godt at der ser sådan ud:
>
>if objRS:EOF then

"." i stedet for ":"

Der er en slåfejl fra Tom, han ved godt at der ser sådan ud:
If objRS.EOF Then



--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste