Du öppnar inte: :)
Set Conn = server.CreateObject("adodb.connection")
Dim DSNtemp
DSNtemp="Provider=MSDASQL;"
DSNtemp=DSNtemp & "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=DSNtemp & "DBQ=F:\******\diary.mdb;"
Conn.open DSNtemp
13 svar · 407 visningar · startad av JaktJanne
Har sök och fått fram att det är fler som haft samma fel som jag men det har inte hjälpt mig i min felsökning.
Felmesset:
ADODB.Recordset error '800a0e7d'
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
/training/update.asp, line 367
Och givetvis lite kod:
Set RS = Server.CreateObject("ADODB.Recordset")
sqlUpdate = "SELECT * FROM [Indata] where Indata.ID=" & Request.QueryString("record")
[B] Rad 367 - [/B]RS.open sqlUpdate, Conn, 1,3
RS("Datum") = Request.Form("Datum")
RS("Längd") = Request.Form("Längd")
RS("Temp") = Request.Form("Temp")
Har tidigare på sidan includerat en databaskoppling:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "..\..\db\diary.mdb")
Det hela har fungerat förrut men jag har ändrat databaskopplingen från
Set Conn = server.CreateObject("adodb.connection")
Dim DSNtemp
DSNtemp="Provider=MSDASQL;"
DSNtemp=DSNtemp & "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=DSNtemp & "DBQ=F:\******\diary.mdb;"
Men det skall väl inte göra så mycket!
Du öppnar inte: :)
Set Conn = server.CreateObject("adodb.connection")
Dim DSNtemp
DSNtemp="Provider=MSDASQL;"
DSNtemp=DSNtemp & "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=DSNtemp & "DBQ=F:\******\diary.mdb;"
Conn.open DSNtemp
Den använder jag inte så det kan jag hålla med om ;)
Skall det inte vara:
sqlUpdate = "SELECT * FROM [Indata] where ID=" & Request.QueryString("record")
eller:
sqlUpdate = "SELECT * FROM Indata i where i.ID=" & Request.QueryString("record")
Nja... när jag skriver ut sqlUpdate så ser det ok ut så den är som den skall.
1. Vad blir det när du skriver ut SQL-satsen?
2. Testa det här:
RS.open sqlUpdate, Conn, [b]3[/b],3
På fråga ett måste jag återkomma med för ett exakt svar.
På fråga två så svarar jag "Näe, ingen skillnad"
Nu har det löst sig men det var med hjälp av @nders och en bra stund med msn.
det är alltid bra att visa hur man gjort, utifall andra får samma fel :)
Sanningen är nog så att jag inte riktigt har koll på det :r
Men du har helt rätt, får återkomma med lösningen :D
Trodde att det var löst men det har visst dykt upp ett problem till, när jag använder decimaler i ett fältet [Längd] får jag felmeddelande att min sql sats, kan någon se felet.
UPDATE Indata SET [Datum] = #2002-03-15#, [Längd] = 5,1, Temp = 0, Total_tid = #00:29:36#, Snitt = 5.48, [Text] = 'Ej infört' WHERE ID = 1
Microsoft JET Database Engine error '80040e14'
Syntax error in UPDATE statement.
Skriver jag in värdet med punkt istället för kommatecken så ignoreras den helt och mitt snitt blir fel eftersom det baseras på Längd.
Du skall alltid använda decimalpunkt i SQL-satser. Kommatecken används för att skija fält och olika värden åt.
- - - -
Har du fältet rätt inställt i databasen? Rätt antal decimaler, osv?
Mvh,
1 decimal