23. december 2005 - 16:02
Der er
14 kommentarer og 1 løsning
Kan ik update db
Hey Har et script der skal opdatere en acces database, men hver gang jeg forsøger at køre det får jeg bare: ADODB.Recordset error '800a0cb3' Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype. /guestbook/admin_paging.asp, line 124 min kode ser således ud: <% if mode = "ret2" then %> <% Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "Select * From gb where id=" & Request.QueryString("ID") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/fipsGbook.mdb") rs.Open strSQL, strDSN, 1 rs("Name") = Request.form("navn") rs("Email") = Request.form("email") rs("Homepage") = Request.form("homepage") rs("Entry") = Request.form("entry") rs("Kommentar") = Request.form("Kommentar") rs.Update %> nogle der har en ide til hva jeg gør galt?
Annonceindlæg fra Computerworld
24. december 2005 - 00:12
#1
Fejlen skyldes som regel fordi man ikke har angivet en LockType for recordsetet: rs.Open strSQL, strDSN, 1 [, mangler] Default for LockType er nemlig adLockReadOnly eller 1. Så angiv en anden LockType som tillader man kan opdatere sit recordset: rs.Open strSQL, strDSN, 1, 2
24. december 2005 - 00:39
#2
Hmm det giver stadig: ADODB.Recordset error '800a0cb3' Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype. /guestbook/admin_paging.asp, line 125
25. december 2005 - 22:17
#3
Bare lige en tanke - hvad med: rs.Open strSQL, strDSN, 1, 1
26. december 2005 - 18:29
#4
ADODB.Recordset error '800a0cb3' Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype. /guestbook/admin_paging.asp, line 126 giver det
06. januar 2006 - 11:21
#5
har du kigget på om du har de rette skrive rettigheder i mappen, hvor databasen ligger
06. januar 2006 - 11:53
#6
Dim oConn, oRs, filePath, Index ' Map authors database to physical path filePath = Server.MapPath("db2.mdb") ' Create ADO Connection Component to connect with sample database Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath Set oRs = Server.CreateObject("ADODB.Recordset") strSQL = "Select * FROM gb WHERE id = " & Session("id") & ";" Response.Write(strSQL) ' Udfør forespørgsel (rss indeholder nu resultatet) Set rss = oConn.Execute(strSQL) Response.Write(rss("Name")) ' rss("Name") = "Svend" ' rss("Email") = "Svend@Svendsen" ' rss("Homepage") = "Svendsen.dk" strSQL = "UPDATE gb SET Name = '" & Request.Form("Name") & "' , Email = '" & Request.Form("Email") & "' , Homepage = '" & Request.Form("HomePage") & "' WHERE id = " & Session("id") response.Write(strSQL) oConn.Execute(strSQL)
07. januar 2006 - 02:46
#7
har ændret koden til dette: Set rs = Server.CreateObject("ADODB.RecordSet") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/fipsGbook.mdb") strSQL = "UPDATE gb SET Name = '" & Request.Form("navn") & "' , Email = '" & Request.Form("email") & "' , Homepage = '" & Request.Form("homepage") & "' WHERE id = " & Request.QueryString("ID") response.Write(strSQL) oConn.Execute(strSQL) og får følgende fejl: UPDATE gb SET Name = 'theis poulsen' , Email = 'henrikemiljensen@hotmail.com' , Homepage = '' WHERE id = 1089 Microsoft VBScript runtime error '800a01a8' Object required: '' /guestbook/admin_paging.asp, line 127 line 127 er: oConn.Execute(strSQL)
07. januar 2006 - 02:47
#8
ps. ja kan godt skrive til databasen med andre scripts.... er bare det her der driller
07. januar 2006 - 12:35
#9
ok så prøv at rette koden til dette så oConn defineres og åbner forbindelse til db'en: Set rs = Server.CreateObject("ADODB.RecordSet") Set oConn = Server.CreateObject("ADODB.Connection") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/fipsGbook.mdb") oConn.Open strDSN strSQL = "UPDATE gb SET Name = '" & Request.Form("navn") & "' , Email = '" & Request.Form("email") & "' , Homepage = '" & Request.Form("homepage") & "' WHERE id = " & Request.QueryString("ID") response.Write(strSQL) oConn.Execute(strSQL)
07. januar 2006 - 20:53
#10
Ok det virker, pånær hvis et af felterne er tomme.. Hvordan gør man så de gerne må være tomme?
07. januar 2006 - 21:50
#11
Hvis du får en fjel at kolonne skal indeholde en værdi så skal du ind i Access, åbne tableen og vælge egenskaber/properties på den kolonne du ønsker må indeholde en tom streng. Find Tilladnullængde og set den til "Ja"
07. januar 2006 - 22:33
#12
ok ja det virker :) Kan du så se hva fejlen er her? strSQL = "UPDATE gb SET Name = '" & Request.Form("navn") & "' , Email = '" & Request.Form("email") & "' , Homepage = '" & Request.Form("homepage") "' , Entry = '" & Request.Form("entry") & "' , Kommentar = '" & Request.Form("Kommentar") & "' WHERE id = " & Request.QueryString("ID") Microsoft VBScript compilation error '800a0401' Expected end of statement /guestbook/admin_paging.asp, line 124 strSQL = "UPDATE gb SET Name = '" & Request.Form("navn") & "' , Email = '" & Request.Form("email") & "' , Homepage = '" & Request.Form("homepage") "' , Entry = '" & Request.Form("entry") & "' , Kommentar = '" & Request.Form("Kommentar") & "' WHERE id = " & Request.QueryString("ID") ----------------------------------------------------------------------------------------------------------------------------------------------------^ ?
07. januar 2006 - 22:41
#13
Der mangler et & tegn imellem Request.Form("homepage") og "' ,Entry.... så prøv sådan her: strSQL = "UPDATE gb SET Name = '" & Request.Form("navn") & "' , Email = '" & Request.Form("email") & "' , Homepage = '" & Request.Form("homepage") & "' , Entry = '" & Request.Form("entry") & "' , Kommentar = '" & Request.Form("Kommentar") & "' WHERE id = " & Request.QueryString("ID")
07. januar 2006 - 22:56
#14
tak tak kom med et svar og få point
07. januar 2006 - 23:05
#15
Ja her et svar ;)
Kurser inden for grundlæggende programmering