Avatar billede starf Nybegynder
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?
Avatar billede eagleeye Praktikant
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
Avatar billede starf Nybegynder
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
Avatar billede ossian Nybegynder
25. december 2005 - 22:17 #3
Bare lige en tanke - hvad med:

rs.Open strSQL, strDSN, 1, 1
Avatar billede starf Nybegynder
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
Avatar billede testpilot_dk Nybegynder
06. januar 2006 - 11:21 #5
har du kigget på om du har de rette skrive rettigheder i mappen, hvor databasen ligger
Avatar billede testpilot_dk Nybegynder
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)
Avatar billede starf Nybegynder
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)
Avatar billede starf Nybegynder
07. januar 2006 - 02:47 #8
ps. ja kan godt skrive til databasen med andre scripts.... er bare det her der driller
Avatar billede eagleeye Praktikant
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)
Avatar billede starf Nybegynder
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?
Avatar billede eagleeye Praktikant
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"
Avatar billede starf Nybegynder
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")
----------------------------------------------------------------------------------------------------------------------------------------------------^

?
Avatar billede eagleeye Praktikant
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")
Avatar billede starf Nybegynder
07. januar 2006 - 22:56 #14
tak tak kom med et svar og få point
Avatar billede eagleeye Praktikant
07. januar 2006 - 23:05 #15
Ja her et svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester