Avatar billede hede98 Nybegynder
04. januar 2004 - 12:53 Der er 10 kommentarer og
1 løsning

Hvorfor vil den ikke gemme min ændring i feltet

Kommer med følgende fejl:
Fejltype:
ADODB.Recordset (0x800A0CB3)
Det aktuelle postsæt understøtter ikke opdatering. Det kan skyldes en begrænsing af provideren eller den markerede låsetype.
/auktion/test2.asp, line 42

***START FIL***
<% mode = request("mode") %>
<% if mode = "" then %>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/auktion.mdb")
Conn.Open DSN
%>

<% set rskunder = Conn.execute("SELECT * FROM salgsliste where id=" & request("id"))
%>




<form method="POST" action="?mode=gemnybil&id=<%Response.Write rskunder("id")%>">
  <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" --><p>
  Ny beskrivelse:</p>
  <p>
  <input type="text" name="Beskrivelse" size="50" value="<%=rskunder("beskrivelse")%>"></p>
  <p><input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></p>
</form>




<p>&nbsp;</p>


<%
rskunder.Close
set rskunder = Nothing

%>

<%else
end if %>
<%if mode = "gemnybil" then%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/auktion.mdb")
set rskunder = Conn.execute("SELECT * FROM salgsliste where id=" & request("id"))
rskunder("beskrivelse") = Request.form("Beskrivelse")
rskunder.Update
end if
%>


<a href="#" onclick="top.close();return false;">Tilbage</a>
Avatar billede wilweb Nybegynder
04. januar 2004 - 13:16 #1
Du er helt gal på den, efter min bedste overbevisning!

En hjælp til dig :>
Din kode er ret rodet og du kunne med forsdel tage ASP kurset på www.html.dk , bare en hjælp.
Så vidt jeg kan se updater du ikke noget som helst og din update er forkert!

<% starter dit script og det lukkes sådanne %> 

JEg vil meget gerne hjælpe dig men så må du lige bekræfte at det er feltet'Beskrivelse' du vil opdatere i din database i tabellen salgsliste, hvor der er 2 kolonner id og kolonnen hvor du vil opdatere 'beskrivelse'
Avatar billede hede98 Nybegynder
04. januar 2004 - 14:24 #2
Du har helt ret.
Jeg er også begyndt på kursuset.
Men nu vil jeg gerne have lidt hurtig hjælp af dig.
Avatar billede wilweb Nybegynder
04. januar 2004 - 14:30 #3
ÅK, jeg lave lige et hurtigt eksempel til dig.
Avatar billede hede98 Nybegynder
04. januar 2004 - 14:36 #4
takker..
Avatar billede hede98 Nybegynder
04. januar 2004 - 14:36 #5
husk den henter noget ind i feltet som jeg så retter og trykker på "gem"
Avatar billede eagleeye Praktikant
04. januar 2004 - 15:26 #6
Nu det ikke fordi jeg vil "snyde" ind foran men jeg kan da lige kommentere fejlen..

Den fejl du får kommer i denne linje:
rskunder("beskrivelse") = Request.form("Beskrivelse")


og den kommer fordi du forsøger at ligge data ind i databasen via et recordset. Det kan man også godt men det forudsætter at man åbner sit recordset med .Open funktionen og ikke denne som du bruger her:
set rskunder = Conn.execute("SELECT * FROM salgsliste where id=" & request("id"))


Hvis du vil bruge Conn.Execute skal du lave din SQL som en UPDATE SQL sætning som vil se sådan her ud:
SQL = "UPDATE salgsliste SET beskrivelse = '" & Replace(Request.form("Beskrivelse"),"'","''") & "' WHERE id = " & request("id")
Conn.Execute(SQL)


Hvis du vil bruge recordset .Open metoden så skal det se sådan her ud:
Set rskunder = Server.CreateObject("ADODB.Recordset")
rskunder.Open "SELECT * FROM salgsliste where id=" & request("id"), Conn, 1, 3
rskunder("beskrivelse") = Request.form("Beskrivelse")
rskunder.Update
rskunder.Close
Avatar billede wilweb Nybegynder
04. januar 2004 - 15:31 #7
Det skal lige siges at du sagtens kan lave det på en side, jeg har valgt at lave det på 2 sider.
Første side har jeg kaldt index.asp som viser de biler du har i databasen! Du kan så vælge fra dem hvilken du vil opdatere ved at trykke på linket.

<%
mode = request.Form("mode")
if mode = "" then
' første gang er mode tom og derfor vises data fra db og du har mulig hed for at vælge hvilken bil de vil rette i
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/auktion.mdb")
strSQL = "Select * From salgsliste"
Set rs = Conn.Execute(strSQL)
Do Until rs.EOF
Response.Write "Id " & rs("id") & " Bil type: " & rs("beskrivelse") & "<a href='vis.asp?id=" & rs("id") & "'> Ret denne bil</a><br>" 
rs.MoveNext
loop
'så lukke vores connection igen
Conn.Close
Set Conn = Nothing
end if
%>

når du så trykker på en af bilerne sendes du til vis.asp, hvor du så kan rette i din beskrivelse.

<%
mode = request.form("mode")
id = Cint(request.QueryString("id"))
if mode ="" then
'mode er tom første gang den kommer"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/auktion.mdb")
'finder bilen vil vil rette med id
strSQL = "Select * From salgsliste where id=" & id
Set rs = Conn.Execute(strSQL)
%>
<form method="POST" action="#">
  <p>Ny beskrivelse:</p>
  <p><input type="text" name="Beskrivelse" size="50" value="<%=rs("beskrivelse")%>">
  </p>
  <p><input type="submit" value="opdater" name="B1"></p>
  <p><input type="reset" value="Nulstil" name="B2"><input type="hidden" name="mode" value="gemnybil"></p>
</form>
<%
else
'Ellers har mode en værdi nemlig value="gemnybil"
'lægger form feltet beskrivelse med i variablen sBesrkivelse
sBeskrivelse = Replace(Request.Form("beskrivelse"), "'", "''")
   
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/auktion.mdb")

strSQL = "Update salgsliste Set beskrivelse='" & sBeskrivelse & "' Where id=" & id
Conn.Execute(strSQL)
   
'så lukke vores connection igen
Conn.Close
Set Conn = Nothing
Response.Write("Databasen er blev opdateret!<br>")
end if
%>
<a href="index.asp">Tilbage</a>

Du skal også være opmærksom på at min database ligger i mappen database

Håber du kan bruge det til noget!
Avatar billede wilweb Nybegynder
04. januar 2004 - 15:32 #8
det er ÅK eagleeye! og en noget bedre løsning :>
Avatar billede hede98 Nybegynder
05. januar 2004 - 13:34 #9
laver du lige et svar.
Avatar billede hede98 Nybegynder
19. februar 2004 - 23:19 #10
laver du ikke lige et svar!!
Avatar billede eagleeye Praktikant
19. februar 2004 - 23:25 #11
gizom eller mig? hvis ikke mig så afvis lige :))
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