Vad är det som går fel?
Vad har kolumnen rost_kod för datatyp?
------------------
essentitia preter non sans multiplicandum
4 svar · 186 visningar · startad av Addeladde
Jag ska ha en sökfunktion där man antingen ska kunna söka efter ett par olika alternativ eller en kod.
Antingen söker man efter kod eller alternativen båda ska inte gå.
Jag har försökt att göra en litenkodsnutt men det fungerar inte när man söker efter kod. Det måste också gå att göra i en enda sql-fråga tycker jag men det har jag inte lyckatsmed.
Här är min kod:
IF kod = "" THEN
Set rosterRS = Server.CreateObject( "ADODB.Recordset" )
rosterRS.ActiveConnection = Con
rosterRS.CursorType = adOpenStatic
rosterRS.CursorLocation = adUSEClient
rosterRS.Pagesize = 10
sqlString = "SELECT rost_id, rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 "
if karaktar <> 0 then
sqlstring = sqlstring & _
"AND rost_karaktar = " & karaktar & " "
end if
if alder <> 0 then
sqlstring = sqlstring & _
"AND rost_alder = " & alder & " "
end if
if hemvist <> 0 then
sqlstring = sqlstring & _
"AND rost_hemvist = " & hemvist & " "
end if
if sprak <> 0 then
sqlstring = sqlstring & _
"AND rost_sprak = " & sprak & " "
end if
if kon <> 0 then
sqlstring = sqlstring & _
"AND rost_kon = " & kon & " "
end if
if typ <> 0 then
sqlstring = sqlstring & _
"AND rost_typ = " & typ & " "
end if
sqlstring = sqlstring & _
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
" ORDER by rost_kod DESC"
rosterRS.Open sqlString
rosterRS.AbsolutePage = pg
rostcount = rosterRS.RecordCount
END IF
IF kod <> "" THEN
Set rosterRS = Server.CreateObject( "ADODB.Recordset" )
rosterRS.ActiveConnection = Con
rosterRS.CursorType = adOpenStatic
rosterRS.CursorLocation = adUSEClient
rosterRS.Pagesize = 10
sqlString = "SELECT rost_id, rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 " &_
"AND rost_kod = "& kod &" " &_
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
" ORDER by rost_kod DESC"
rosterRS.Open sqlString
rosterRS.AbsolutePage = pg
rostcount = rosterRS.RecordCount
END IF
------------------
Adde
Vad är det som går fel?
Vad har kolumnen rost_kod för datatyp?
------------------
essentitia preter non sans multiplicandum
Jag har fått det att fungera men går det inte att få det i en enda sql-fråga?
datatypen är char
------------------
Adde
Jag förstår inte riktigt vad du menar med att få det i en sql-fråga.
Det gör väl inget att du bygger 2 olika strängar för de två sökningarna.
Anledningen till att jag frågade om datatypen är den här
"AND rost_kod = "& kod &" " &_
och att du inte har med ' kring värdet.
------------------
essentitia preter non sans multiplicandum
Nej det har ju ingen betydelse alls tänkte bara försöka hålla ner koden lite grann. Jo jag märkte själv att ' tecknen saknades.
Det är lite jobbigt att olika databaser ska skilja sig år hur man skriver SQL-frågorna.
------------------
Adde