PDA

View Full Version : Error bei INSERT INTO-Statement



duser
29-05-07, 13:58
Hallo, ich versuche aus einer Delphi-Anwendung ein INSERT INTO-Statement auszulösen. Aber es wird immer folgende Exception ausgelöst: "EOleException mit der Meldung SQL0104: Token .... ungültig..." Ein ungültiger Token kann aber nicht die Ursache sein, da nach testen des kreierten SQL-Statements in der AS/400 alles wunderbar funktioniert. Ich hab dann mal ein bißchen gegoogelt und rausgefunden, dass es eventuell etwas damit zu hat, das ich via linked Server auf die AS/400 zugreife und damit keine Manipulation der DB2 möglich ist. Hier mal mein ConnectionString: "Provider=IBMDA400.DataSource.1;Password=geheim;Per sist Security Info=True;User ID=user;Data Source=123.45.6.7" Die Verbindung zur AS/400 funktioniert auch noch, nur eben die Manipulation nicht. Bei dem Aufruf des SQL-Statements wird die Exception ausgelöst.

Die zweite Möglichkeit, die ich ausprobiert habe ist die direkte m.H. System-DSN auf die AS/400 zuzugreifen, aber auch das funktioniert nicht. Die Exception wird schon beim Connection-Versuch ausgelöst: "EOleException mit der Meldung Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang...." Der dazugehörige ConnectionString lautet: "Driver={Client Access ODBC Driver (32-bit)};SYSTEM=myAS400;UserID=user;PASSWORD=geheim;"

Ich hoffe es hat jemand einen Rat, wie ich ein Insert Into-Statement auslösen kann. Achja, die beste Lösung wäre, wenn ich eine Connection+Manipulation egal von welchem Rechner starten kann - sprich keine DSN einrichten muss (ausser es geht nicht anders).

Gruß duser

PS: Sorry, wenn das Thema hier nicht 100%ig reinpasst.

Fuerchau
29-05-07, 15:39
Dann poste doch mal deinen Insert-SQL.
Irgendwo muss da doch ein Syntaxfehler vorliegen.
Und wenn es nur die Trennung von LIB/TABLE anstelle von LIB.TABLE ist.

AS/400: LIB/TABLE
ODBC: LIB.TABLE

Fuerchau
29-05-07, 15:41
Um eine Verbindung ohne DSN zu verwenden, siehe hier:

Connection string keywords (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzaik/connectkeywords.htm)

duser
30-05-07, 11:53
Danke Dir Fuerchau, aber es war (wie meistens) total simpel. :eek: Ich sag nur "Leerzeichen" *grrr*

Die Token-Exception kam, weil nach!!! dem Komma (bei der Aufzählung der Werte im SQL-Statement was inserted soll) zwingend!!! ein Leerzeichen muss. Und natürlich steht das nirgends. Testet man das Insert-Statement nämlich auf dem SQL-Client, dann muss dieses Leerzeichen nicht. Aber Delphi möchte es gern.

Also alles in Ordnung und es funzt jetzt alles.