EEmil RTMedlem sedan feb. 2004200 inlägg Frågan#1 Har följande tabell i access:
ID:Räknare
falt1: text
falt2:text
Samt följande insert i ASP:
Insert = "INSERT INTO test (falt1, falt2) VALUES ('?', '?')"
objConn.Execute Insert, array("hej", "da")
Saken är den att det är frågetecknena som läggs in i db:n och inte texten.
Har även testat:
Insert = "INSERT INTO test (falt1, falt2) VALUES (?, ?)"
objConn.Execute Insert, array("hej", "da")
Men får då:
[Microsoft][Drivrutin för ODBC Microsoft Access]Felaktigt COUNT-fält
Andledningen till frågetecknen är för att skydda mot SQL injections. Visst är det så man ska göra?
Någon som vet?
TTravoniMedlem sedan okt. 20041 556 inlägg Ja du måste använda parametrar, sök lite på wf/asp
EEmil RTMedlem sedan feb. 2004200 inlägg De mesta trådar på wF om parametriserade frågor handlar om select-satser. Detta är en insert och jag har inte kunnat få fram så mycket om just detta.
Jag har fattat det som att ovanstående är en parametriserad fråga. Har jag fel?
TTravoniMedlem sedan okt. 20041 556 inlägg Testa detta:
sqlstmt = "INSERT INTO test (falt1, falt2) VALUES (?, ?)"
Set cmd = server.createobject("ADODB.command")
cmd.activeConnection = objConn
cmd.CommandText = SQLStmt
Set temp = cmd.Execute (, array("foo","bar"))
Set cmd = Nothing
EEmil RTMedlem sedan feb. 2004200 inlägg (edit.)
Success ...!! Många tack!
Fråga:
Jag har:
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.db")'
för att öppna databasen.
Jag klistrade in din kod rätt in i asp filen och det funkade.
Hur kan din kod som har cmd isf objConn osv hitta min databas?
Vad är skillnaden på command och connection?
TTravoniMedlem sedan okt. 20041 556 inlägg cmd.activeConnection = objConn
TTravoniMedlem sedan okt. 20041 556 inlägg BTW:
Använd microsoft-Jet-providern i stället.
Mycket bättre.
EEmil RTMedlem sedan feb. 2004200 inlägg Sorry .. såg det precis:)
Som sagt, många tack!
TTravoniMedlem sedan okt. 20041 556 inlägg Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.db")