Du måste använda addnew, här finns ett exempel
http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=117
------------------
essentitia preter non sans multiplicandum
6 svar · 134 visningar · startad av Mz
Hej.
Blev tvungen att använda Access97 i ett projekt, tyvärr så fungerar inte @@identity med 97an. Skulle nu behöva lite hjälp att få min kod "97-kompatibel".
Jag har sökt och läst en massa artiklar om det men jag lyckas inte...
Min Access2000 kod:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("..\db\u_db.mdb")
SQL = "SELECT uMail FROM Users WHERE uMail = '"& trim(Request.Form("mail")) &"' AND uManad = '"& manad &"'"
Set RecSet = Connect.Execute(SQL)
If RecSet.EOF Then
txNAMN = trim(Request.Form("namn"))
txMAIL = trim(Request.Form("mail"))
Connect.Execute ("INSERT INTO Users(uNamn, uMail) VALUES('"& txNAMN &"','"& txMAIL &"'")
Set RecSet = Connect.Execute("SELECT @@identity")
Session("User") = RecSet(0)
RecSet.Close
Connect.Close
Response.Redirect "tack.asp"
Else
Response.Write "Finns redan"
End If
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
%>
Kan någon vänlig själ hjälpa mig få den här koden 97-kompatibel?
Evigt tacksam!
------------------
~ Mz ~
Du måste använda addnew, här finns ett exempel
http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=117
------------------
essentitia preter non sans multiplicandum
Jo jag har läst på den sidan innan och testat med exemplet, men jag får inte ihop det med min SQL-fråga och så.. Jag måste ju köra ett test för att kolla om värdet redan finns.
Dessutom fattar jag inte var jag stoppar in samtliga värden i databasen.
.Fields("MYCOLUMNNAME") <- ?
------------------
~ Mz ~
*/ Stavfel
[Redigerat av Mz den 02 okt 2001]
SQL = "SELECT * FROM Users WHERE uMail = '"& trim(Request.Form("mail")) &"' AND uManad = '"& manad &"'"
set recset = server.createobject("adodb.recordset")
recset.CursorType = adOpenKeyset
recset.LockType = adLockOptimistic
RecSet.open sql,Connect
If RecSet.EOF Then
recset.addnew
recset("uNamn") = trim(Request.Form("namn"))
recset("uMail") = trim(Request.Form("mail"))
recset.update
Session("User") = RecSet("identitycolumn")
RecSet.Close
Connect.Close
Response.Redirect "tack.asp"
------------------
essentitia preter non sans multiplicandum
Tack LarsG men jag får det inte att fungera redigt. Det läggs aldrig till någon ny post, ett felmeddelande dyker upp istället:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time.
Jag kör lokalt på IIS så det finns ingen annan som kan ändra nått..
Någon idé på vad det kan bero på?
------------------
~ Mz ~
Ok, jag har nu lyckats komma runt felmeddelandet genom att använda en dynamisk cursor istället för en statisk.. dock får jag inte fram ID´t från databasen hur jag än gör - det var ju det som var lite medningen med det hela.. ;)
Så här ser min kod ut nu:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("..\db\quiz.mdb")
SQL = "SELECT * FROM Users WHERE uMail = '"& trim(Request.Form("mail")) &"' AND uManad = '"& manad &"'"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorType = adOpenDynamic
RecSet.LockType = adLockOptimistic
RecSet.open sql,Connect
If RecSet.EOF Then
RecSet.addnew
RecSet("uNamn") = trim(Request.Form("namn"))
RecSet("uMail") = trim(Request.Form("mail"))
RecSet("uOrt") = trim(Request.Form("ort"))
RecSet("uJobb") = trim(Request.Form("yrke"))
RecSet("uDate") = Now()
RecSet("uManad") = manad
RecSet("uPoints") = "0"
RecSet("u1") = "0"
RecSet("u2") = "0"
RecSet("u3") = "0"
RecSet("u4") = "0"
RecSet("u5") = "0"
RecSet("u6") = "0"
RecSet("u7") = "0"
RecSet("u8") = "0"
RecSet("u9") = "0"
RecSet("u10") = "0"
RecSet.update
Session("User") = RecSet("uID")
Response.Redirect "quiz.asp?action=question&q=1"
Else
Response.Write "Text..."
End If
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
Någon aning om varför ID´t som finns i uID inte kommer med i sessionen?
------------------
~ Mz ~