T T_Codez Medlem sedan juli 2001 458 inlägg Frågan 11 juli 2002 14:02 #1 Hej igen
Kan ni se vart felet är?
Errormessage:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/tt.asp, line 73
Kod:
dim rad, instream, FObj, rdb, items, sqlstr
Set FObj = Server.CreateObject("Scripting.FileSystemObject")
Set InStream = FObj.OpenTextFile (Server.Mappath ("textfil.txt"),1, False)
Set rdb = Server.CreateObject("ADODB.Connection")
rdb.open "int_DSN"
Do while not instream.AtEndOfStream
rad = instream.readLine
items = split(rad,";")
sqlstr = "insert into tblArtiklarLager" &\_
"(fltartikelnr, fltProdGrupp, fltRefNr, fltstgrade, fltthickness, fltwidth, " &\_
"fltlength, fltcountrycode) Values VALUES (" & items(0) &",'" & items(1) &"','" & items(2) &\_
"','"& items(3) &"'," & items(4) &"," & items(5) &"," & items(6) &",'"& items(7) &"')"
rdb.execute sqlstr,,128 (RAD 73)
loop
inStream.close
rdb.close
Och Databasens upplägg är:
Namn Datatyp
#fltartID
(autonr) används inte i insert to.
fltartikelnr
(number)
fltProdGrupp
(text)
fltRefNr
(text)
fltgrade
(text)
fltthickness
(number)
fltwidth
(number)
fltcountrycode
(number)
Tack för uppmärksamheten
mvh
/T
@nders Medlem sedan juni 2000 32 967 inlägg Skriv ut frågan med response.write så får vi se.
Jag gissar att det är ett eller flera värden som saknas i din values-parentes.
Red : bra där, jacob! Bra med många ögon! :)
Mvh,
T T_Codez Medlem sedan juli 2001 458 inlägg Pinsamt :r angående values
Det fick det att gå framåt till detta istället:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/tt.asp, line 73
Så där kommer nog din reflektion in @nders...
KAn det bero på att det finns null värden mellan några ;; i textfilen?
@nders Medlem sedan juni 2000 32 967 inlägg Too few parameters brukar man få när man stavat fel på ett tabell- eller fältnamn i frågan. Dubbelkolla all stavning och att alla fält finns i specificerad tabell.
Skriv också ut den färdiga SQL-frågan med response.write så har man mer att gå på när det krånglar.
Mvh,
T T_Codez Medlem sedan juli 2001 458 inlägg Hmm...
Namnen på tabell och fält är rättstavade. körde Copy/Paste en Xtra gång.
Sql-satsen fick ut följande:
insert into tblartiklarlager(fltartikelnr, fltProdGrupp, fltRefNr, fltsteelgrade, fltthickness, fltwidth, fltlength, fltcountrycode) VALUES (4227,'VHS','W500D','MULTIWOOD 500',25,2300,6700,'DE')
Kan inte direkt få fram något av det här heller.
Kan det bero på att det finns nullvärden mellan semikolona?
Tycker inte det borde ha någon inverkan då databasen tillåter nolllängd i fälten.
Alla uppslag är välkomna...
@nders Medlem sedan juni 2000 32 967 inlägg Nullvärden? Semikolon? Jag ser varken eller :q
Får du samma fel om du exekverar frågan i Access?
Dubbelkolla också att du arbetar mot rätt databas...
T T_Codez Medlem sedan juli 2001 458 inlägg Jaa... Jag var lite otydlig.
Jag tänkte att det var "nullvärden" i textfilen mellan semikolona.
Nej... Inga felmess. i db.
Jepp rätt db.
@nders Medlem sedan juni 2000 32 967 inlägg Textfilen har inget med det här att göra, väl? Din databas har inget att göra med den, utan märker bara av din SQL-fråga.
Din INSERT fungerar alltså som den ska om du ställer frågan direkt i Access?
Det är en fågel som luktar ruttna fårakläder då, kan man säga.
Det enda jag kan komma på då som kan vara problemet är att sökvägen du givit ditt connectionobjekt inte stämmer, utan att den pekar på en annan databas.
Är det bara lokalt du har problemen, eller är det när du laddat upp hela klabbet till webhotellet? Eller både och?
Mvh,
T T_Codez Medlem sedan juli 2001 458 inlägg
Är det bara lokalt du har problemen, eller är det när du laddat upp hela klabbet till webhotellet? Eller både och?
Svar: Både och
Kolla!!
Gick i db och upptäckte att den fått 830 rader inlagda.
Kollade då textfilen. Och mycket riktigt så var det ett fält med 19 tkn (12.9999999999999674). Som också givetvis befann sig på rad 831.
Så nu har jag gjort följande:
1. Ändrat det berörda fältet från "int" till "Long int" och decimal till "auto" (tidigare noll)
Testkörde
Resultat: samma medd. som tidigare.
2. lade in en "& Cint(items(4))" (kanske är fel syntax)
Testkörde
Resutat: same as ever
3. Kollat igenom hela textfilen efter fler överraskningar.
Resultat: Fann inga.
Så nu ar det tillbaka till Keep On Trying!? :OO
Fler förslag och kommentarer är välkommet. De ger alltid nya ideer och uppslag på ett eller annat vänster.
/T
T T_Codez Medlem sedan juli 2001 458 inlägg Visst ja...
Glömde säga att det är fortfarande vid samma rad den hoppar ur. (830).
@nders Medlem sedan juni 2000 32 967 inlägg SQL-frågan som tillhör rad 831 i textfilen, hur ser den ut nu, efter dina förändringar?
T T_Codez Medlem sedan juli 2001 458 inlägg HA! Där satt den
The bug is now terminated a torned to pieces §e
By: @nders, Jacob an myself
Last killing hit made by: @nders
as so many times before...
resume:
Det var en luring till i textfilen iaf. Vilket jag inte noterade förrän utskriften av sql:en
I första fältet med artikelnummer så förekommer det många nollor. Och av någon idiotisk anledning även bokstaven O.
så är're
Thankz Y'all :e
@nders Medlem sedan juni 2000 32 967 inlägg Och av någon idiotisk anledning även bokstaven O.... vilket innebär att det värdet tolkades som ett fältnamn, ett fält som inte finns, därav felmeddelandet.
Vad bra att det löste sig!
Mvh,