CatZMedlem sedan jan. 20022 341 inlägg Har följande kod:
strSQL = " INSERT INTO tblCustomers(custFirst, custLast, custCompany, custEmail, " _
& " custAdr1, custAdr2, custZip, custCity, custState, countryID) " _
& " VALUES( " _
& " '" & strFirstName & "', " _
& " '" & strLastName & "', " _
& " '" & strCompany & "', " _
& " '" & strEmail & "', " _
& " '" & strAdress1 & "', " _
& " '" & strAdress2 & "', " _
& " " & intZip & ", " _
& " '" & strSuburb & "', " _
& " '" & strState & "', " _
& " " & intCountryID & ") "
objConn.Execute strSQL,,128
Set objRS = objConn.Execute("SELECT @@IDENTITY")
intCustomerID = objRS(0)
strSQL = " INSERT INTO tblOrders " _
& "(orderDate, custID) " _
& "VALUES ( " _
& " #" & now() & "#, " _
& " " & intCustomerID & ") " _
& " SELECT @@IDENTITY"
objConn.Execute strSQL,,128
intOrderID = objRS(0)
strSQL = " INSERT INTO tblOrderDetails " _
& " (orderID, licenseID) " _
& " VALUES (" & intOrderID & ", " & intLicenseID & ") "
objConn.Execute strSQL,,128
Ger följande fel...
Microsoft OLE DB Provider for SQL Server error '80040e14'
The name "#29" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.
/purchase.asp, line 236
Rad 236 är den sista objConn.Execute strSQL,,128 Jag fattar ingenting. Någon som har en aning?
CatZMedlem sedan jan. 20022 341 inlägg Såhär ser den frågan ut när jag skriver ut den.
Såhär ser det ut då
INSERT INTO tblCustomers(custFirst, custLast, custCompany, custEmail, custAdr1, custAdr2, custZip, custCity, custState, countryID) VALUES( 'Egon', 'Henriksson', 'Ljungsåsa HMB', 'mejlgard-forum@yahoo.se', 'Köpmannagatan 25 A', '', 36030, 'Lammhult', 'Småland', 1)
INSERT INTO tblOrders(orderDate, custID) VALUES (29/05/2006 1:44:28 PM, 24)
Microsoft OLE DB Provider for SQL Server error '80040e14'
Incorrect syntax near '1'.
/purchase.asp, line 237
Jag fattar inte varför det inte görs någon insert i tblOrders. Det ser ju helt korrekt ut!! Raden som påstås vara fel är ju den raden som exekverar insert into tblOrders
Som @nders skriver så ska du ha apostrofer runt datum så att det blir:
INSERT INTO tblOrders(orderDate, custID) VALUES ('29/05/2006 1:44:28 PM', 24)
:)
CatZMedlem sedan jan. 20022 341 inlägg Då blir det genast felmeddelandet
Microsoft OLE DB Provider for SQL Server error '80040e07'
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
/purchase.asp, line 235
Hmm, jag vet faktiskt inte riktigt vad det betyder!
Dock, om du bara ska inserta aktuellt datum så är det onödigt att hämta datumet via vb-script, låt sqlservern sköta det istället:
INSERT INTO tblOrders(orderDate, custID) VALUES (getDate(), 24)
CatZMedlem sedan jan. 20022 341 inlägg getDate() Fungerar otroligt mycket bättre, jag var helt korkad när jag ville sätta in now() direkt i databasen. Testade att ange now() i en variabel innan själva insättningen och då fungerar det kanon.
Har precis gått över till SQL server 2005 och ska så småningom använda mig av stored procedures men jag tänkte lära mig skillnaderna först :)
Tack för hjälpen dogge! :bire