Avatar billede cyberkox Nybegynder
03. maj 2002 - 15:37 Der er 5 kommentarer og
1 løsning

Update virker ikke. Hvorfor ?

Hej Eksperter.

Browseren siger ar der er en fejl i denne kode:

-------------------------------------------------
update.asp
-------------------------------------------------
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("tagwall.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN

sql = "UPDATE TagWall SET emne= '" & request.form("emne") & "', "
sql = SQL & "besked= '" & request.form("besked") &"', "
sql = SQL & "navn= '" & request.form("navn") &"', "
sql = SQL & "email= '" & request.form("email") &"', "
sql = SQL & "url= '" & request.form("url") &"', "
sql = SQL & "icq= '" & request.form("icq") &"' "
sql = SQL & "WHERE ID= " & request("ID")
    Conn.Execute(SQL)    &#61663; Dette er linje 151
    Conn.Close
    Set Conn = Nothing
   
Response.Redirect ("admin.asp")
%>
-------------------------------------------------
update.asp
-------------------------------------------------

Som fejlmeddelelse får jeg:
-------------------------------------------------
Dette er fejlmeddelelsen:
-------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "'Hej Allesammen. Nu er der kommet en lille opdatering til Tagwall'en. Man kan nu skrive med: Fed skrift [i]Kursiv skrift[s/i] og underskreget skrift Jeg har fået det lavet i samarbejde med Craig :-) Med Venlig Hilsen Webmaster / C".
/cyber-kox/tag/admin.asp, linje 151
-------------------------------------------------
Dette er fejlmeddelelsen:
-------------------------------------------------

Er der nogen der ved, hvad fejlen er ?
 
Avatar billede eagleeye Praktikant
03. maj 2002 - 15:40 #1
Du skal replace ' med '' inden du ligger i databse.

SQL fortolkeren ser ' som start og slut på en streng men to '' som en rigtig ' eks Ole's Bil:


sql = "UPDATE TagWall SET emne= '" & request.form("emne") & "', "
sql = SQL & "besked= '" & replace(request.form("besked"),"'","''") &"', "
sql = SQL & "navn= '" & request.form("navn") &"', "
sql = SQL & "email= '" & request.form("email") &"', "
sql = SQL & "url= '" & request.form("url") &"', "
sql = SQL & "icq= '" & request.form("icq") &"' "
sql = SQL & "WHERE ID= " & request("ID")
Avatar billede eagleeye Praktikant
03. maj 2002 - 15:43 #2
Du har i en værdi:  Tagwall'en

Det bør gøres for alle de felter som er definere som tekst i databasen.

Når du udskriver igen behøver du ikke lave de 2 '' om til 1 ' for det sker automatisk i databasen. Det er kun når man ligger noget i databasen man skal lave en ' om til to ''. Og som sagt bør man gøre det for alle felter som en bruger kan rette i som er defineret som tekst.
Avatar billede cyberkox Nybegynder
03. maj 2002 - 15:43 #3
Okai, så virker det. Er det så ikk også en god ide at gøre det ved de andre ?
Avatar billede cyberkox Nybegynder
03. maj 2002 - 15:47 #4
Takker for hjælpen........
Avatar billede eagleeye Praktikant
03. maj 2002 - 15:52 #5
Det var så lidt.

Ja det er en god ide at lave den for alle felter.
Avatar billede kotelet Nybegynder
03. maj 2002 - 15:53 #6
Det er en god idé at lave en funktion i toppen at dit ASP dokument som du så kan kalde senere.

Function Udskift(str)
str = replace(str, "''", "''''")
str = replace(str, "'", "''")
Udskift = str
End function


sql = "UPDATE TagWall SET emne= '" & Udskift(request.form("emne")) & "', "
sql = SQL & "besked= '" & Udskift(request.form("besked")) &"', "
sql = SQL & "navn= '" & Udskift(request.form("navn")) &"', "
sql = SQL & "email= '" & request.form("email") &"', "
sql = SQL & "url= '" & request.form("url") &"', "
sql = SQL & "icq= '" & request.form("icq") &"' "
sql = SQL & "WHERE ID= " & request("ID")

Denne funktion udskifter også dobbelt citationstegn ", da de også laver fejl.

Håber du kan bruge det :-)

/Kotelet
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