BrimbaMedlem sedan dec. 19995 875 inlägg Hej!
Kan någon se något fel på denna raden?
När jag kör uttrycket får jag följande rad:
INSERT INTO tabOrder (SaljarID) VALUES (7);INSERT INTO tabOrderArt (OrderID) SELECT OrderID FROM TabOrder ORDER BY OrderID DESC;INSERT INTO tabOrderArt (ArtID, Artikel, ArtAnt, ArtExkl) VALUES ('1003', 'MAXI Tower ATX', '1', '795')
Grundkoden ser ut så här:
SQLStmt="INSERT INTO tabOrder (SaljarID) VALUES (7);INSERT INTO tabOrderArt (OrderID) SELECT OrderID FROM TabOrder ORDER BY OrderID DESC;INSERT INTO tabOrderArt (ArtID, Artikel, ArtAnt, ArtExkl) VALUES ('" & Request.Form("prodID") & "', '" & Request.Form("ArtNamn") & "', '" & Request.Form("Antal") & "', '" & Request.Form("ArtExkl") & "')"
Felmeddelandet jag får är:
Microsoft OLE DB Provider for ODBC Drivers error '8007000e'
[Microsoft][ODBC Microsoft Access 97 Driver] Characters found after end of SQL statement.
/kategori/add.asp, line 28
Line 28 är alltså när jag kör SQL uttrycket:
connection.execute(SQLStmt)
Tacksam för hjälp
Mvh
patrik
tohaMedlem sedan dec. 1999707 inlägg Om du skall skicka IN värden i en batch så måste du skapa ett recordset i gränssnittet med locktype som "adLockBatchOptimistic" (= 4). Det gör du genom:
Set objRec = Server.CreateObject("ADODB.Recordset")
sSql = "select * from min_tabell"
objRec.Open sSql, , , adLockBatchOptimistic
...
Jag tror det skall fungera, är lite osäker om attributen till open()-metoden.
------------------
/ Torbjörn Hansson, webbutvecklare/gränssnittsprogrammerare
Spetsdata AB
BrimbaMedlem sedan dec. 19995 875 inlägg Jag provade med följande kod nu
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\blabla\blabla\databas.mdb"
SQLStmt="INSERT INTO tabOrder (SaljarID) VALUES (7);INSERT INTO tabOrderArt (OrderID) VALUES (SELECT OrderID FROM TabOrder ORDER BY OrderID DESC);INSERT INTO tabOrderArt (ArtID, Artikel, ArtAnt, ArtExkl) VALUES (" & Request.Form("prodID") & ", " & Request.Form("ArtNamn") & ", " & Request.Form("Antal") & ", " & Request.Form("ArtExkl") & ")"
Set RSobj = Server.CreateObject("ADODB.Recordset")
RSobj.Open SQLStmt, , , adLockBatchOptimistic
connection.execute(RSobj)
Connection.Close
Men fick följande felmeddelande:
ADODB.Recordset error '800a0bb9'
The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.
/kategori/add.asp, line 29
Line 29 är:
RSobj.Open SQLStmt, , , adLockBatchOptimistic
Hoppas på hjälp!
///Patrik
emissionMedlem sedan dec. 19996 721 inlägg adLockBatchOptimistic är en enum-konstant, som man får med sig om man t.ex. inkluderar adovbs.inc
Värdet på den är 4, så skriv bara
adLockBatchOptimistic=4
före open-satsen, eller kör med
RSobj.Open SQLStmt, , , 4
så borde det fungera
BrimbaMedlem sedan dec. 19995 875 inlägg Emission, jag spår att du har ett email :e