webForumDet fria alternativet

Syntax fel i INSERT TO... Kan ni se?

ASP

13 svar · 293 visningar · startad av T_Codez

Medlem sedan juli 2001458 inlägg
Frågan#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

Medlem sedan dec. 2000503 inlägg
#2

tabort ett VALUES

Medlem sedan juni 200032 967 inlägg
#3

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,

Medlem sedan juli 2001458 inlägg
#4

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?

Medlem sedan juni 200032 967 inlägg
#5

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,

Medlem sedan juli 2001458 inlägg
#6

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...

Medlem sedan juni 200032 967 inlägg
#7

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...

Medlem sedan juli 2001458 inlägg
#8

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.

Medlem sedan juni 200032 967 inlägg
#9

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,

Medlem sedan juli 2001458 inlägg
#10

Ä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

Medlem sedan juli 2001458 inlägg
#11

Visst ja...

Glömde säga att det är fortfarande vid samma rad den hoppar ur. (830).

Medlem sedan juni 200032 967 inlägg
#12

SQL-frågan som tillhör rad 831 i textfilen, hur ser den ut nu, efter dina förändringar?

Medlem sedan juli 2001458 inlägg
#13

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

Medlem sedan juni 200032 967 inlägg
#14

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,

255 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)