SQL søgning => fejl
HejJeg har et SQL problem, som jeg simpelthen ikke kan forstå - så hjælp derude.
Jeg har oprettet en database, som via en asp hjemmeside skal give adgang til updates for en udvalgt skare.
Databasen blev i første omgang oprettet med data for en test klient. Her virker alt, som det skal, og alle er lykkelige.
Herefter uploades de rigtige klientdata til databasen i form af en TAB formateret .txt fil med SQL kommandoen:
strQuery = "LOAD DATA LOCAL INFILE 'c:/xxxx/xxxx.txt' INTO TABLE tabel;" - det går tilsyneladende strygende, men efterfølgende søgning i databasen med de uploadede klient data giver en EOF/BOF fejl.
Ved indskrænkning af søgeord til ID (primær nøgle) dukker imidlertid de ønskede data op. Upload af data er OK.
Ved yderligere forsøg konstateres det, at det kun er den ene af to betingelser (LICENS) i søgefunktionen, som udløser fejlen.
Eks - søgning med TEST LICENS:
strQuery = "SELECT * FROM tool WHERE LICENS = '2222444466668888'"
Resultat - OK:
Session('Kundenr')= 1555555
Session('Licens')= 2222444466668888
Eks - søgning med uploaded klient LICENS:
strQuery = "SELECT * FROM tool WHERE LICENS = 'D4CF8419C4BE50C6'"
Resultat - EOF eller BOF - se nedenstående ASP connection kode.
Kundenr eller licens er forkert. Prøv igen.
Ovenstående klient ID nr i tabel er 61.
Eks - søgning med ID:
strQuery = "SELECT * FROM tabel WHERE ID = '61'"
Resultat - OK:
Session('Kundenr')= 1813500
Session('Licens')= D4CF8419C4BE50C6
Det ses her, at data er fuldkomment identiske???
Eks - søgning med samme klients KUNDENR:
strQuery = "SELECT * FROM tabel WHERE KUNDENR = '1813500'"
Resultat - OK:
Session('Kundenr')= 1813500
Session('Licens')= D4CF8419C4BE50C6
Igen ses det, at data fuldkomment identiske???
ASP connection kode
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.CursorLocation = 3
Rs.Open strQuery, Con,1,3,1
If Rs.EOF OR Rs.BOF then
Rs.Close
Con.Close
Set Rs = Nothing
Set Con = Nothing
Response.Write "Kundenr eller licens er forkert. Prøv igen."
Else
Session("Kundenr") = Rs("KUNDENR")
Session("Licens") = Rs("LICENS")
Rs.Close
Con.Close
Set Rs = Nothing
Set Con = Nothing
Response.Write "<BR>Session('Kundenr')= " & Session("Kundenr")
Response.Write "<BR>Session('Licens')= " & Session("Licens")
end if
Tabel
strQuery = "DESCRIBE tabel"
...............
response.write Rs.fields(0).value & "<br>"
response.write Rs.fields(1).value & "<br>"
response.write Rs.fields(2).value & "<br>"
ID
int(10) unsigned
NO
KUNDENR
varchar(100)
YES
LICENS
varchar(100)
YES
Er der nogen, som kan give en forklaring på ovenstående mysterium.
På forhånd tak
Kim
