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 %>
Annonceindlæg fra SuperOffice
12. december 2001 - 17:44
#1
strSQL = INSERT INTO network (navn,k-person, ovs....) VALUES (\"&request.form(\"navn\")&\", osv....) Conn.Execute(strSQL)
12. december 2001 - 17:45
#2
og der skal self. lige \"\" omkring hele sql stringen.
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() & \"\')\"
12. december 2001 - 17:46
#4
Burde virker efter sammentrækket...
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!!!
12. december 2001 - 17:54
#6
Flere points - kan der komme på talefod!
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...
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...
12. december 2001 - 17:57
#9
date burde være uden ()...
12. december 2001 - 17:57
#10
og forudsat at alle er tekst eller notatfelter
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
29. december 2001 - 23:13
#12
.
30. december 2001 - 11:29
#13
jeg forstår ikke helt den afvisning ???
30. december 2001 - 11:31
#14
webberen, send mig databasen, samt siden form, så skal jeg nok gøre det for dig, men hurtigt !
02. januar 2002 - 22:57
#15
hvad blev løsningen så???
Kurser inden for grundlæggende programmering