Avatar billede webberen Nybegynder
12. december 2001 - 17:41 Der er 14 kommentarer og
1 løsning

Hvad er der galt?

Hejza!

Jeg har neden under, et stykke script, som skulle oprette nogle værdier i en database fra en FORM. Men jeg synes ikke rigtigt at det virker optimalt! :(

----------------------------------------------------

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath(\"../db/database.mdb\")
Conn.Open DSN

strSQL = \"Insert into network (navn) values(\'\" & Request.Form(\"navn\") & \"\')\"
strSQL = \"Insert into network (k-person) values(\'\" & Request.Form(\"contactperson\") & \"\')\"
strSQL = \"Insert into network (tlf) values(\'\" & Request.Form(\"tlf\") & \"\')\"
strSQL = \"Insert into network (adresse) values(\'\" & Request.Form(\"adresse\") & \"\')\"
strSQL = \"Insert into network (URL) values(\'\" & Request.Form(\"URL\") & \"\')\"
strSQL = \"Insert into network (by) values(\'\" & Request.Form(\"by\") & \"\')\"
strSQL = \"Insert into network (dato) values(\'\" & date() & \"\')\"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede agony Nybegynder
12. december 2001 - 17:44 #1
strSQL = INSERT INTO network (navn,k-person, ovs....) VALUES (\"&request.form(\"navn\")&\", osv....)

Conn.Execute(strSQL)
Avatar billede agony Nybegynder
12. december 2001 - 17:45 #2
og der skal self. lige \"\" omkring hele sql stringen.
Avatar billede mrbarnes Nybegynder
12. december 2001 - 17:46 #3
strSQL = \"Insert into network (navn, k-person, tlf, adresse, URL, by, dato) values(\'\" & Request.Form(\"navn\") & \",\" & Request.Form(\"contactperson\") & Request.Form(\"tlf\") & \",\" & Request.Form(\"adresse\") & \",\" & Request.Form(\"URL\") & \",\" & Request.Form(\"by\") & \",\" & date() & \"\')\"
Avatar billede mrbarnes Nybegynder
12. december 2001 - 17:46 #4
Burde virker efter sammentrækket...
Avatar billede webberen Nybegynder
12. december 2001 - 17:52 #5
strSQL = \"Insert into network (navn, k-person, tlf, adresse, URL, by, dato) values(\'\" & Request.Form(\"navn\") & \",\" & Request.Form(\"contactperson\") & Request.Form(\"tlf\") & \",\" & Request.Form(\"adresse\") & \",\" & Request.Form(\"URL\") & \",\" & Request.Form(\"by\") & \",\" & date() & \"\')\"
---------------------------------------------
Satte jeg ind istedet for:
---------------------------------------------
strSQL = \"Insert into network (navn) values(\'\" & Request.Form(\"navn\") & \"\')\"
strSQL = \"Insert into network (k-person) values(\'\" & Request.Form(\"contactperson\") & \"\')\"
strSQL = \"Insert into network (tlf) values(\'\" & Request.Form(\"tlf\") & \"\')\"
strSQL = \"Insert into network (adresse) values(\'\" & Request.Form(\"adresse\") & \"\')\"
strSQL = \"Insert into network (URL) values(\'\" & Request.Form(\"URL\") & \"\')\"
strSQL = \"Insert into network (by) values(\'\" & Request.Form(\"by\") & \"\')\"
strSQL = \"Insert into network (dato) values(\'\" & date() & \"\')\"
-------------------------------------------
Men jeg får en fejl som lyder:

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

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.

/admin/test.asp, linje 57

- Og det er lige fra første gang man åbner siden
:( hjæælp!!!
Avatar billede webberen Nybegynder
12. december 2001 - 17:54 #6
Flere points - kan der komme på talefod!
Avatar billede mrbarnes Nybegynder
12. december 2001 - 17:55 #7
strSQL = \"Insert into network (navn, k-person, tlf, adresse, URL, by, dato) values(\" & Request.Form(\"navn\") & \",\" & Request.Form(\"contactperson\") & Request.Form(\"tlf\") & \",\" & Request.Form(\"adresse\") & \",\" & Request.Form(\"URL\") & \",\" & Request.Form(\"by\") & \",\" & date() & \")\"

prøv denne her...
Avatar billede keysersoze Ekspert
12. december 2001 - 17:56 #8
strSQL = \"Insert into network (navn, k-person, tlf, adresse, URL, by, dato) values(\'\" & Request.Form(\"navn\") & \"\',\'\" & Request.Form(\"contactperson\") & \"\',\'\" & Request.Form(\"tlf\") & \"\',\'\" & Request.Form(\"adresse\") & \"\',\'\" & Request.Form(\"URL\") & \"\',\'\" & Request.Form(\"by\") & \"\',\" & date() & \")\"

er dog lidt i tvivl om date...
Avatar billede mrbarnes Nybegynder
12. december 2001 - 17:57 #9
date burde være uden ()...
Avatar billede keysersoze Ekspert
12. december 2001 - 17:57 #10
og forudsat at alle er tekst eller notatfelter
Avatar billede nute Nybegynder
12. december 2001 - 18:13 #11
det er et par ting du er nødt til å huske på:

1) hvis en kolonne er av typen \'nummer\', så skal det ikke noe \'\' rundt verdien du prøver å sette inn:

INSERT INTO tabell (nummerKolonne) VALUES ( 10 )

2) hvis en kolonne er av typen \'tekst\', så *skal* det \'\' rundt verdien du prøver å sette inn:

INSERT INTO tabell (tekstKolonne) VALUES (\'tekst\')

3) hvis en kolonne er av typen \'dato\' ( i access) , så *skal* det ## rundt verdien du prøver å sette inn:

INSERT INTO tabell (datoKolonne) VALUES (#10-12-2001#)

4) mellomrom mellom kommandoer er viktig:

du kan ikke gjøre dette:

INSERT INTO tabell (tekstKolonne) VALUES(\'tekst\')

det skal være mellomrom mellom VALUES og (

5) det måten du har skrevet din opprinnelige SQL, så vil kun din siste setning eksekveres fordi du hele tiden overskriver innholdet av strSQL. *enten* skal du eksekvere (Conn.Execute) mellom hver linje, eller så skal du slå sammen hele operasjonen til *en* SQL som flere har antydet her inne...

/nute
Avatar billede webberen Nybegynder
29. december 2001 - 23:13 #12
.
Avatar billede agony Nybegynder
30. december 2001 - 11:29 #13
jeg forstår ikke helt den afvisning ???
Avatar billede bestasp Nybegynder
30. december 2001 - 11:31 #14
webberen, send mig databasen, samt siden form, så skal jeg nok gøre det for dig, men hurtigt !
Avatar billede keysersoze Ekspert
02. januar 2002 - 22:57 #15
hvad blev løsningen så???
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