Avatar billede shosho500 Nybegynder
11. september 2005 - 14:03 Der er 19 kommentarer og
1 løsning

INSERT INTO ved brug af Request.Form ?

Hvor bruger jeg request.form i min sql insert into streg?

Fx
INSERT INTO produkter (VareNummer) VALUES ('& Request.From("strVareNummer") &')

Eller hvordan lyder den ?
Avatar billede kalp Novice
11. september 2005 - 14:05 #1
er strVareNummer tal i databasen eller tekst? hvis det er tekst skal der "" rundt om
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:07 #2
strVareNummer er tal i databasen, men bliver jo indtastet i et tekst felt.. men er strengen rigtig nok ? for synes ikke jeg kan få det til at virke
Avatar billede kalp Novice
11. september 2005 - 14:09 #3
INSERT INTO produkter (VareNummer) VALUES ('& Request.Form("strVareNummer") &')
Avatar billede kalp Novice
11. september 2005 - 14:10 #4
Jeg rettede en stavefejl i din Request.. måske var det bare det
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:13 #5
Koden ser sådan her ud:

Set Connection = Server.Createobject("ADODB.Connection")
Dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\asp\produkter.mdb"
Sql = "INSERT INTO produkter (VareNummer, VareNavn, Vaegt, Pris, LagerAntal, Land) VALUES ('& Request.Form("VareNummer") &','& Request.Form("VareNavn") &','& Request.Form("Vaegt") &','& Request.Form("Pris") &','& Request.Form("LagerAntal") &','& Request.Form("Land") &'"
Connection.Open Dsn
Connection.Execute(Sql)
Connection.Close()
Set Connection = Nothing
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:14 #6
Får fejlen:

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet
/asp/insert.asp, line 12, column 108
Avatar billede kalp Novice
11. september 2005 - 14:16 #7
Sql = "INSERT INTO produkter (VareNummer, VareNavn, Vaegt, Pris, LagerAntal, Land) VALUES ('& Request.Form("VareNummer") &',"'& Request.Form("VareNavn") &'",'& Request.Form("Vaegt") &','& Request.Form("Pris") &','& Request.Form("LagerAntal") &',"'& Request.Form("Land") &'"

Der skal "" rundt om alt som er tekst i databasen
Avatar billede kalp Novice
11. september 2005 - 14:17 #8
Sql = "INSERT INTO produkter (VareNummer, VareNavn, Vaegt, Pris, LagerAntal, Land) VALUES ('& Request.Form("VareNummer") &','"& Request.Form("VareNavn") &"','& Request.Form("Vaegt") &','& Request.Form("Pris") &','& Request.Form("LagerAntal") &','"& Request.Form("Land") &"'"

satte dem lige forkert
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:18 #9
får den samme fejl
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:19 #10
slut på sætning var ventet
Avatar billede softspot Forsker
11. september 2005 - 14:22 #11
Hvis varenummer er et tal i databasen skal der ikke apostroffer omkring varenummeret i SQL-strengen (uagtet at det er et tekstfelt du indtaster data i på din form - du har jo ikke andre muligheder). Din SQL skal derfor se således ud:

Sql = "INSERT INTO produkter (VareNummer, VareNavn, Vaegt, Pris, LagerAntal, Land) VALUES (" & Request.Form("VareNummer") & ",'" & Request.Form("VareNavn") & "'," & Request.Form("Vaegt") & "," & Request.Form("Pris") & "," & Request.Form("LagerAntal") & ",'" & Request.Form("Land") & "')"


Jeg har taget kalp's kode og rettet lidt på rækkefølgen af apostroffer og anførselstegn rundt om i SQL-strengen, men ellers tror jeg kalp har ret i sin version.
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:25 #12
Så langt så godt, men nu skriver den at der er en syntaks fejl :(
Avatar billede softspot Forsker
11. september 2005 - 14:28 #13
Hvordan ser din kode ud og hvilken linie får du den fejl?
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:31 #14
<%
Dim Connection, Dsn, Sql

Set Connection = Server.Createobject("ADODB.Connection")
Dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\asp\produkter.mdb"
Sql = "INSERT INTO produkter (VareNummer, VareNavn, Vaegt, Pris, LagerAntal, Land) VALUES (" & Request.Form("VareNummer") & ",'" & Request.Form("VareNavn") & "'," & Request.Form("Vaegt") & "," & Request.Form("Pris") & "," & Request.Form("LagerAntal") & ",'" & Request.Form("Land") & "')"
Connection.Open Dsn
Connection.Execute(Sql) <--- den her linje der får fejlen
Connection.Close()
Set Connection = Nothing
%>
Avatar billede shosho500 Nybegynder
11. september 2005 - 14:31 #15
Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i INSERT INTO-sætningen.
/asp/insert.asp, line 14
Avatar billede softspot Forsker
11. september 2005 - 14:38 #16
Som nielle ville have sagt: "Prøv at skrive SQL-sætnignen ud, så er det meget nemmere at se hvad der gør galt..." - og det vil jeg hermed foreslå :)
Avatar billede softspot Forsker
11. september 2005 - 15:12 #17
Det er sikkert en eller anden talværdi som ikke er udfyldt. Det skal du checke på inden du begynder at indsætte det i databasen, for databasen accepterer ikke tomme værdier i talfelter (med mindre de i databasen er sat til at acceptere NULL-værdier).
Avatar billede shosho500 Nybegynder
11. september 2005 - 16:23 #18
Når jeg fx prøver bare det her af:

Sql = "INSERT INTO produkter (VareNavn) VALUES (' & Request.Form("VareNavn") & ')"

Så indsætter den under varenavn: & Request.Form("VareNavn") & og ikke den værdi, der kommer fra form feltet VareNavn
Avatar billede shosho500 Nybegynder
11. september 2005 - 16:44 #19
Lukker spm
Avatar billede softspot Forsker
11. september 2005 - 18:35 #20
Hvad fandt du så ud af (nu da du lukker så pludseligt)?
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