|  | 		    
					
        
         
          
         
	
          | |  | 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
            
             |  |  | 
 |  |