|  | 		    
					
        
         
          
         
	
          | |  | [SQL] LIKE '%tekst%' virker ikke Fra : Steen Eiler Jørgense~
 | 
 Dato :  05-05-03 20:01
 | 
 |  | 
 
            På http://www.w3schools.com/sql/sql_where.asp  kan man læse, at
 <citat>
 The following SQL statement will return persons with first names that start
 with an 'O':
 SELECT * FROM Persons WHERE FirstName LIKE 'O%'
 The following SQL statement will return persons with first names that end
 with an 'a':
 SELECT * FROM Persons WHERE FirstName LIKE '%a'
 The following SQL statement will return persons with first names that
 contains the pattern 'la':
 SELECT * FROM Persons WHERE FirstName LIKE '%la%'
 </citat>
 ....men hvad så, når man har HTML liggende i sin database? Hvis man f.eks.
 har "<p>Mogens</p>" liggende i sin database, vil LIKE 'Moge%' så blive
 returneret?
 Jeg kan nemlig ikke få min database til at returnere noget som helst, hvis
 jeg fjerner %-tegnene!
 --
 Steen Eiler Jørgensen
 "Time has resumed its shape. All is as it was before.
 Many such journeys are possible. Let me be your gateway."
            
             |  |  | 
  Steen Eiler Jørgense~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Steen Eiler Jørgense~
 | 
 Dato :  05-05-03 21:01
 | 
 |  | 
 
            "Steen Eiler Jørgensen" <oz1sejREMOVETHIS@get2net.dk> wrote
 > Jeg kan nemlig ikke få min database til at returnere noget som helst, hvis
 > jeg fjerner %-tegnene!
 Hmmm, og det var jo fordi jeg troede, at 'hej%' ville trigge på f.eks. 'Og
 så sagde han hejsa til mig'. Men så indså jeg, at det manglende første
 procenttegn indikerer, at HELE FELTET begynder med hej... Hvor dum kan man
 være    Så lad mig da stille et lille tillægsspørgsmål:
 Med kommandoen RecordSet.MoveFirst kan man f.eks. spole et recordset frem
 til begyndelsen.
 Men kan man også på en eller anden måde få fat i antallet af records i et
 recordset? Altså:
 <p>Dette recordset indeholder <% =RecordSet.NumberOfRecords %> records.</p>
 ???
 --
 Steen Eiler Jørgensen
 "Time has resumed its shape. All is as it was before.
 Many such journeys are possible. Let me be your gateway."
            
             |  |  | 
  Torben Brandt (05-05-2003) 
 
	
          | |  | Kommentar Fra : Torben Brandt
 | 
 Dato :  05-05-03 21:18
 | 
 |  | 
 
            Steen Eiler Jørgensen wrote:
 > Med kommandoen RecordSet.MoveFirst kan man f.eks. spole et recordset frem
 > til begyndelsen.
 > 
 > Men kan man også på en eller anden måde få fat i antallet af records i et
 > recordset? Altså:
 > 
 > <p>Dette recordset indeholder <% =RecordSet.NumberOfRecords %> records.</p>
 Prøv at se på:
 <URL:http://www.devguru.com/Technologies/ado/quickref/recordset.html> mvh Torben
            
             |  |  | 
   Steen Eiler Jørgense~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Steen Eiler Jørgense~
 | 
 Dato :  05-05-03 21:35
 | 
 |  | 
 
            "Torben Brandt" <name@domain.invalid> wrote
 > <p>Dette recordset indeholder <% =RecordSet.NumberOfRecords %>
 records.</p>
 Prøv at se på:
 <URL:http://www.devguru.com/Technologies/ado/quickref/recordset.html> Ja, det ser jo umiddelbart ud som om, at RecordSet.RecordCount er hvad jeg
 leder efter... -men den returnerer bare værdien -1 selvom recordsettet
 indeholder 20 records! Hvad gør jeg galt?
 --
 Steen Eiler Jørgensen
 "Time has resumed its shape. All is as it was before.
 Many such journeys are possible. Let me be your gateway."
            
             |  |  | 
    Ryan Dahl (05-05-2003) 
 
	
          | |  | Kommentar Fra : Ryan Dahl
 | 
 Dato :  05-05-03 21:51
 | 
 |  | 
 
            On Mon, 5 May 2003 22:35:20 +0200, "Steen Eiler Jørgensen"
 <oz1sejREMOVETHIS@get2net.dk> wrote:
 >Prøv at se på:
 ><URL:http://www.devguru.com/Technologies/ado/quickref/recordset.html> >
 >Ja, det ser jo umiddelbart ud som om, at RecordSet.RecordCount er hvad jeg
 >leder efter... -men den returnerer bare værdien -1 selvom recordsettet
 >indeholder 20 records! Hvad gør jeg galt?
 Hej,
 en alternativ måde er, at lave følgende sql-kald:
 "SELECT Count(*) AS Antal FROM TabelNavn" - Så ligger antal poster i
 feltet: 'Antal'  i første post.
 mvh
 Ryan
            
             |  |  | 
    Torben Brandt (05-05-2003) 
 
	
          | |  | Kommentar Fra : Torben Brandt
 | 
 Dato :  05-05-03 22:15
 | 
 |  | 
 
            Steen Eiler Jørgensen wrote:
 > "Torben Brandt" <name@domain.invalid> wrote
 >><p>Dette recordset indeholder <% =RecordSet.NumberOfRecords %>
 > records.</p>
 > 
 > Prøv at se på:
 > <URL:http://www.devguru.com/Technologies/ado/quickref/recordset.html> > 
 > Ja, det ser jo umiddelbart ud som om, at RecordSet.RecordCount er hvad jeg
 > leder efter... -men den returnerer bare værdien -1 selvom recordsettet
 > indeholder 20 records! Hvad gør jeg galt?
 Nyt link :)
 <URL:http://www.asp-faq.dk/article/?id=60> mvh Torben
            
             |  |  | 
   Jens Gyldenkærne Cla~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Jens Gyldenkærne Cla~
 | 
 Dato :  05-05-03 22:10
 | 
 |  | 
 
            Ryan Dahl skrev:
 > en alternativ måde er, at lave følgende sql-kald:
 > "SELECT Count(*) AS Antal FROM TabelNavn" - Så ligger antal
 > poster i feltet: 'Antal'  i første post.
 Den metode kan anbefales. Se fx hvad 4GuysFromRolla skriver om at
 tælle poster:
        <http://www.4guysfromrolla.com/webtech/120898-1.shtml> -- 
 Jens Gyldenkærne Clausen
 Svar venligst under det du citerer, og citer kun det der er
 nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
 hvordan på http://usenet.dk/netikette/citatteknik.html |  |  | 
    Torben Brandt (05-05-2003) 
 
	
          | |  | Kommentar Fra : Torben Brandt
 | 
 Dato :  05-05-03 23:54
 | 
 |  | 
 
            Jens Gyldenkærne Clausen wrote:
 > Ryan Dahl skrev:
 >>en alternativ måde er, at lave følgende sql-kald:
 >>"SELECT Count(*) AS Antal FROM TabelNavn" - Så ligger antal
 >>poster i feltet: 'Antal'  i første post.
 > 
 > Den metode kan anbefales. Se fx hvad 4GuysFromRolla skriver om at
 > tælle poster:
 >        <http://www.4guysfromrolla.com/webtech/120898-1.shtml> Det er da en lang artikel uden særlig meget indhold...
 Som jeg læser den, så er problemet ikke at bruge rs.RecordCount, men at 
 den ikke er pålidelig før man har besøgt den sidste post:
   One of the problems with DAO is that you couldn't tell what the
   .RecordCount was [accurately] unless you visited the end of the
   recordset.
 og naturligvis at man skal have den rigtige cursorType.
 Er det virkelig korrekt? Og gælder det også f.eks. rs.PageCount og 
 andre, der bygger på hele recordsettet?
 Torben
            
             |  |  | 
   Jens Gyldenkærne Cla~ (06-05-2003) 
 
	
          | |  | Kommentar Fra : Jens Gyldenkærne Cla~
 | 
 Dato :  06-05-03 00:17
 | 
 |  | 
 
            Torben Brandt skrev:
 >>          <http://www.4guysfromrolla.com/webtech/120898-1.shtml > Det er da en lang artikel uden særlig meget indhold...
 Det er vel som man tager den.
 > Som jeg læser den, så er problemet ikke at bruge
 > rs.RecordCount, men at den ikke er pålidelig før man har
 > besøgt den sidste post:
 ....hvis man har valgt en forkert cursortype.
 Hvis du bare læser pointen i artiklen står der allerøverst:
  ,--------
 |  Thou shalt use neither a "counting" loop nor .MoveLast to count the
 |  number of records in an ADO recordset. (either set the .CursorType
 |  correctly or use a Count() in SQL)
  `--------
 Det er altså ikke brug af recordCount der er forkert, men derimod
 brug af MoveLast (dvs. en CursorType der har brug for MoveLast for
 at tælle korrekt).
 > Er det virkelig korrekt? Og gælder det også f.eks.
 > rs.PageCount og andre, der bygger på hele recordsettet?
 Så vidt jeg ved plejer <http://www.4guysfromrolla.com/>  at være ret
 pålidelige. Jeg ved ikke med PageCount m.fl. - men igen: husk at
 der er forskel på hvilken cursortype der anvendes.
 -- 
 Jens Gyldenkærne Clausen
 Svar venligst under det du citerer, og citer kun det der er
 nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
 hvordan på http://usenet.dk/netikette/citatteknik.html |  |  | 
    Torben Brandt (07-05-2003) 
 
	
          | |  | Kommentar Fra : Torben Brandt
 | 
 Dato :  07-05-03 16:47
 | 
 |  | 
 
            Jens Gyldenkærne Clausen wrote:
 > Torben Brandt skrev:
 >>>         <http://www.4guysfromrolla.com/webtech/120898-1.shtml >>Det er da en lang artikel uden særlig meget indhold...
 > Det er vel som man tager den.
 Jeg manglede måske en ":)"
 >>Som jeg læser den, så er problemet ikke at bruge
 >>rs.RecordCount, men at den ikke er pålidelig før man har
 >>besøgt den sidste post:
 > 
 > ...hvis man har valgt en forkert cursortype.
 Nå ok, det var sådan det skulle forstås
 > Så vidt jeg ved plejer <http://www.4guysfromrolla.com/>  at være ret
 > pålidelige. Jeg ved ikke med PageCount m.fl. - men igen: husk at
 Det er jeg helt enig.
 Tak for uddybelsen,
 Torben
            
             |  |  | 
  Jens Gyldenkærne Cla~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Jens Gyldenkærne Cla~
 | 
 Dato :  05-05-03 20:52
 | 
 |  | 
 
            Steen Eiler Jørgensen skrev:
 > ...men hvad så, når man har HTML liggende i sin database?
 Set fra en databases vinkel er HTML bare almindelig tekst.
 > Hvis man f.eks. har "<p>Mogens</p>" liggende i sin database, vil
 > LIKE 'Moge%' så blive returneret?
 Mønstret 'Moge%' vil ikke fange "<p>Mogens</p>" fordi teksten
 starter med "<p>" - og ikke med "Moge".
 Hvis det kun er en enkelt tekst (fx et navn) du har liggende i
 feltet kan du vel blot tilføje html-koderne når du udskriver din
 side - så forstyrrer de ikke under søgningen. En anden mulighed er
 at lægge html-koderne i et felt for sig.
 -- 
 Jens Gyldenkærne Clausen
 Svar venligst under det du citerer, og citer kun det der er
 nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
 hvordan på http://usenet.dk/netikette/citatteknik.html |  |  | 
  Steen Eiler Jørgense~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Steen Eiler Jørgense~
 | 
 Dato :  05-05-03 21:15
 | 
 |  | "Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote
 
 > Mønstret 'Moge%' vil ikke fange "<p>Mogens</p>" fordi teksten
 > starter med "<p>" - og ikke med "Moge".
 
 Ja, det indså jeg efter et stykke tid.
 
 > Hvis det kun er en enkelt tekst (fx et navn) du har liggende i
 > feltet kan du vel blot tilføje html-koderne når du udskriver din
 > side - så forstyrrer de ikke under søgningen. En anden mulighed er
 > at lægge html-koderne i et felt for sig.
 
 Mnjah, det er jo hele sider (artikler) jeg har liggende. Jeg tror
 efterhånden, jeg har sjusset mig frem til, at hvis jeg ved en søgning på
 "tag" vil have listet de artikler, der indeholder ordet "tagrende" men ikke
 "udtag", skal jeg anvende en konstruktion a la
 
 SELECT * FROM artikler WHERE tekst LIKE '% "&soegestreng&"%' OR tekst LIKE
 '%"&">"&soegestreng&"%'
 
 -altså: foran min søgestreng må der gerne være et " " eller et ">", men så
 heller ikke mere.
 
 Læg i øvrigt mærke til, at jeg ikke kan skrive OR tekst LIKE '%>"&soege...
 da %> bliver tolket som afslutning på ASP-blokken!
 
 Et lille "&" imellem løser det problem...
 
 --
 Steen Eiler Jørgensen
 "Time has resumed its shape. All is as it was before.
 Many such journeys are possible. Let me be your gateway."
 
 
 
 
 |  |  | 
  Jens Gyldenkærne Cla~ (05-05-2003) 
 
	
          | |  | Kommentar Fra : Jens Gyldenkærne Cla~
 | 
 Dato :  05-05-03 22:07
 | 
 |  | 
 
            Steen Eiler Jørgensen skrev:
 > SELECT * FROM artikler WHERE tekst LIKE '% "&soegestreng&"%'
 > OR tekst LIKE '%"&">"&soegestreng&"%'
 >
 > -altså: foran min søgestreng må der gerne være et " " eller et
 > ">", men så heller ikke mere.
 Fornuftigt nok.
 > Læg i øvrigt mærke til, at jeg ikke kan skrive OR tekst LIKE
 > '%>"&soege... da %> bliver tolket som afslutning på
 > ASP-blokken!
 [teste, teste] - du har jo ret! Tyndt (men måske nødvendigt hvis
 asp i det hele taget skal kunne melde om uafsluttede strenge).
 -- 
 Jens Gyldenkærne Clausen
 Svar venligst under det du citerer, og citer kun det der er
 nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
 hvordan på http://usenet.dk/netikette/citatteknik.html |  |  | 
 |  |