Just nu i M3-nätverket
Gå till innehåll

Problem med SQL Update i ASP


hawaii

Rekommendera Poster

Jag kan bara inte fatta vad som är fel. Jag ska

ändra data i en databas. Jag har gjort precis som jag har sett i massor av exempel. Men det funkar ändå inte.

 

Här är koden till en testfil jag gjort.

Jag har en databas som heter test.mdb med en tabell som heter test och två poster ID (autonummer) och posten ett

 

<%

set mincon = server.CreateObject("ADODB.Connection")

mincon.open "provider=microsoft.jet.oledb.4.0;data source=" & _

server.MapPath("test.mdb")

set rs=server.CreateObject("adodb.recordset")

sql="select * from test"

rs.open SQL, mincon, 1, 2

 

response.Write "skriv ut detta"

sql = "UPDATE test SET ett='ja' WHERE id = '2'"

 

rs.close

mincon.Close

set rs=nothing

set mincon=nothing

%>

 

Länk till kommentar
Dela på andra webbplatser

du har två SQL-satser med samma namn. Kan inte detta orsaka felet? För övrigt så öppnar du aldrig den andra

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson
sql = "UPDATE test SET ett='ja' WHERE id = '2'"

 

rs.close

 

Har du inte glömt en rad emellan dessa?

 

Du sätter variablen sql, men du kör aldrig koden...

 

 

 

Länk till kommentar
Dela på andra webbplatser

ok..

kanske är en dum fråga.. men hur kör jag sql variablen?

 

 

 

[inlägget ändrat 2003-04-21 19:32:10 av hawaii]

Länk till kommentar
Dela på andra webbplatser

nu har jag döpt om den andra sql variablen till SQL2

 

SQL2= "UPDATE test SET ett='ja' WHERE id = '2'"

rs.open SQL2

 

 

Detta retunerar felet

 

Error Type:

ADODB.Recordset (0x800A0E79)

Operation is not allowed when the object is open.

/test/test.asp, line 17

 

 

Jag har bara arbetatat med ASP i 3 dagar än.. så jag har inte fattat hur allt hänger ihop än

 

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Bra så långt, men du måste berätta vilken Connection som ska köra kommandot också ;

 

rs.open SQL2,mincon,1,2

 

 

 

Länk till kommentar
Dela på andra webbplatser

den har jag faktiskt testat. Jag börjar misstänka att

det är servern som spökar

 

<%

set mincon = server.CreateObject("ADODB.Connection")

mincon.open "provider=microsoft.jet.oledb.4.0;data source=" & _

server.MapPath("test.mdb")

set rs=server.CreateObject("adodb.recordset")

SQL2= "UPDATE test SET ett='ja' WHERE id = '2'"

rs.open SQL2, mincon, 1, 2 <--- DETTA ÄR LINE 14

 

rs.close

mincon.Close

set rs=nothing

set mincon=nothing

%>

 

Genererar felmeddelande.

 

Microsoft JET Database Engine (0x80040E07)

Data type mismatch in criteria expression.

/test/test.asp, line 14

 

 

Länk till kommentar
Dela på andra webbplatser

Testa att skriva sql-frågan så här istället:

 

SQL2= "UPDATE test SET ett='ja' WHERE id = 2;"

 

Om fältet id är av typen tal så skall du inte använda fnuttar ( ' ) har jag för mig.

 

// Alex

 

 

 

"It´s only cheating if you get caught!"

- Homer Simpson

 

 

 

Länk till kommentar
Dela på andra webbplatser

nu funkar det faktiskt..

Det verkar som SQL vägrade eftersom ID var

autonummer. Jag gjorde en ny post som var nummer

och då gick det.

 

rs.close på rad 15 var jag tvungen att ta bort av någon anldening.

 

Tackar för hjälpen

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...