Avatar billede bootlab Nybegynder
20. december 2000 - 00:08 Der er 16 kommentarer og
1 løsning

Problemer med UPDATE !

Jeg er ved at blive sindsyg....

Jeg har ingen problemer med at Oprette nye poste i min db... jeg kan også slette dem..

Men jeg kan ikke få min UPdate side til at virke... det er så slemt, at jeg ikke engang kan få kontakt med siden...

Jeg har lavet en side hvor man får en formular op, med alle de nuværende dataer..
Den virker fint :

------------ Form.asp ---------------

<%
    Response.Buffer = True
    Set Rs = Server.CreateObject(\"ADODB.Connection\")
    DBPath = \"DBQ=\" & server.mappath(\"../db/p.mdb\")
    Rs.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
%>

<html>
<head>
    <title>Ændring af Produkt</title>
</head>

<body>
<br><br>
<form method=\"POST\" action=\"update.asp?id=<% = Request.QueryString(\"id\") %>\">
<table border=\"0\" width=\"550\" cellpadding=\"1\" cellspacing=\"1\">
<tr><td valign=\"top\" align=\"left\" colspan=\"2\"><b>Indsæt produkt</b></td></tr>
<tr><td valign=\"top\" align=\"left\" colspan=\"2\">NB : Alle felter skal udfyldes!</td></tr>
<tr><td valign=\"top\" align=\"right\"><b>Katagori : </b></td>
<td valign=\"top\" align=\"left\">
<%
    Sql = \"SELECT k.Kat_ID, k.KategoriNavn FROM Kategorier k ORDER BY k.KategoriNavn;\"
    Set Record =  Rs.Execute(Sql)
    response.write \"<select name=\'Kat_ID\' size=\'1\'><option value=\'\" & Request.QueryString(\"Cat\") &\"\'>\" & Request.QueryString(\"CatN\") & \"</option>\"
    Do While Not Record.EOF
    response.write \"<option value=\'\" & Record(\"Kat_ID\") & \"\'>\" & Record(\"KategoriNavn\") & \"</option>\"
    Record.MoveNext
    Loop
      response.write \"</select>\"
%>
</td></tr>
<tr><td valign=\"top\" align=\"right\"><b>Producent : </b></td>
<td valign=\"top\" align=\"left\">
<%
    Sql = \"SELECT pr.Producent_ID, pr.ProducentNavn FROM Producenter pr ORDER BY pr.ProducentNavn;\"
    Set Record =  Rs.Execute(Sql)
    response.write \"<select name=\'Producent_ID\' size=\'1\'><option value=\'\" & Request.QueryString(\"Produ\") & \"\'>\" & Request.QueryString(\"ProdN\") & \"</option>\"
    Do While Not Record.EOF
      response.write \"<option value=\'\" & Record(\"Producent_ID\") & \"\'>\" & Record(\"ProducentNavn\") & \"</option>\"
    Record.MoveNext
    Loop
      response.write \"</select>\"
%>
</td></tr>
<%

    sql = \"SELECT p.ProduktID, p.Produktnavn, p.Produktbeskrivelse, p.PrisPrEnhed FROM Produkter p WHERE p.ProduktID = \"
    sql = sql & Request.QueryString(\"id\")
    sql = sql & \" ORDER BY p.Produktnavn;\"
    Set Record =  Rs.Execute(Sql)
    Do While Not Record.EOF
    response.write \"<tr><td valign=\'top\' align=\'right\'><b>Produktnavn : </b></td>\"
    response.write \"<td valign=\'top\' align=\'left\'><input type=\'text\' name=\'Produktnavn\' size=\'46\' value=\'\" & Record(\"Produktnavn\") & \"\'></td></tr>\"
    response.write \"<tr><td valign=\'top\' align=\'right\'><b>Produktbeskrivelse : </b></td>\"
    response.write \"<td valign=\'top\' align=\'left\'><textarea rows=\'8\' name=\'Produktbeskrivelse\' cols=\'40\'>\"  & Record(\"Produktbeskrivelse\") &  \"</textarea></td></tr>\"
    response.write \"<tr><td valign=\'top\' align=\'right\'><b>Pris pr. Enhed : </b></td>\"
    response.write \"<td valign=\'top\' align=\'left\'><input type=\'text\' name=\'PrisPrEnhed\' size=\'10\' value=\'\" & Record(\"PrisPrEnhed\") & \"\'></td></tr>\"
    response.write \"<tr><td valign=\'top\' align=\'center\' colspan=\'2\'>\"
    response.write \"<input type=\'submit\' value=\'Send\'>&nbsp;&nbsp;&nbsp; <input type=\'reset\' value=\'Anuller\'></td></tr>\"
    Record.MoveNext
    Loop
      response.write \"</table>\"

%>
<%
    Record.Close
    RS.Close
%>
</form>
</body>
</html>

--------------------


Jeg har så denne update.asp :

------------------------------- UPDATE.asp -------------------------------
<%
    Response.Buffer = True
    Set Rs = Server.CreateObject(\"ADODB.Connection\")
    DBPath = \"DBQ=\" & server.mappath(\"../db/p.mdb\")
    Rs.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
%>

<%
sql = \"SELECT * FROM Produkter WHERE p.ProduktID =\"
sql = sql & Request.QueryString(\"id\")
Set Record =  Rs.Execute(Sql)

%>
   
<%
    Sql = \"UPDATE DISTINCTROW Produkter SET (p.Kat_ID, p.Producent_ID, p.Produktnavn, p.Produktbeskrivelse, p.PrisPrEnhed) values(\'\" & Request.form(\"Kat_ID\") & \"\',\'\" & Request.form(\"Producent_ID\") & \"\',\'\" & Request.form(\"Produktnavn\") & \"\',\'\" & Request.form(\"Produktbeskrivelse\") & \"\',\'\" & Request.form(\"PrisPrEnhed\") & \"\')\"
Sql = Sql & \" WHERE ProduktID = \'\" & Record(\"ProduktID\") & \"\'\"
    response.redirect \"in.asp\"

Record.Close
RS.Close

%>

-------------------------------

jeg har prøvet lidt af hvert efterhånden,
og er derfor desparat efter hjææælp..
(derfor den høje \"dusør\")

hvad er galt ?
Avatar billede lp Nybegynder
20. december 2000 - 00:29 #1
en update er IKKE:
update tabel set (feltnavn) values (\'værdi\').......

men:

update tabel set feltnavn=\'feltværdi\',feltnavn2=\'feltnavn2værdi\'.........etc.....where id=Request(\"id\")

prøv at rette det først.....
Avatar billede bootlab Nybegynder
20. december 2000 - 00:39 #2
Det prøver jeg lige....
BRB
Avatar billede lp Nybegynder
20. december 2000 - 00:44 #3
ok, derefter kan det blive nødvendigt med flere tilrettelser, men lad os tage det lidt ad gangen...
desuden kan du godt fjerne p. foran dine feltnavne.....du har jo ikke sat noget \"nickname\" til tabellen.... - du kan også gøre det på den lette måde.....sætte et mellemrum efter Produkter og skrive p altså starten er så:

update Produkter p SET ....blah.....

det skulle virke....
Avatar billede bootlab Nybegynder
20. december 2000 - 00:51 #4
Nu har jeg prøvet med :

    Sql = \"UPDATE DISTINCTROW Produkter SET Kat_ID=\'\" & Request.form(\"Kat_ID\") & \"\',\'\" & \" Producent_ID=\'\" & Request.form(\"Producent_ID\") & \"\',\'\" & \" Produktnavn=\'\" & Request.form(\"Produktnavn\") & \"\',\'\" & \" Produktbeskrivelse=\'\" & Request.form(\"Produktbeskrivelse\") & \"\',\'\" & \" p.PrisPrEnhed=\'\" & Request.form(\"PrisPrEnhed\") & \"\' WHERE ProduktID = \" & Record(\"ProduktID\") & \"\"

det virker heller ikke
Avatar billede lp Nybegynder
20. december 2000 - 00:55 #5
prøv at fjerne distinctrow (som skulle være i 2 ord, men som vist heller ikke hører hjemme i en update)

samtidig kan du lige skrive:

Response.Write Sql lige under den sql og poste det herinde...
Avatar billede bootlab Nybegynder
20. december 2000 - 00:57 #6
Nu har jeg også lige prøvet med :

    Sql = \"UPDATE Produkter p SET Kat_ID=\'\" & Request.form(\"Kat_ID\") & \"\',\'\" & \" Producent_ID=\'\" & Request.form(\"Producent_ID\") & \"\',\'\" & \" Produktnavn=\'\" & Request.form(\"Produktnavn\") & \"\',\'\" & \" Produktbeskrivelse=\'\" & Request.form(\"Produktbeskrivelse\") & \"\',\'\" & \" p.PrisPrEnhed=\'\" & Request.form(\"PrisPrEnhed\") & \"\' WHERE ProduktID = \" & Record(\"ProduktID\") & \"\"

Det hjalp sku´ heller ikke
Avatar billede lp Nybegynder
20. december 2000 - 00:57 #7
hov hov, stop.......:

Sql = \"UPDATE Produkter SET Kat_ID=\'\" & Request.form(\"Kat_ID\") & \"\',\'\" & \" Producent_ID=\'\" & Request.form(\"Producent_ID\") & \"\',\'\" & \" Produktnavn=\'\" & Request.form(\"Produktnavn\") & \"\',\'\" & \" Produktbeskrivelse=\'\" & Request.form(\"Produktbeskrivelse\") & \"\',PrisPrEnhed=\'\" & Request.form(\"PrisPrEnhed\") & \"\' WHERE ProduktID = \" & Record(\"ProduktID\")

sådan skal den se ud......
Avatar billede lp Nybegynder
20. december 2000 - 00:59 #8
stop igen, he he.....flere fejl:

Sql = \"UPDATE Produkter SET Kat_ID=\'\" & Request.form(\"Kat_ID\") & \"\',Producent_ID=\'\" & Request.form(\"Producent_ID\") & \"\',Produktnavn=\'\" & Request.form(\"Produktnavn\") & \"\',Produktbeskrivelse=\'\" & Request.form(\"Produktbeskrivelse\") & \"\',PrisPrEnhed=\'\" & Request.form(\"PrisPrEnhed\") & \"\' WHERE ProduktID = \" & Record(\"ProduktID\")
Avatar billede lp Nybegynder
20. december 2000 - 01:00 #9
kan jeg se den side som giver fejl et eller andet sted?
har du icq ?
Avatar billede bootlab Nybegynder
20. december 2000 - 01:02 #10
yep : 86282572
Avatar billede ldanielsen Nybegynder
20. december 2000 - 02:39 #11
Du mangler da (i din update.sql) at sige:

Rs.Execute Sql

Ellers sker der da ingenting
Avatar billede lp Nybegynder
20. december 2000 - 02:41 #12
ja det er en ud af flere fejl, jjeg har forsøgt at hjælpe men modtog aldrig filen.......lad os se om han klarer den selv....
Avatar billede lp Nybegynder
20. december 2000 - 02:42 #13
ldanielsen -> siden kan ikke vises så der er masser af andre fejl også.....ellers ville den jo bare lade som om...:-)
Avatar billede lp Nybegynder
20. december 2000 - 20:36 #14
bootlab -> virkede den jeg sendte pr. mail ?
kan du evt. poste den herinde, så de andre kan se at koden er ok.....
Avatar billede bootlab Nybegynder
20. december 2000 - 20:36 #15
lp > Tusind tak fordi du gad dele din viden :)
    RESPEKT
Avatar billede lp Nybegynder
20. december 2000 - 20:38 #16
selvtak :-)
Avatar billede bootlab Nybegynder
20. december 2000 - 20:42 #17
På opfordring !!!

Her er den Sovs der virker:

<%
    Set Rs = Server.CreateObject(\"ADODB.Connection\")
    DBPath = \"DBQ=\" & server.mappath(\"../Databaser/DinDatabase.mdb\")
    Rs.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
%>

<%
sql = \"SELECT * FROM DinTabel WHERE ProduktID = \" & Request(\"id\")
Set Record =  Rs.Execute(Sql)

Sql = \"UPDATE DinTabel SET Kat_ID=\'\" & Request.form(\"Kat_ID\") & \"\',Producent_ID=\'\" & Request.form(\"Producent_ID\") & \"\',Produktnavn=\'\" & Request.form(\"Produktnavn\") & \"\',Produktbeskrivelse=\'\" & Request.form(\"Produktbeskrivelse\") & \"\',PrisPrEnhed=\'\" & Request.form(\"PrisPrEnhed\") & \"\' WHERE ProduktID = \" & Record(\"ProduktID\")
\'Response.Write Sql
Rs.execute(Sql)
response.redirect \"forside.asp\"

\'Record.Close
\'RS.Close

%>

God jul & godt nytår
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