webForumDet fria alternativet

Felmeddelande igen

ASP

13 svar · 407 visningar · startad av JaktJanne

Medlem sedan feb. 20001 507 inlägg
Frågan#1

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!

Medlem sedan juni 20003 076 inlägg
#2

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
Medlem sedan feb. 20001 507 inlägg
#3

Den använder jag inte så det kan jag hålla med om ;)

Medlem sedan nov. 20017 144 inlägg
#4

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")

Medlem sedan feb. 20001 507 inlägg
#5

Nja... när jag skriver ut sqlUpdate så ser det ok ut så den är som den skall.

Medlem sedan feb. 200112 078 inlägg
#6

1. Vad blir det när du skriver ut SQL-satsen?
2. Testa det här:

RS.open  sqlUpdate, Conn, [b]3[/b],3
Medlem sedan feb. 20001 507 inlägg
#7

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"

Medlem sedan feb. 20001 507 inlägg
#8

På fråga 1 kompletterar jag med

SELECT * FROM [Indata] where Indata.ID=1
Medlem sedan feb. 20001 507 inlägg
#9

Nu har det löst sig men det var med hjälp av @nders och en bra stund med msn.

Medlem sedan juni 20003 076 inlägg
#10

det är alltid bra att visa hur man gjort, utifall andra får samma fel :)

Medlem sedan feb. 20001 507 inlägg
#11

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

Medlem sedan feb. 20001 507 inlägg
#12

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.

Medlem sedan juni 200032 967 inlägg
#13

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,

Medlem sedan feb. 20001 507 inlägg
#14

1 decimal

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)