Avatar billede jeppe81 Nybegynder
10. januar 2005 - 10:37 Der er 26 kommentarer og
1 løsning

fejl i SQL sætning.

Hej jeg skal lave en update på mit nyheds script, men kan ikke lige se hvad fejlen er i min SQL linje nogen der kan se det?

strSQL = "UPDATE news SET overskrift = '"& request.Form("redigeroverskrift") &"', tekst = '"& request.Form("redigertekst") &"' WHERE ID = "&request("ID")&" "

mvh
Jeppe
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 10:44 #1
prøv at ligge ID som en hidden value i din form, og ændre det til
request.Form("ID")
Avatar billede fennec Nybegynder
10. januar 2005 - 10:45 #2
Kan det være fordi der er bruge ' i teksten??? Det skal du altid tjekke for og udskifte dem:

strSQL = "UPDATE news SET overskrift = '"& replace(request.Form("redigeroverskrift"),"'","''") &"', tekst = '"& replace(request.Form("redigertekst"),"'","''") &"' WHERE ID = "&request("ID")
Avatar billede jtbroad Nybegynder
10. januar 2005 - 10:53 #3
WHERE ID = '"&request("ID")&"'"

du mangler 'plinger'
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 10:59 #4
har et java script tjek på om der er pling i teksten, og har prøvet med pling som jtbroad siger, men virker stadigt ikke. i kan lige få hele scriptet:

<!-- Start Nyheder opdateres -->

<%
'her opdateres data i Nyheds databasen
If request("Do") = "Opdaternyhed" then
strSQL = "UPDATE news SET overskrift = '"& request.Form("redigeroverskrift") &"', tekst = '"& request.Form("redigertekst") &"' WHERE ID = '"&request("ID")&"'"
conn.execute(strSQL)
response.Redirect("news.asp")
End If
%>

<%
'Her i vælges data fra nyhed's tabellen der skal redigeres
If request("Do") = "redigernyhed" then
strSQL = "SELECT * FROM news WHERE ID = "& request("ID") &""
set RS = conn.execute(strSQL)
%>

<form method="post" action="rediger.asp?Do=Opdaternyhed&ID=<%=RS("ID")%>" name="redigernews">
<table>
  <tr>
    <td valign="top"><h1 align="center">Edit news</h1></td>
  </tr>
  <tr>
    <td align="center"><font color="#0033CC">Edit subjekt:</font><br><textarea name="redigeroverskrift" id="redigeroverskrift"><%=RS("overskrift")%></textarea></td>
  </tr>
  <tr>
    <td align="center"><br><font color="#0033CC">Edit text:</font><br><textarea name="redigertekst" id="redigertekst"><%=RS("nyhed")%></textarea></td>
  </tr>
  <tr>
    <td align="center"><br><input type="submit" name="submit" value="Submit" id="submit"></td>
  </tr>
</table>
</form>
<%End If%>   

<!--SLUT Nyheder opdateres -->

håber i kan hjælpe :)
Avatar billede fennec Nybegynder
10. januar 2005 - 11:01 #5
prøv lige at udskrive sql'en. Det gør det ofte nemmere at finde fejlen.

response.write strSQL
response.end
conn.execute(strSQL)
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 11:06 #6
UPDATE news SET overskrift = 'nyheder ikke "pæne"', tekst = 'de nyheder der bliver skrevet er ikke pæne pga at linje skiftene er forkert tror jeg men dette er kun et gæt så længe andet ikke er bevist!' WHERE ID = '46'

det kommer der ud af min SQL.
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 11:07 #7
overskrift og tekst er jo så bare noget random tekst jeg har fundet på :)
Avatar billede fennec Nybegynder
10. januar 2005 - 11:09 #8
Der skal ikke ' omkring ID'et, da det er et tal. Det er kun tekst det skal bruges på. Ellers ser den god nok ud. Det eneste problem der kan være er hvis ID=46 ikke eksistere...
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 11:09 #9
der bør ikke være ' omkring dit ID
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 11:15 #10
Den kommer stadig med en fejl, meddelsen ser således ud:

Tekniske oplysninger (for supportteknikere)

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/6ty9/rediger.asp, line 21


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)

Side:
POST 220 bytes to /6ty9/rediger.asp

POST Data:
redigeroverskrift=Nyheder+ikke+%22p%E6ne%22&redigertekst=De+nyheder+der+bliver+skrevet+er+ikke+p%E6ne+pga+at+linje+skiftene+er+forkert+tror+jeg+men+dette+er+kun+et+g%E6t+s%E5+l%E6nge+andet+ikke+er+bev . . .

og linje 21 er:

conn.execute(strSQL)
(til min update sætning.)
Avatar billede fennec Nybegynder
10. januar 2005 - 11:19 #11
Det er ikke fordi "tekst" er et reserveret ord???

strSQL = "UPDATE news SET overskrift = '"& request.Form("redigeroverskrift") &"', [tekst] = '"& request.Form("redigertekst") &"' WHERE ID = "&request("ID")
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 11:21 #12
nope det virker stadig ikke, kan sq ikke helt se mig ud af det :/
Avatar billede jtbroad Nybegynder
10. januar 2005 - 11:22 #13
hvordan er strengen til din conn?
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 11:22 #14
id bør oxo være i [ ]
Avatar billede fennec Nybegynder
10. januar 2005 - 11:36 #15
... Skal vi ikke prøve at smide alle i [], bare for at være sikker... :o)

strSQL = "UPDATE [news] SET [overskrift] = '"& request.Form("redigeroverskrift") &"', [tekst] = '"& request.Form("redigertekst") &"' WHERE [ID] = "&request("ID")
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 13:27 #16
strengen til min conn er :

strSQL = "UPDATE news SET overskrift = '"& request.Form("redigeroverskrift") &"', tekst = '"& request.Form("redigertekst") &"' WHERE ID = '"&request("ID")&"'"

har ændret linjen til

strSQL = "UPDATE [news] SET [overskrift] = '"& request.Form("redigeroverskrift") &"', [tekst] = '"& request.Form("redigertekst") &"' WHERE [ID] = "&request("ID")

men det virker stadig ikke :/
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 13:31 #17
du er sikker på at conn er åben, når du forsøger at update?
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 13:43 #18
har lige fundet fejlen det var mig der havde skrevet et navn på en af tabellerne forkert :/ sry

Nu er i jo flere der har mig hjulpet, så hvad gør jeg med point'ene?
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 13:44 #19
Du vælge at dele pointene
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 13:46 #20
okay
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 13:47 #21
okay skal i så ikke svare før jeg kan gøre det? er lidt ny her.
Avatar billede fennec Nybegynder
10. januar 2005 - 13:48 #22
... Også beder du om svar fra den/de personer, du vil dele point imellem. Her har du mit svar (hvis jeg skal have point)

.o) <-- One Eyed Jack
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 13:48 #23
jo det er rigtigt. Men jeg svarer ikke, bare behold pointene selv. :-)
Avatar billede fennec Nybegynder
10. januar 2005 - 13:48 #24
også skal jeg også lige lave det som et svar :o)
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 14:42 #25
nu fik fennec altsaa alle point, håber ikke der er nogen der gerne ville have haft nogle af dem, og hvis der er så håber jeg ikke at i græder alt for meget i nat :D
Avatar billede jeppe81 Nybegynder
10. januar 2005 - 14:43 #26
og tak for hjælpen alle sammen
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 14:44 #27
det var så lidt...
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
Computerworld tilbyder specialiserede kurser i database-management

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