Avatar billede bobbedude Nybegynder
23. november 2001 - 09:45 Der er 18 kommentarer og
1 løsning

Ahm update hvad er der galt

Hmm det er da så simpel men jeg kan ikke få det til at virke :

<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")
SQL = \"SELECT * FROM links WHERE id LIKE \'\" & request(\"linkid\") & \"\'\"
set rs = Connect.Execute(SQL)
%>
<html>
<head>
<title>note</title>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"update\" method=\"post\" action=\"note.asp?mode=opdater\">
<input type=\"hidden\" name=\"id\" value=\"<%=rs(\"id\")%>\">
  <table width=\"300\" border=\"0\">
    <tr>
      <td>Gemmes Ja / Nej</td>
      <td>
        <select name=\"gem\">
          <option selected></option>
          <option>JA</option>
          <option>NEJ</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>kommentar</td>
      <td>
        <textarea name=\"notat\"></textarea>
      </td>
    </tr>
    <tr>
      <td>
        <input type=\"submit\" name=\"Submit\" value=\"Opdater\">
      </td>
      <td>&nbsp;</td>
    </tr>
  </table>
<%
select case request (\"mode\")
 
case \"opdater\"

SQL = \"Update links set gemmes= \'\" &  request.form(\"gem\") & \"\', \"
SQL = SQL & \"notat= \'\"& request.form(\"notat\")&\"\', \"
SQL = SQL & \"WHERE id= \"& request.form(\"id\")

Connect.Execute( SQL )

response.redirect(\"kundeinfo.asp?mode=ok\")

end select
%>
</form>
</body>
</html>

Når man opdater laver den en fejl i linie 0.
hvad er der galt ???
Avatar billede eagleeye Praktikant
23. november 2001 - 09:47 #1
Hvis ID er defineret som tal i databasen kan man ikke bruge LIKE og der skal ike \' omrinng:

SQL = \"SELECT * FROM links WHERE id = \" & request(\"linkid\")
Avatar billede bobbedude Nybegynder
23. november 2001 - 09:53 #2
Den giver en fejle i SQLen
SQL = \"SELECT * FROM links WHERE id = \" & request(\"linkid\")

sådan er det nu:

<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")
SQL = \"SELECT * FROM links WHERE id = \" & request(\"linkid\")
set rs = Connect.Execute(SQL)
%>
<html>
<head>
<title>note</title>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"update\" method=\"post\" action=\"note.asp?mode=opdater\">
<input type=\"hidden\" name=\"id\" value=\"<%=rs(\"id\")%>\">
  <table width=\"300\" border=\"0\">
    <tr>
      <td>Gemmes Ja / Nej</td>
      <td>
        <select name=\"gem\">
          <option selected></option>
          <option>JA</option>
          <option>NEJ</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>kommentar</td>
      <td>
        <textarea name=\"notat\"></textarea>
      </td>
    </tr>
    <tr>
      <td>
        <input type=\"submit\" name=\"Submit\" value=\"Opdater\">
      </td>
      <td>&nbsp;</td>
    </tr>
  </table>
<%
select case request (\"mode\")
 
case \"opdater\"

SQL = \"Update links set gemmes= \'\" &  request.form(\"gem\") & \"\', \"
SQL = SQL & \"notat= \'\"& request.form(\"notat\")&\"\', \"
SQL = SQL & \"WHERE id= \"& request.form(\"id\")

Connect.Execute( SQL )

response.redirect(\"kundeinfo.asp?mode=ok\")

end select
%>
</form>
</body>
</html>
Avatar billede eagleeye Praktikant
23. november 2001 - 09:55 #3
hvilken fejl?
Avatar billede bobbedude Nybegynder
23. november 2001 - 09:57 #4
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'id =\'.

/mediebank/150dandy/note.asp, line 6

Linie 6 = set rs = Connect.Execute(SQL)

Avatar billede eagleeye Praktikant
23. november 2001 - 10:00 #5
Så er  request(\"linkid\")  nok tom.

Er ID defieret som tal i databasen?
Avatar billede bobbedude Nybegynder
23. november 2001 - 10:01 #6
det er et autonummereings felt
Avatar billede bobbedude Nybegynder
23. november 2001 - 10:06 #7
jeg har lavet lidt om på det


<html>
<head>
<title>note</title>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"update\" method=\"post\" action=\"note.asp?mode=opdater\">
<input type=\"hidden\" name=\"id\" value=\"<%=request(\"linkid\")%>\">
  <table width=\"300\" border=\"0\">
    <tr>
      <td>Gemmes Ja / Nej</td>
      <td>
        <select name=\"gem\">
          <option selected></option>
          <option value=\"JA\">JA</option>
          <option value=\"NEJ\">NEJ</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>kommentar</td>
      <td>
        <textarea name=\"notat\"></textarea>
      </td>
    </tr>
    <tr>
      <td>
        <input type=\"submit\" name=\"Submit\" value=\"Opdater\">
      </td>
      <td>&nbsp;</td>
    </tr>
  </table>
<%
select case request (\"mode\")
 
case \"opdater\"

SQL = \"Update links set gemmes= \'\" &  request.form(\"gem\") & \"\', \"
SQL = SQL & \"notat= \'\"& request.form(\"notat\")&\"\', \"
SQL = SQL & \"WHERE ID= \"& request.form(\"id\")

Connect.Execute( SQL )

response.redirect(\"kundeinfo.asp?mode=ok\")

end select
%>
</form>
</body>
</html>

nu giver det fejlen:

Microsoft VBScript runtime error \'800a01a8\'

Object required: \'\'

/mediebank/150dandy/note.asp, line 43


linie 43 = Connect.Execute( SQL )
Avatar billede eagleeye Praktikant
23. november 2001 - 10:08 #8
du skal havde dette med:

set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")


Evt her:

select case request (\"mode\")
 
case \"opdater\"

set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")

.KODE.

Connect.Execute( SQL )
Connect.Close        <-------bør/skal med

Avatar billede bobbedude Nybegynder
23. november 2001 - 10:25 #9
Nu er det sådan :

<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")
strSQL = \"SELECT * FROM links WHERE ID=\" & Request(\"linkid\")
Set rs = connect.Execute(strSQL)
%>
<html>
<head>
<title>note</title>
</head>

<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"update\" method=\"post\" action=\"note.asp?mode=opdater\">
<input type=\"hidden\" name=\"id\" value=\"<%=rs(\"id\")%>\">
  <table width=\"300\" border=\"0\">
    <tr>
      <td>Gemmes Ja / Nej</td>
      <td>
        <select name=\"gem\">
          <option selected></option>
          <option value=\"JA\">JA</option>
          <option value=\"NEJ\">NEJ</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>kommentar</td>
      <td>
        <textarea name=\"notat\"></textarea>
      </td>
    </tr>
    <tr>
      <td>
        <input type=\"submit\" name=\"Submit\" value=\"Opdater\">
      </td>
      <td>&nbsp;</td>
    </tr>
  </table>
<%
select case request (\"mode\")
 
case \"opdater\"

connect.execute(\"Update links set gemmes= \'\"& request.form(\"gem\")&\"\'\")
connect.execute(\"Update links set notat= \'\"& request.form(\"notat\")&\"\'\")

response.redirect(\"kundeinfo.asp?mode=ok\")

end select

Connect.Close
%>
</form>
</body>
</html>


men jeg får stadig fejlen :

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'ID=\'.

/mediebank/150dandy/note.asp, line 6

Linie 6 er Set rs = connect.Execute(strSQL)
Avatar billede eagleeye Praktikant
23. november 2001 - 10:28 #10
Prøv og udskriv Request(\"linkid\")

<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")

Response.write Request(\"linkid\")

strSQL = \"SELECT * FROM links WHERE ID=\" & Request(\"linkid\")
Set rs = connect.Execute(strSQL)
Avatar billede eagleeye Praktikant
23. november 2001 - 10:41 #11
skriver den noget ud?

Evt sådan her:
Response.write \":\" & Request(\"linkid\") & \":<br>\"
Avatar billede bobbedude Nybegynder
23. november 2001 - 10:44 #12
det virker fint nog den får linkid med rundt
Avatar billede eagleeye Praktikant
23. november 2001 - 10:47 #13
Du laver en SQL i toppen af filen:
strSQL = \"SELECT * FROM links WHERE ID=\" & Request(\"linkid\")
Set rs = connect.Execute(strSQL)

Hvis linkid er tom vil den lave fejl.

Linket til filen skalse sådan her ud:  note.asp?linkid=2  <--- 2 som eks.
Hvis linket bare er: note.asp  kommer der fejl i linie 6
Avatar billede zeptic Nybegynder
23. november 2001 - 10:49 #14
glemmer du ikke at definere recordsettet?

set rs=Server.CreateObject(\"ADODB.Recordset\")
Avatar billede eagleeye Praktikant
23. november 2001 - 10:52 #15
Så vidt jeg kan se forvendtes at linkid er med da det recordset (rs) som åbenes i staten brugres til at sætte data ind i formen med.

Så kan du ligge en if omkring det hele:

<%
if Request(\"linkid\") <> \"\" then    \'\"\" = tom
  response.buffer = true
  ..koden..
  %>
  </form>
  </body>
  </html>
<% else %>
  Linkid er ikke defineret :(
<% end if %>
Avatar billede bobbedude Nybegynder
23. november 2001 - 11:10 #16
nu opdater den men den opdater alle felter ??
Avatar billede bobbedude Nybegynder
23. november 2001 - 11:10 #17
<%
response.buffer = true
set connect = server.createobject(\"ADODB.Connection\")
Connect.open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"bank.mdb\")
strSQL = \"SELECT * FROM links WHERE id like \'\" & request(\"linkid\") & \"\'\"
Set rs = connect.Execute(strSQL)
%>
<html>
<head>
<title>note</title>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
<form name=\"update\" method=\"post\" action=\"note.asp?mode=opdater&linkid=<%=rs(\"id\")%>\">
<input type=\"hidden\" name=\"id\" value=\"<%=rs(\"id\")%>\">
<table width=\"300\" border=\"0\">
<tr>
<td>Gemmes Ja / Nej</td>
<td>
<select name=\"gem\">
<option selected></option>
<option value=\"JA\">JA</option>
<option value=\"NEJ\">NEJ</option>
</select>
</td>
</tr>
<tr>
<td>kommentar</td>
<td>
<textarea name=\"notat\"></textarea>
</td>
</tr>
<tr>
<td>
<input type=\"submit\" name=\"Submit\" value=\"Opdater\">
</td>
<td>&nbsp;</td>
</tr>
</table>
<%
select case request (\"mode\")
case \"opdater\"
if Request(\"linkid\") <> \"\" then
connect.execute(\"Update links set gemmes= \'\"& request.form(\"gem\")&\"\'\")
connect.execute(\"Update links set notat= \'\"& request.form(\"notat\")&\"\'\")
response.redirect(\"kundeinfo.asp?mode=ok\")
else
%>
Linkid er ikke defineret :(
<%
end if
end select
Connect.Close
%>
</form>
</body>
</html>
Avatar billede eagleeye Praktikant
23. november 2001 - 11:15 #18
det skal en WHERE på UPDATE for at begrænse hvilke records som opdateres:

connect.execute(\"Update links set gemmes= \'\"& request.form(\"gem\")&\"\' WHERE ID =\"&Request(\"linkid\"))
connect.execute(\"Update links set notat= \'\"& request.form(\"notat\")&\"\' WHERE ID =\"&Request(\"linkid\"))

du kan også lave det i en SQL:


strSQL = \"Update links set gemmes= \'\"& request.form(\"gem\")& \"\', notat=\'\" & request.form(\"notat\") & \"\' WHERE ID =\"&Request(\"linkid\")
connect.execute(strSQL)
Avatar billede bobbedude Nybegynder
23. november 2001 - 11:17 #19
fedest eagleeye  det kører !
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