21. november 2015 - 02:23
Der er
7 kommentarer og 1 løsning
SQL INPUT med parameters
Hvorfor virker dette ikke? Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwSites\sql.uldbjerg.dk\DB\uldbjerg.mdb" Set Cmd = Server.CreateObject("ADODB.Command") sql = "INSERT INTO Adresse (Adresse, PostNr, By) VALUES (?,?,?)" Cmd.Parameters.Append(Cmd.CreateParameter("@Adresse", 200, 1, 50, Request.Querystring("adr"))) Cmd.Parameters.Append(Cmd.CreateParameter("@PostNr", 3, 1, 50, Request.Querystring("postnr"))) Cmd.Parameters.Append(Cmd.CreateParameter("@By", 200, 1, 50, Request.Querystring("by"))) conn.Execute sql,recaffected conn.close JEg får denne fejl: Microsoft JET Database Engine error '80040e14' Syntax error in INSERT INTO statement. /insert.asp, line 23 Line 23 = conn.Execute sql,recaffected
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
21. november 2015 - 02:36
#1
BY er et reserveret ord i SQL. Proev: sql = "INSERT INTO Adresse (Adresse, PostNr, [By]) VALUES (?,?,?)"
21. november 2015 - 02:36
#2
eller bedre omdoeb det felt!!
21. november 2015 - 10:42
#3
Jeg har ændret feltet By til City, men uden held, dog kan jeg få dette til at virke: sAdresse = "Adresse" sPostNr = "1234" sCity = "By navn" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwSites\sql.uldbjerg.dk\DB\uldbjerg.mdb" Set Cmd = Server.CreateObject("ADODB.Command") sql = "INSERT INTO Adresse (Adresse, PostNr, City) VALUES ('" & sAdresse & "', '" & sPostNr & "', '" & sCity & "')" conn.Execute sql conn.close Men dette: sAdresse = "Adresse" sPostNr = "1234" sCity = "By navn" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwSites\sql.uldbjerg.dk\DB\uldbjerg.mdb" Set Cmd = Server.CreateObject("ADODB.Command") sql = "INSERT INTO Adresse (Adresse, PostNr, City) VALUES (?,?,?)" Cmd.Parameters.Append(Cmd.CreateParameter("@Adresse", 200, 1, 50, sAdresse)) Cmd.Parameters.Append(Cmd.CreateParameter("@PostNr", 3, 1, 50, sPostNr)) Cmd.Parameters.Append(Cmd.CreateParameter("@City", 200, 1, 50, sCity)) conn.Execute sql conn.close giver fejlen: No value given for one or more required parameters. /insert.asp, line 26 Line 26 = conn.Execute sql
21. november 2015 - 15:01
#4
conn.Execute sql skal vel vaere: Cmd.CommandText = sql Cmd.Execute
21. november 2015 - 16:42
#5
Takker, men det ser ikke ud til at virker helt som det skal, får nu denne fejl: The connection cannot be used to perform this operation. It is either closed or invalid in this context. line = Cmd.Execute conn.Execute sql er udskiftet med: Cmd.CommandText = sql Cmd.Execute Så de hele nu ser sådan ud: <% sAdresse = "Adresse" sPostNr = "1234" sCity = "By navn" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwSites\DB\database.mdb" Set Cmd = Server.CreateObject("ADODB.Command") sql = "INSERT INTO Adresse (Adresse, PostNr, City) VALUES (?,?,?)" Cmd.Parameters.Append(Cmd.CreateParameter("@Adresse", 200, 1, 50, sAdresse)) Cmd.Parameters.Append(Cmd.CreateParameter("@PostNr", 3, 1, 50, sPostNr)) Cmd.Parameters.Append(Cmd.CreateParameter("@City", 200, 1, 50, sCity)) Cmd.CommandText = sql Cmd.Execute conn.close %>
21. november 2015 - 16:56
#6
cmd.ActiveConnection = conn Cmd.CommandText = sql Cmd.Execute
21. november 2015 - 17:18
#7
Perfekt takker, lav et svar og point er dine. o:)
21. november 2015 - 17:22
#8
svar
Kurser inden for grundlæggende programmering