Avatar billede snebolle Nybegynder
21. december 2002 - 17:25 Der er 13 kommentarer og
1 løsning

Update i SQL som ikke virker.

Hej,
Jeg er ved at lave en funktion som skal opdatere tekst i min database. Men der sker ikke noget kan nogle hjælpe please..
Jeg ved ikke og jeg skal bruge rs.update men hvis jeg gør kommer denne fejl Operation is not allowed when the object is closed.

<%
if mode = "gem" then

'//Connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/bla100102.mdb") & ";UID=admin;PWD=;"
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Update nyheder Set overskrift = '" & Request.Form("overskrift") & "' AND nyhed = '" & Request.Form("beskrivelse") & "'"

function rw( mystr )
   
        Response.Write mystr & vbcrlf

end function
rs.update
Response.Redirect("forside.asp")

Conn.Close
set Conn = Nothing
end if %>
Avatar billede drago Nybegynder
21. december 2002 - 17:30 #1
Du mangler rs.Open.....
Avatar billede snebolle Nybegynder
21. december 2002 - 17:34 #2
Så skriver den
ADODB.Recordset error '800a0e7d'

Operation is not allowed on an object referencing a closed or invalid connection.
Avatar billede 2-maz Nybegynder
21. december 2002 - 17:36 #3
Avatar billede drago Nybegynder
21. december 2002 - 17:38 #4
<%
if mode = "gem" then

'//Connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/bla100102.mdb") & ";UID=admin;PWD=;"
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Update nyheder Set overskrift = '" & Request.Form("overskrift") & "' AND nyhed = '" & Request.Form("beskrivelse") & "'"

rs.Open StrSQL, Conn

function rw( mystr )
   
        Response.Write mystr & vbcrlf

end function
rs.update
rs.close
Set rs = Nothing
Response.Redirect("forside.asp")

Conn.Close
set Conn = Nothing
end if %>
Avatar billede snebolle Nybegynder
21. december 2002 - 17:46 #5
Jeg har brugt din kode og så kommer denne fejl
ADODB.Recordset error '800a0e78'

Operation is not allowed when the object is closed.

/admin/forsideedit.asp, line 52

Linie 52 er rs.update
Sammentidlig laver den ged i databasen hvor den skriver 0, -1 osv. i oversigt kolonnen
Avatar billede medions Nybegynder
21. december 2002 - 17:47 #6
<%
if mode = "gem" then

'//Connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/bla100102.mdb") & ";UID=admin;PWD=;"
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Update nyheder Set overskrift = '" & Request.Form("overskrift") & "' AND nyhed = '" & Request.Form("beskrivelse") & "'"

rs.Open StrSQL, Conn

function rw( mystr )
   
        Response.Write mystr & vbcrlf

end function
rs.update
Response.Redirect("forside.asp")

Conn.Close
set Conn = Nothing
end if %>

//>Rune
Avatar billede drago Nybegynder
21. december 2002 - 17:52 #7
Det jeg ikke fatter er - Hvorfor laver du den bare i rs, når du starter på den.
Altså:
<%

'...bla bla...

StrSQL = "Select * From nyheder"

rs.Open StrSQL, Conn

rs("overskrift") = Request.Form("overskrift")
rs("nyhed") = Request.Form("beskrivelse")

'bla bla...

rs.update

'bla bla...

%>
Avatar billede snebolle Nybegynder
21. december 2002 - 17:57 #8
Jeg er desværre ikke perfekt inden for asp i nu. Derfor det ikke har været muligt for mig selv at finde fejlen. :( Er nogle interesseret i at kigge på hele siden og derved måske nemmere kan finde fejlen ? Fordi så smider jeg den ud. Og i skal nok få flere point det skal ikke have nogen betydning.
Jeg udskriver nemlig teksten først i en formular hvorefter jeg skal gemme det igen. Så fejlen kan måske være længere oppe.???
Avatar billede fixxxer Nybegynder
21. december 2002 - 21:07 #9
hvis det piner dig kan du sende det til fixxxer@easysoft-studios.dk
Avatar billede snebolle Nybegynder
23. december 2002 - 13:33 #10
fixxxer >> afgiv svar så du kan få point.
Avatar billede medions Nybegynder
23. december 2002 - 13:35 #11
fixxxer>Snebolle> Læs lige ekspertens regler hvis ikke i har læst dem før!!

//>Rune
Avatar billede snebolle Nybegynder
23. december 2002 - 14:02 #12
Jeg har slet ikke givet point til nogle endnu så jeg ved ikke hvorfor du allerede er oppe at mærkere.. Og jeg skriver jo at han skal afgiv svar ik´?
Men nok om det, så må jeg jo bare give dig de point hvis fixxxer ikke svare.
Avatar billede fixxxer Nybegynder
24. december 2002 - 23:58 #13
svar :)
Avatar billede fixxxer Nybegynder
25. december 2002 - 00:00 #14
medions >> hentyder du til at løsningen ikke er tilgængelig for alle ?

så får i da løsningen her, så alle er glade :)


<% if Request.QueryString("mode") = "" then
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("demo.mdb"))
 
  Set rs = myConn.Execute("Select * From nyheder Where id=" & Request.QueryString("id"))
%>
<form method="POST" action="index.asp?mode=gem&id=<%=rs("id")%>">
Overskrift: <input type="text" name="overskriftfelt" value="<%=rs("overskrift")%>"><br>
Nyhed: <textarea name="nyhedfelt"><%=rs("nyhed")%></textarea><br>
<input type="submit">
</form>
<% end if %>

<% if Request.QueryString("mode") = "gem" then
  Set myConn = Server.CreateObject("ADODB.Connection")
  myConn.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("demo.mdb"))
 
  Set rs = Server.CreateObject("ADODB.Recordset")
  sql = "SELECT * FROM nyheder WHERE id = " & Request.QueryString("id")
  rs.open sql, myConn, 1, 3
 
  rs.Update
  rs("overskrift") = Request.Form("overskriftfelt")
  rs("nyhed") = Request.Form("nyhedfelt")
  rs.Update
 
end if %>
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