Avatar billede mrs Nybegynder
20. november 2002 - 17:22 Der er 7 kommentarer og
2 løsninger

Insert into med reference til ID

Er der nogen der kan give mig svaret på hvad der er galt i nedenstående. ID bliver sendt med fra anden side og så skal der sættes tekst ind i de to felter.

strSQL = "insert into konkurrence (Svarkon, Vinder, ID)"
strSQL = strSQL & "'" & Request.Form("Svarkon") & "')"
strSQL = strSQL & "'" & Request.Form("Vinder") & "')"
strSQL = strSQL & Where ID=" & Request.Querystring("ID") & "

Response.Write(strSQL)
Avatar billede pfp Nybegynder
20. november 2002 - 17:37 #1
Hvilken fejl får du?

Men prøv lige med følgende istedet for:
SQL = "INSERT INTO konkurrence(Svarkon, Vinder)"
SQL = SQL & " VALUES ("
SQL = SQL & "'" & Request.ServerVariables("Svarkon") & "', "
SQL = SQL & "'" & Request.ServerVariables("Vinder") & "', "
SQL = SQL & ") WHERE ID=" & & Request.Querystring("ID")

Jeg har her taget udgangspunkt i at dine felter Svarkon og Vinder er af typen tekst i din database. Hvis det ikke virker må du lige sige til.
Avatar billede pfp Nybegynder
20. november 2002 - 17:38 #2
Må man spørge hvorfor du siger:
Response.Write(strSQL)

istedet for f.eks.
Conn.Execute(SQL)

Med din response.write kan du ikke få udført andet end at få udskrevet hvad sql indeholder.
Avatar billede mrs Nybegynder
20. november 2002 - 17:44 #3
Den med Response.Write(strSQL) må være en tanketorsk.
Når jeg bruger det du har skrevet får jeg følgende fejl:

/ramsoe/safileup/svarkonkurrence.asp, line 22, column 28
SQL = SQL & ") WHERE ID=" & & Request.Querystring("ID")

Det her er linket til filen:

svarkonkurrence.asp?ID=16
Avatar billede mrs Nybegynder
20. november 2002 - 17:46 #4
Jeg fjernede lige det ekstra & du havde indsat.
Det hjalp på ID med nu melder den fejl i Conn.Execute(strSQL).

Der er ikke angivet nogen kommandotekst for kommandoobjektet.
Avatar billede mrs Nybegynder
20. november 2002 - 17:50 #5
Her er hele koden, måske hjælper det lidt på det:

<%
if request.servervariables("REQUEST_METHOD") = "POST" then

'Tjecker om felterne er udfyldt
  if (Request.Form("Svarkon") <> "" AND Request.Form("Vinder") <> "") then

SQL = "INSERT INTO konkurrence(Svarkon, Vinder)"
SQL = SQL & " VALUES ("
SQL = SQL & "'" & Request.ServerVariables("Svarkon") & "', "
SQL = SQL & "'" & Request.ServerVariables("Vinder") & "', "
SQL = SQL & ") WHERE ID=" & Request.Querystring("ID")

Conn.Execute(SQL)
   
    Response.Write("<strong><font color='red'>Du har sendt svaret og vinder på konkurrencen!</font></strong>")
   
    Conn.Close
    set Conn = nothing
   
    else
    Response.Write("<strong><font color='red'>Du mangler at udfylde felter!</font></strong>")
   
    end if
    end if
%>

<FONT COLOR="#000080"><H3 ALIGN="CENTER">OPDATERE KONKURRENCE</H3></FONT>
<br><br><br>
<b>Opdaterer konkurrencen som alle kan se.</b><br>
Her skriver du den besked, som kan ses på konkurrencesiden.<br>
<hr size="0" width="98%" align="center" color="#000000">
<form method="POST" action="svarkonkurrence.asp?ID=<%=Request.Querystring("ID")%>">
<table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr valign="top">
          <td valign="middle" align="left" colspan="2"><br>Opdater venligst oplysningerne i følgende felter:<strong></td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Svar konkurrence: </b></td>
          <td valign="middle" align="left">
<input type="text" name="Svarkon" size="40"></td>
        </tr>
        <tr valign="top">
          <td align="right"><p><b>Vinder/afhentning: </b></td>
          <td valign="middle" align="left">
<textarea rows="5" name="Vinder" cols="35"></textarea>
</td>
        <tr>
          <td><p align="center"><br>
          <input type="submit" value="Opdater" name="Opdater"> <input type="button" value="Annuller" name="Annuller" onClick="java script:location.href='oversigtkonkurrencer.asp'"></p></td>
        </tr>
      </table>
</form>
Avatar billede pfp Nybegynder
20. november 2002 - 18:06 #6
Hehe ja ok, det er mig der har lavet en brøler :-)

Prøv med dette istedet for:
SQL = "INSERT INTO konkurrence(Svarkon, Vinder)"
SQL = SQL & " VALUES ("
SQL = SQL & "'" & Request.Form("Svarkon") & "', "
SQL = SQL & "'" & Request.Form("Vinder") & "', "
SQL = SQL & ") WHERE ID=" & Request.Querystring("ID")

Conn.Execute(SQL)
Avatar billede cbp Nybegynder
20. november 2002 - 20:54 #7
Når der skal indsættes noget bruger man Insert men hvis data skal ændres/opdateres bruger update. Din sql skal derfor eks. være:

SQL = "Update konkurrence"
SQL = SQL & " set Svarkon = '" & Request.Form("Svarkon") & "', Vinder = '" & Request.Form("Vinder") & "'"
SQL = SQL & " WHERE ID=" & Request.Querystring("ID")
Avatar billede cbp Nybegynder
20. november 2002 - 20:56 #8
Nu jeg læser dit spørgsmål igen lyder det til at du også ønsker at indsætte id:

SQL = "INSERT INTO konkurrence(Svarkon, Vinder, id)"
SQL = SQL & " VALUES ("
SQL = SQL & "'" & Request.Form("Svarkon") & "', "
SQL = SQL & "'" & Request.Form("Vinder") & "', "
SQL = SQL & Request.Querystring("ID") & ")"
Avatar billede mrs Nybegynder
20. november 2002 - 22:05 #9
cbp >>> Du har ret i det du siger med update, jeg prøvede i starten med den, men den meldte fejl for mig og det tænkte jeg var fordi der ikke var en værdi i forvejen og derfor måtte jeg bruge insert to i stedet for. Men nu virker update funktionen.

I får lov at dele pointne for pfp svar var også rigtigt på det jeg spurgte på.

Tak for hjælpen begge to
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