Avatar billede hanstad Nybegynder
24. januar 2001 - 16:05 Der er 12 kommentarer og
2 løsninger

HJÆLP med SQL

Er der nogen som kan gennemskue dette? Jeg forsøger at SELECTE * FROM arkiv hvor titlen skal indeholde test. Min sql sætning ser således ud:

te = \"*test*\"
StrSql = \"SELECT * FROM arkiv WHERE titel LIKE \" & te

jeg får fejlmeddelsen:
ADODB.Recordset fejl \'800a0bcd\'

Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

/resultat.asp, linje 39

Hvor linje 39 er rs.movefirst
Der er fire poster, som alle indeholder \"test\". Hvad gør jeg galt? Jeg har prøvet at sætte \"\'\" udenom te, men det virker stadig ikke
Avatar billede doeleman Nybegynder
24. januar 2001 - 16:08 #1
I SQL skal du bruge %-tegn (procent) som wildcard
Avatar billede tpiil Nybegynder
24. januar 2001 - 16:09 #2
StrSql = \"SELECT * FROM arkiv WHERE titel LIKE \'%\" & te & \"%\'\"
Avatar billede lp Nybegynder
24. januar 2001 - 16:14 #3
du skal desuden lave en if statement udenom dit loop således denne fejl ikke opstår....fejlen opstår egentlig fordi der ikke var nogle resultater i databasen fordi du bruger det forkerte wildcard.
altså før du linje 39 skriver du:

If Not rs.EoF Then
linje 39 og de derefter følgende loop
End If
som kommer under alt det den skal vise!
Avatar billede lp Nybegynder
24. januar 2001 - 16:15 #4
bortset fra det er det gutterne siger rigtigt....
Avatar billede hanstad Nybegynder
24. januar 2001 - 16:16 #5
Det virker ikke!
Hvis jeg laver en response.write strsql får jeg følgende. Ser rigtigt ud ikke?

SELECT * FROM nyheds_arkiv WHERE titel LIKE \'%*test*%\'

Alligevel får jeg samme besked på min egen pc (PWS) og jeg får
ADODB.Recordset error \'800a0bcd\'

Unknown runtime error

/ris/resultat.asp, line 41
hvis jeg uploader det.
Avatar billede tpiil Nybegynder
24. januar 2001 - 16:18 #6
nej de der * skal væk!
Avatar billede hanstad Nybegynder
24. januar 2001 - 16:19 #7
> lp

Ja, hvis jeg laver en if not rs.eof, så udføres ingenting. Så du kan godt have lidt ret, men jeg ved at der findes records med test. Jeg kan kører sql-sætningen i ACCESS og der virker det.
Avatar billede lp Nybegynder
24. januar 2001 - 16:21 #8
men det er fordi * opfattes som en del af din tekst altså skal der stå *test* et sted i din database og det gør der sikkert ikke!

som tpiil siger skal * væk da de ikke bruges som wildcard i sql
Avatar billede hanstad Nybegynder
24. januar 2001 - 16:21 #9
Så virker det. Tak!

Virker % så som * eller hvad?
Avatar billede lp Nybegynder
24. januar 2001 - 16:22 #10
ja
Avatar billede hanstad Nybegynder
24. januar 2001 - 16:24 #11
> lp
Undskyld jeg har afvist dit svar, men jeg fik ramt forkert da jeg accepterede.
Avatar billede lp Nybegynder
24. januar 2001 - 16:24 #12
og det er det som man kalder wildcards.......desuden skal du lave det if statement uden om som jeg skriver for at der ikke kan opstå fejl, hvis en bruger søger på noget som ikke findes, det er ganske almindelig god kode som SKAL være sådan, også selvom du ikke vil give nogle point for det.......du kan jo evt lave en else som udskriver \"Der var ingen søgeresultater\"
Avatar billede lp Nybegynder
24. januar 2001 - 16:24 #13
det er helt i orden, jeg har ikke brug for point og overlever det nok :-)
Avatar billede hanstad Nybegynder
24. januar 2001 - 16:25 #14
> lp

Det gør jeg også altid, men tak alligevel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester