Avatar billede cort Nybegynder
25. juli 2001 - 15:41 Der er 11 kommentarer og
1 løsning

INSERT

Er der nogen der kan forklare mig , hvorfor jeg får denne fejl:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/moduler/referencer/referencer.asp, line 72

Når jeg gør sådan her:

SQL = \"INSERT INTO \" & dbTable & \" (Title,Text,Link,LinkText) VALUES(\"
    SQL = SQL & \"\'\" & Replace(Request(\"txtTitle\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtText\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtLink\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtLinktext\"),\"\'\",\"\'\'\") & \"\'\"
    SQL = SQL & \")\"
    response.write sql
    \'response.end
    Set Add = Conn.Execute(SQL)
Avatar billede cort Nybegynder
25. juli 2001 - 15:42 #1
Jeg mener sådan her:

SQL = \"INSERT INTO referencer (Title,Text,Link,LinkText) VALUES(\"
    SQL = SQL & \"\'\" & Replace(Request(\"txtTitle\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtText\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtLink\"),\"\'\",\"\'\'\") & \"\', \"
    SQL = SQL & \"\'\" & Replace(Request(\"txtLinktext\"),\"\'\",\"\'\'\") & \"\'\"
    SQL = SQL & \")\"
    response.write sql
    \'response.end
    Set Add = Conn.Execute(SQL)
Avatar billede cort Nybegynder
25. juli 2001 - 15:43 #2
Det burde fandme virke
Avatar billede sone Nybegynder
25. juli 2001 - 15:46 #3
Vis os hvad response.write sql udskriver
Avatar billede jette Nybegynder
25. juli 2001 - 15:50 #4
Jeg ville ikke skrive (Title,Text,Link,LinkText) - ind efter tabelnavnet.

Altså
Insert into tabelnavn values()

SQL = \"INSERT INTO referencer (Title,Text,Link,LinkText) VALUES(\"
    ....\")
Avatar billede p_johansen Nybegynder
25. juli 2001 - 15:51 #5
SQL = \"insert into referencer (Title,Text,Link,LinkText) \" _
    & \"values (\" _
    & \"\'\" & Replace(Request(\"txtTitle\"),\"\'\",\"\'\'\") & \"\', \" _
    & \"\'\" & Replace(Request(\"txtText\"),\"\'\",\"\'\'\") & \"\', \" _
    & \"\'\" & Replace(Request(\"txtLink\"),\"\'\",\"\'\'\") & \"\', \" _
    & \"\'\" & Request.Form(\"T4\") & \"\', \" _

    & \"\'\" & Replace(Request(\"txtLinktext\"),\"\'\",\"\'\'\") & \"\')\"
Avatar billede p_johansen Nybegynder
25. juli 2001 - 15:54 #6
Ups! - fjern linien med T4 ;-)
Avatar billede jette Nybegynder
25. juli 2001 - 16:04 #7
Problemet består nok snarere i at Replace(Request(\"txtTitle\"),\"\'\",\"\'\'\")  indeholder en \' i teksten - d.v.s. dit SQL-statement kan komme til at se sådan ud:

insert into referencer values (\'\'\'title\',\'tekst\'\'\',\'\',\'\') - og det vil give syntaksfejl
Avatar billede sone Nybegynder
25. juli 2001 - 16:05 #8
Det er jo netop derfor han bruger Replace!
Avatar billede jette Nybegynder
25. juli 2001 - 16:13 #9
Replace fjerner da ikke problemet !?! Skulle SQL\'en blive accepteret hvis der er 2 \'\' efter hinanden istedet for 1 ? - og hvad sker der hvis der kommer 3 \'\'\' efter hinanden - som jeg har prøvet at beskrive i mit eksempel ?

Cort har du prøvet at gennemføre sådan en insert i ren access ?
Avatar billede p_johansen Nybegynder
25. juli 2001 - 16:18 #10
Prøv med:

Title = Replace(Request(\"txtTitle\"),\"\'\",\"\'\'\") 

Sql =....
& \"values (\" _
    & Title & \"\', \" _
osv
Avatar billede jette Nybegynder
25. juli 2001 - 16:25 #11
Jeg mener ikke at der er ASP-delen, der er problemet.
Replace virker sikkert fint - men Access kan ikke håndtere udtrykket, hvis der er en \' i - hverken med eller uden replace.
Avatar billede cort Nybegynder
25. juli 2001 - 18:31 #12
Jeg har fundet fejlen det er \"text\" der er et reserveret ord.
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