21. oktober 2005 - 10:07
Der er
19 kommentarer og 1 løsning
SQL like med tal og bogstaver
Hej Jeg har et problem med en SQL sætning. Jeg bruger access som database og interface asp. Og har et tekst felt hvor der f.eks kan stå en af følgelige værdier: A123 B 320 AA12345 Hvis jeg så skriver følgende SQL sæntning kommer der ingen poster frem: Select * from t_tabel where nr like '%A%' Select * from t_tabel where nr like '%1%' Men hvorfor?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
21. oktober 2005 - 10:39
#1
Prøv at bruge * i stedet for % - det kan Access vist godt lide.
21. oktober 2005 - 11:03
#2
Det virker i access men ikke via ASP. :(
21. oktober 2005 - 11:19
#3
Virker % så også i Access men ikke i ASP? Hvordan connecter du egentlig til din Access?
21. oktober 2005 - 12:32
#4
Prøv: Select * from t_tabel where nr Like ('%A%') /kurt
21. oktober 2005 - 14:01
#5
Connecter sådan her: <% set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open server.mappath("system.mdb") %> Select * from t_tabel where nr Like ('%A%') >> nej det virker heller ikke
21. oktober 2005 - 14:07
#6
Select * from t_tabel where nr like *A* eller Select * from t_tabel where nr like %A%
21. oktober 2005 - 14:11
#7
kabbak>> det vikker ikke i min asp side men i access
21. oktober 2005 - 15:58
#8
Er du 100% sikker på at din ASP-side overhovedet kommer igennem til databasen? Hvad med: SELECT * FROM t_tabel Kommer der noget ud?
21. oktober 2005 - 18:22
#9
ja, hvis jeg laver følgende : <!--#include file="dbconnect.asp"--> <% SQL = "Select * from t_biler" response.write(SQL & "<br>") set rs = conn.execute(SQL) do until rs.eof response.write(rs("id") & "<br>") rs.movenext loop rs.close conn.close set conn = nothing %> Så får jeg det her ud: Select * from t_biler 1 2 3
22. oktober 2005 - 11:48
#10
Jeg ville nu hellere have set resultatet af: response.write(rs("nr") & "<br>") Umiddelbart kan jeg ikke se hvad der går galt. Når jeg prøver at gå på en Access 2000 database via en OleDb-forbindelse, så udføres LIKE med %-tegn som den forventes. Prøv evt. at vise os noget mere af din kode.
24. oktober 2005 - 11:01
#11
Her er et kopi af min kode: SQL = "Select count(*) as antal from t_biler where regnr like '*" & request("regnr") & "*'" set rs = conn.execute(SQL) antal = rs("antal") rs.close response.write(antal)
24. oktober 2005 - 19:36
#12
I 9 ud af 10 tilfælde skyldes underlig adfærd med databaser at ens SQL ser anderledes ud end det man forventede. Prøv derfor altid med en debug-udskrift: SQL = "Select count(*) as antal from t_biler where regnr like '*" & request("regnr") & "*'" Response.Write "DEBUG: " & SQL & "<br>" set rs = conn.execute(SQL) antal = rs("antal") rs.close response.write(antal)
24. oktober 2005 - 21:23
#13
nu har jeg prøvet med /test.asp?regnr=t svar: DEBUG: Select count(*) as antal from t_biler where regnr like '*t*' 0
24. oktober 2005 - 22:01
#14
Og havd er resultatet med '%'? Og kan du ikke give et par eksempler på nogle af de poster, du mener skal give dig nogle hits?
24. oktober 2005 - 22:12
#15
poster i databasen id kundeid bil regnr stelnr 1 1 Opel Astra TT33333 etetert 2 2 T9 ER45678 tetetew 3 3 BMW 320 YY54545 wrtrtrt
24. oktober 2005 - 22:16
#16
hmm, nu fatter jeg ikke en skid, prøver igen med '%' og nu virker det.
24. oktober 2005 - 22:45
#17
Somme tider er det der IT bare for underligt. ;^) Det har sikkert været noget helt andet som gav problemer. :^|
25. oktober 2005 - 07:13
#18
Ja, helt sikkert. Smid et svar og du får point. :)
25. oktober 2005 - 12:46
#19
Nej tak til point på denne her. Tag du den bare selv igen. :^)
25. oktober 2005 - 15:32
#20
Oki. Men tak for hjælpen alligevel. :)
Kurser inden for grundlæggende programmering