Avatar billede sublimegirl Nybegynder
11. juli 2003 - 09:36 Der er 15 kommentarer og
1 løsning

Fejl når jeg sender data til db

Jeg forsøger at sende noget data til en accessdatabase, men får denne fejlmedd.:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.
/admin/product.asp, line 209

Linje 209 er denne: "db.execute(sql)" Her er den SQL sætning hvor fejlen tilsyneladende ligger, men jeg kan ikke se den:
_______________________________________________
sql="insert into products (name, name_uk, description, description_uk, catcode, catcode_uk"

if valid_sql(image)<>"" then
sql=sql & ",image"
SQLimage=",'" & valid_sql(image) & "'"
end if

if valid_sql(notes)<>"" then
sql=sql & ",notes"
SQLnotes=",'" & valid_sql(notes) & "'"
end if

sql=sql & ") values ('" & valid_sql(name) & "','" & valid_sql(name_uk) & "','" & valid_sql(description) & "'," & valid_sql(description_uk) & valid_sql(catcode) & valid_sql(catcode_uk) & SQLimage & SQLnotes & ")"

db.execute(sql)

_______________________________________________
Det der bliver sendt, vises længere nede i fejlmedd.:
POST Data:
name=321&name_uk=321&description=321&description_uk=321&catcode=16&notes=321&Save.x=36&Save.y=16
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 09:40 #1
Ja, du indsætter flere værdier, end du har angivet i listen af navne.
Hvis du if-er navnene væk, skal du også if-e værdierne væk.
Avatar billede dk_akj Nybegynder
11. juli 2003 - 09:40 #2
Det er fordi du har betingelser på hvilke feltnavne der skal indsættes i.

I din "value clause" har du ingen betingelser.

//akj
Avatar billede erikjacobsen Ekspert
11. juli 2003 - 09:42 #3
Nåh, mon ikke det bare er lidt manglende kommaer :)
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 09:43 #4
hmm... 2 sekunder.
Avatar billede dk_akj Nybegynder
11. juli 2003 - 09:44 #5
prøv evt dette lille fif:
response.write sql
response.end

lige inden db.execute

Så kan du tydeligt se din sql

//akj
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 09:46 #6
Jeg får:
Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "321','16','','','".
/admin/product.asp, line 209

Når jeg kører:
sql=sql & ") values ('" & valid_sql(name) & "','" & valid_sql(name_uk) & "','" & valid_sql(description) & "'," & valid_sql(description_uk) & "','" & valid_sql(catcode) & "','" & valid_sql(catcode_uk) & "','" &SQLimage & "','" & SQLnotes & ")"

Tester lige med en Response.Write...
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 09:48 #7
response.write sql viser:
insert into products (name, name_uk, description, description_uk, catcode, catcode_uk,notes) values ('321','321','321',321','16','','',','321')
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 09:49 #8
øhh.... det må vidst betyde at der mangler værdier til catcode og catcode_uk...
Avatar billede dk_akj Nybegynder
11. juli 2003 - 09:52 #9
Du har 7 feltnavne og 9 values.


Der er også noget galt mellem sidste og næstsidste , (komma)

//akj
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 10:10 #10
Nu får jeg:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "321','16','".
/admin/product.asp, line 205

og response.write viser:
insert into products (name, name_uk, description, description_uk, catcode,notes) values ('321','321','21',321','16',' ,'321')

koden:
sql="insert into products (name, name_uk, description, description_uk, catcode"


if valid_sql(notes)<>"" then
sql=sql & ",notes"
SQLnotes=" ,'" & valid_sql(notes) & "'"
end if

sql=sql & ") values ('" & valid_sql(name) & "','" & valid_sql(name_uk) & "','" & valid_sql(description) & "'," & valid_sql(description_uk) & "','" & valid_sql(catcode) & "','" & SQLnotes & ")"
Avatar billede dk_akj Nybegynder
11. juli 2003 - 10:15 #11
Hvor kommer det fra --> ,' ,

//akj
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 10:19 #12
Aner det ikke... leder.
Avatar billede hossein Nybegynder
11. juli 2003 - 11:00 #13
prøv at insætte felter en efter en. også kan du se nemmer hvor det går galt.
Avatar billede dk_akj Nybegynder
11. juli 2003 - 11:04 #14
ret:

& "','" & valid_sql(catcode) & "','" & SQLnotes & ")"

til
& "','" & valid_sql(catcode) & "'" & SQLnotes & ")"

//akj
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 11:19 #15
Tak for hjælpen. Nu virker det.
Avatar billede sublimegirl Nybegynder
11. juli 2003 - 11:20 #16
det blev sådan her:

sql="insert into products (name, name_uk, description, description_uk, catcode"
sql=sql & ") values ('" & valid_sql(name) & "','" & valid_sql(name_uk) & "','" & valid_sql(description) & "','" & valid_sql(description_uk) & "','" & valid_sql(catcode) & "')"
db.execute(sql)
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