Avatar billede svjensen Nybegynder
04. august 2004 - 11:20 Der er 5 kommentarer og
1 løsning

Problem med apostroffer

Inspireret af http://www.eksperten.dk/spm/521218 har jeg testet følgende script:

*************SCRIPT START********************
<!--#include file="include/connection.asp"-->
<%if request.querystring("action") = "skriv" Then
    teksten = request.form("tekst")
    teksten1 = Replace(teksten, "'", "''")
    teksten2 = Replace(teksten1, chr(34), "&quot;")
   
    strSQL = "INSERT INTO test (tekst) VALUES ('"& teksten2 & "')"
    response.write teksten & ": teksten<br>"
    response.write teksten1 & ": teksten1<br>"
    response.write teksten2 & ": teksten2<br>"
    response.write strSQL & ": strSQL<br>"
    response.write chr(34) & ": chr(34)<br>"
    response.write ": &quot;<br>"
   
    set rs = conn.execute(strSQL)
   
Else
    strSQL = "SELECT * FROM test"
    set rs = conn.execute(strSQL)
   
    While not rs.EOF
        response.write rs("tekst") & "<br><br>"
        rs.MoveNext
    Wend
    %>
    <br><br>
    <form action="test1.asp?action=skriv" method=post>
        <input type=text name=tekst><input type=submit value="Skriv">
    </form>
<%End If%>
*************SCRIPT SLUT********************


Men det giver følgende:

*************FEJL START********************
cd'en: teksten
cd''en: teksten1
cd''en: teksten2
INSERT INTO test (tekst) VALUES ('cd''en'): strSQL
": chr(34)
: "

Microsoft OLE DB Provider for SQL Server error '80040e57'

String or binary data would be truncated.
*************FEJL SLUT********************

Hvad kan problemet være?

/p/pp/ppu/test/sandkassen/test1.asp, line 15
Avatar billede erikjacobsen Ekspert
04. august 2004 - 11:31 #1
Dit felt i tabellen er måske kun sat til at være max 4 tegn langt??
Avatar billede tobocom Nybegynder
04. august 2004 - 21:09 #2
Det er et ret stort problem i SQL, da det kan vælte en tabel helt så den ikke kan bruges før man manuelt fjerner den post. Jeg fjerner dem simpelthen inden de bliver lagret i databasen.

Men jeg er med på en lytter hvis der sidder en med svaret har selv ledt efter det i et års tid.
Avatar billede tobocom Nybegynder
04. august 2004 - 21:11 #3
Nåja problemet er at det jo forbindes en en strengværdi i din SQL sætning, og derfor kan databasen ikke håndtere sætningen som du ønsker det.
Avatar billede svjensen Nybegynder
12. august 2004 - 22:29 #4
erikjocobsen-> Jeg må med skam erkende at du har ret. Jeg havde glemt at definere størrelsen på mit VARCHAR felt. Pinligt.

Tak for hjælpen

husk et svar.
Avatar billede erikjacobsen Ekspert
12. august 2004 - 22:45 #5
Tak, men jeg samler slet ikke på point.
Avatar billede svjensen Nybegynder
15. august 2004 - 13:01 #6
Your choise. Tak for hjælpen.
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