Avatar billede do Nybegynder
26. oktober 2001 - 09:31 Der er 8 kommentarer og
1 løsning

insætning i db

Jeg har lavet et script som indsætter en besked i databasen. men når jeg f.eks. skriver tegner \' i indsæt boxen får jeg fejlen :

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

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i strengen i forespørgselsudtrykket \"\'sss\' \')\".

/busses_site/minklasse/opret.asp, linje 12


Her skrev jeg bare

sss\' og fik denne fejl..
Avatar billede somaliomar Praktikant
26. oktober 2001 - 09:40 #1
Kom med koden så skal jeg se
Avatar billede eagleeye Praktikant
26. oktober 2001 - 09:40 #2
Du skal konvertere en \' til 2 \' inde du skriverr til databasen. \' bruges til at omslutte strenge i SQL:

str = replace(str,\"\'\",\"\'\'\")
Avatar billede andreasv Nybegynder
26. oktober 2001 - 09:42 #3
Hejsa
Du skal bruge nedenstående:

<script language=\"VBScript\" runat=\"Server\">
Function unQuote(strTekst)
    strTekst = Trim(strTekst)
    unQuote = Replace(strTekst,\"\'\",\"\'\'\")
End Function
</script>

<html><head>
<title>Det dumme \' tegn</title>
</head><body>

<%
If Request.Form(\"Action\") = \"Fjern\" Then
    Response.Write \"<p><em>Her er teksten med dobbelt \' tegn, dette vil blive tolket som et \' tegn af databasen.<em><p>\"
    Response.Write unQuote(Request.Form(\"Tekst\"))
End If
%>

<form action=\"quot_tegnet.asp\" method=\"POST\">
<textarea name=\"Tekst\" cols=\"40\" rows=\"10\"></textarea><br>
<input type=\"Submit\" name=\"Action\" value=\"Fjern\">
</form>

</body></html>


Hilsner
AndreasV
Avatar billede do Nybegynder
26. oktober 2001 - 09:43 #4
Jammen er det ikke bare et eller andet

text = replace et eller andet ?

Her er koden :

<%

besked1 = Request(\"besked1\")

if mode = \"opret\" then

Set conn = Server.CreateObject(\"ADODB.Connection\")
connString = \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"db.mdb\")
Conn.open(connString)
Sql = \"INSERT INTO klassetre (besked2) values (\'\" & besked1 & \"\')\"
Conn.Execute(SQL)
conn.close
Set Conn = Nothing
%>
<body onload=\"window.close()\">
<%
end if
%>
Avatar billede eagleeye Praktikant
26. oktober 2001 - 09:44 #5
text = replace(text ,\"\'\",\"\'\'\")
Avatar billede eagleeye Praktikant
26. oktober 2001 - 09:46 #6
Din streng hedder besked1 ...
besked1 = replace(Request(\"besked1\"),\"\'\",\"\'\'\")


<%

besked1 = replace(Request(\"besked1\"),\"\'\",\"\'\'\")

if mode = \"opret\" then

Set conn = Server.CreateObject(\"ADODB.Connection\")
connString = \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"db.mdb\")
Conn.open(connString)
Sql = \"INSERT INTO klassetre (besked2) values (\'\" & besked1 & \"\')\"
Conn.Execute(SQL)
conn.close
Set Conn = Nothing
%>
<body onload=\"window.close()\">
<%
end if
%>
Avatar billede somaliomar Praktikant
26. oktober 2001 - 09:51 #7
Prøv evt.:

SQL = \"INSERT INTO klassetre (besked2) values (\'\" & replace(Request(\"besked1\"),\"\'\",\"\'\'\") & \"\')\"






Avatar billede do Nybegynder
26. oktober 2001 - 10:06 #8
Tak for det alle sammen..

Sidst nævnte fik jeg til at virke med det samme så han får pointne..
Avatar billede eagleeye Praktikant
26. oktober 2001 - 10:15 #9
hmmm ikke bare 1 point for at forklare hvorfor du får og ungår fejlen :)
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