varför kan jag inte köra den här koden: Uppdatera en tabell i taget och helst med hjälp av SQL. Att använda recordset för en uppdatering är väldigt ineffektivt. >Kan man inte uppdatera två tabeller med samma recordset? Har för mig att man kan det om man gör frågan updaterbar. Då gäller det dock att man använder en Join.ASP / SQL
If lngPart = 1 Then
strUserID = ""
strUserID = strUSerID & Right(Request.Form("lngAge"), 2)
strUserID = strUserID & Left(Request.Form("strFirstName"), 3)
strUSerID = strUserID & Left(Request.Form("strLastName"), 3)
strUserID = LCase(strUserID)
Set objRecSet(1) = Server.CreateObject("ADODB.Recordset")
objRecSet(1).Open "SELECT * FROM tblUserInfo tUI, tblUserSettings tUS", objConnect, adOpenDynamic, adLockOptimistic
If objRecSet(1).EOF Then
objRecSet(1).AddNew
'Finns i tabellen tblUserInfo
objRecSet(1)("strUserID") = strUserID
objRecSet(1)("strPassword") = strNewPass
objRecSet(1)("strEmail") = Request.Form("strEmail")
objRecSet(1)("strFirstName") = Request.Form("strFirstName")
objRecSet(1)("strLastName") = Request.Form("strLastName")
objRecSet(1)("strPostCity") = Request.Form("strCity")
'Finns i tabellen tblUserSettings
objRecSet(1)("strUserID") = strUserID
objRecSet(1)("lngSessionID") = Session.SessionID
objRecSet(1)("lngAge") = Request.Form("lngAge")
objRecSet(1)("ynSex") = Request.Form("ynSex")
objRecSet(1)("datDateRegistred") = Now
Rad 62 --> objRecSet(1).Update
Else
'Error
End If
objRecSet(1).Close
End If
utan att får föjlande fel meddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80004005'
[Microsoft][Drivrutin för ODBC Microsoft Access] Det går inte att uppdatera. Databasen eller objektet är skrivskyddat.
/hf/user/use_newuser.asp, rad 62
Kan man inte uppdatera två tabeller med samma recordset? eller är det fel i koden? Vilket jag tror att det är. Man måste ju kunna tala om vilken tabell de olika fälten finns i t.ex: objRecSet(1)("US.lngAge") = Request.Form("lngAge")
Har provat detta men det ville sig inte... då klagar den på att den inte hittar fälten. Det är en Access 2000 databas det handlar om...
Är väldigt glad för den hjälp jag kan få, även om det inte löser problemet helt och hållet!
Tack på förhand!
//Jonas 'XorXaX' AnderssonSv: ASP / SQL
Sv: ASP / SQL
Nej, det kan man inte.
/JohanSv: ASP / SQL
<code>
If lngPart = 1 Then
strUserID = Right("00" & Request.Form("lngAge"), 2) & _
Left(Request.Form("strFirstName") & "___", 3) & _
Left(Request.Form("strLastName") & "___", 3)
strUserID = LCase(strUserID)
Set objRecSet(1) = Server.CreateObject("ADODB.Recordset")
objRecSet(1).Open "SELECT tUI.strUserID, tUI.strPassword, tUI.strEmail, tUI.strFirstName, tUI.strLastName, tUI.strPostCity, tUS.lngSessionID, tUS.lngAge, tUS.ynSex, tUS.datDateRegistred FROM tblUserInfo tUI LEFT JOIN tblUserSettings tUS ON tUI.strUserID = tUS.strUserID", objConnect, adOpenDynamic, adLockOptimistic
If objRecSet(1).EOF Then
objRecSet(1).AddNew
'Finns i tabellen tblUserInfo
objRecSet(1)("strUserID") = strUserID
objRecSet(1)("strPassword") = strNewPass
objRecSet(1)("strEmail") = Request.Form("strEmail")
objRecSet(1)("strFirstName") = Request.Form("strFirstName")
objRecSet(1)("strLastName") = Request.Form("strLastName")
objRecSet(1)("strPostCity") = Request.Form("strCity")
'Finns i tabellen tblUserSettings
'*** objRecSet(1)("strUserID") = strUserID
objRecSet(1)("lngSessionID") = Session.SessionID
objRecSet(1)("lngAge") = Request.Form("lngAge")
objRecSet(1)("ynSex") = Request.Form("ynSex")
objRecSet(1)("datDateRegistred") = Now()
objRecSet(1).Update
Else
'Error
End If
objRecSet(1).Close
End If
</code>