Avatar billede iggipop Nybegynder
14. januar 2004 - 22:02 Der er 7 kommentarer

fejl i update af db

Hej !

Jeg får denne fejl :

Fejltype:
ADODB.Recordset (0x800A0BCD)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.
/test/fangstbasen/fangstrapporter/html/update_entry.asp, line 33

Ved forsøg på at update min database med nedenstående fil, Jeg har stirret mig blind på det efterhånden...Hvis I skal se siden der kalder nedenstående så skriv lige, den fylder bare meget!


<%
'Dimension variables
Dim adoCon             'Holds the Database Connection Object
Dim rsUpdateEntry    'Holds the recordset for the record to be updated
Dim strSQL            'Holds the SQL query for the database
Dim lngRecordNo        'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = CLng(Request.Form("ID_no"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/krcDB.mdb")

'Create an ADO recordset object
Set rsUpdateEntry = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo

'Set the cursor type we are using so we can navigate through the recordset
rsUpdateEntry.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsUpdateEntry.LockType = 3

'Open the tblComments table using the SQL query held in the strSQL varaiable
rsUpdateEntry.Open strSQL, adoCon

'Update the record in the recordset
rsUpdateEntry.Fields("Forfatter") = Request.Form("Forfatter")
rsUpdateEntry.Fields("fangstmnd") = Request.Form("fangstmnd")
rsUpdateEntry.Fields("fangst") = Request.Form("fangst")
rsUpdateEntry.Fields("vaegt") = Request.Form("vaegt")
rsUpdateEntry.Fields("sted") = Request.Form("sted")
rsUpdateEntry.Fields("metode") = Request.Form("metode")
rsUpdateEntry.Fields("beretning") = Replace(Replace(Request.Form("indhold"),"""","'"),"'","''")

'Write the updated recordset to the database
rsUpdateEntry.Update

'Reset server objects
rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

'Return to the update select page incase another record needs deleting
Response.Redirect "update_select.asp"
%>
Avatar billede erikjacobsen Ekspert
14. januar 2004 - 22:22 #1
Hvis den ikke er der med det angive nummer i

  strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo

sker det.
Avatar billede iggipop Nybegynder
15. januar 2004 - 09:09 #2
Yeps...men jeg fatter det ikke for selvom jeg lige har lavet en post i basen og vælger den til rediger så sker det alligevel !!!
Avatar billede ellebaek Nybegynder
15. januar 2004 - 09:14 #3
Prøv at fjerne din CLng der hvor du henter tallet...
eller lav det om til CInt

enten:
lngRecordNo = Request.Form("ID_no")
eller
lngRecordNo = CInt(Request.form("ID_no"))
Avatar billede erikjacobsen Ekspert
15. januar 2004 - 09:45 #4
Jeg gætter på din lngRecordNo er 0, og du har en fejl i din request.form("ID_no") -
enten stavefejl, eller det skulle være request.querystring("ID_no").

Prøv at udskrive strSQL, så skal du bare se løjer!
Avatar billede iggipop Nybegynder
15. januar 2004 - 11:47 #5
I har delvis ret...I er i hvert fald inde på noget af det rigtige..
Men jeg havde glemt at smide lngrecordno med over fra den foregående side :o)

Men smid et svar så får i point for hjælpen !
Avatar billede erikjacobsen Ekspert
15. januar 2004 - 11:49 #6
Tak, jeg samler ikke på point.
Avatar billede ellebaek Nybegynder
15. januar 2004 - 11:50 #7
men et svar fra mig da...
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