Avatar billede main Nybegynder
16. november 2000 - 20:06 Der er 14 kommentarer

Hvad der der galt???

Hvad der der galt???

<%

if request(\"mode\") =\"add\" then

\'forbindelse til databasen.
strconn = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"& Server.MapPath(\"stem.mdb\") &\";DefaultDir=\"& Server.MapPath(\"/\") &\";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5\"
    set conn = server.createobject(\"adodb.connection\")
    conn.open(strconn)

sql= \"insert into T_Vote(id, Beskrivelse, Valg1, Valg2, Valg3, Valg4) values(\" & \"\'\" & request(\"id\") & \"\'\" & \",\" & \"\'\" & request(\"beskrivelse\") & \"\'\" & \",\" & \"\'\" & request(\"v1\") & \"\'\" & \",\" & \"\'\" & request(\"v2\") & \"\'\" & \",\" & \"\'\" & request(\"v3\") & \"\'\" & \",\" & \"\'\" & request(\"v4\") & \"\'\" & \")\"
conn.execute(sql)



end if

%>

Jeg får fejlen:

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

[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.

/default.asp, linje 70

Avatar billede stigc Nybegynder
16. november 2000 - 20:11 #1
det er en meget rodet kode du fyre af, hvofor bruger ligge du ikke koden på flere linier, og bruger

sql = sql & \"ny linie\"

Men dit problem handler nok om at du glemmer \' uden om en tekststreng
Avatar billede tue Nybegynder
16. november 2000 - 20:12 #2
<%
if request(\"mode\") =\"add\" then

\'forbindelse til databasen.
strconn = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"& Server.MapPath(\"stem.mdb\") &\";DefaultDir=\"& Server.MapPath(\"/\") &\";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5\"
    set conn = server.createobject(\"adodb.connection\")
    conn.open(strconn)

sql= \"insert into T_Vote(id, Beskrivelse, Valg1, Valg2, Valg3, Valg4) values(\" & request(\"id\") & \",\'\" & request(\"beskrivelse\") & \"\',\'\" & request(\"v1\")& \"\',\'\" & request(\"v2\") & \"\',\'\" & request(\"v3\") & \"\',\'\" & \"\'\" & request(\"v4\") & \"\')\"
conn.execute(sql)

end if
%>

Avatar billede main Nybegynder
16. november 2000 - 20:20 #3
>>tue

Nu får jeg fejlen:

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 \"\'\'sdfg\')\".

/default.asp, linje 69
Avatar billede tue Nybegynder
16. november 2000 - 20:26 #4
Der var en lille fejl jeg ikke lige fik rettet før, men det skulle virke nu:
<%
if request(\"mode\") =\"add\" then

\'forbindelse til databasen.
strconn = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"& Server.MapPath(\"stem.mdb\") &\";DefaultDir=\"& Server.MapPath(\"/\") &\";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5\"
    set conn = server.createobject(\"adodb.connection\")
    conn.open(strconn)

sql= \"insert into T_Vote (id, Beskrivelse, Valg1, Valg2, Valg3, Valg4) values (\" & request(\"id\") & \",\'\" & request(\"beskrivelse\") & \"\',\'\" & request(\"v1\")& \"\',\'\" & request(\"v2\") & \"\',\'\" & request(\"v3\") & \"\',\'\" & request(\"v4\") & \"\')\"
conn.execute(sql)

end if
%>
Avatar billede ortrak Nybegynder
16. november 2000 - 22:07 #5
Fejlen står jo på helt almindelig dansk. Datatyperne i din db svarer ikke overens med dine kriterier i sql-strengen. Der skal ikke single-quotes omkring variabler, som skal indsættes i felter med integer-datatyper...


/ortrak
Avatar billede stigc Nybegynder
16. november 2000 - 22:20 #6
jeg mener nu man godt kan sætte \' om alle datatyper. Den er ligeglad. Vigtigt er det dog at de ikke mangler ved en String!
Avatar billede sp Nybegynder
16. november 2000 - 22:56 #7
og husk at det kan give problemer hvis en streng indeholder kun 1 \'-tegn (det dumme tegn)
Så skal man lave en replace
tekst=replace(tekst,\"\'\",\"\'\'\")
Avatar billede -mundi- Nybegynder
17. november 2000 - 21:57 #8
Lidt uden for emnet, men hvordan gør man hvis man vil udskifte et \" med \' ? Bruger man chr() eller hvad ?
Avatar billede ortrak Nybegynder
17. november 2000 - 22:25 #9
tekst =  replace(tekst, Chr(34), \"\'\")

Men hvad skal du bruge det til?

/ortrak
Avatar billede -mundi- Nybegynder
17. november 2000 - 23:50 #10
til at lave et automatisk fra html til response.write script.... Jeg hader at skulle sidde efter designerenpg lave hele lortet om til response.write og fjerne \" manuelt...

Det kan godt være der allerede er lavet et script ? Men nu er jeg også gået igang :-)
Avatar billede tue Nybegynder
18. november 2000 - 13:26 #11
stigc >> Man skal kun sætte \' omkring en string når den indeholder bogstaver!
        Hvis din string indholder en dato eller et tal, så skal der absolut ikke \' omkring!
Avatar billede stigc Nybegynder
18. november 2000 - 15:39 #12
Helt enig at en \' indikerer en string.

Men det giver ikke fejl ved at sætte \' rundt om tal!
Avatar billede -mundi- Nybegynder
18. november 2000 - 19:22 #13
Nu snakkede jeg om html kode :-.)
Avatar billede sp Nybegynder
18. november 2000 - 21:33 #14
Du skulle prøve at udskrive sql-strengen sådan:

sql= \"insert into T_Vote(id, Beskrivelse, Valg1, Valg2, Valg3, Valg4) values(\" & request(\"id\") & \",\'\" & request(\"beskrivelse\") & \"\',\'\" & request(\"v1\")& \"\',\'\" & request(\"v2\") & \"\',\'\" & request(\"v3\") & \"\',\'\" & \"\'\" & request(\"v4\") & \"\')\"

Response.write sql.
Så kan du se om variablerne bliver overført til strengen på korrekt vis, som de skal...

Søren
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