cavallino
10-09-10, 11:38
Hallo!
Seit Jahren frage ich verschiedenste Datenbanken von Excel mit ADO ab. Die SQL-Statements reichen von einfachen Abfragen bis zu komplexeren SQL-Prozeduren.
Nun habe ich bei solchen Abfragen zur AS/400 das Problem, dass der Separator ";" nicht funktioniert. Dh. mein SQL Statement ist z. B. so in der Art:
drop view xxx ;
create view ..... usw.
oder
select * from a; select * from b
selbst
select * from a;
funktioniert nicht. (ohne ; funktioniert es! Ich kann aber nicht mehrere Befehle hintereinander ausführen.)
Hier muss ein grundlegendes Problem vorliegen. Mein System: Win7 64bit, Excel 2007 (32bit), AS400: V5R4M0. Unten stehen die beiden Connection Strings und Fehlermeldungen.
lg
arno
Connection string:
Provider=IBMDA400.DataSource.1;Persist Security Info=False;User ID=ichselbst;Data Source=meinhobel;Protection Level=None;Initial Catalog=S1234567;Transport Product=Client Access;SSL=DEFAULT;Force Translate=65535;Default Collection=ichselbst;Convert Date Time To Char=TRUE;Catalog Library List="";Cursor Sensitivity=3;Use SQL Packages=False;SQL Package Library Name="";SQL Package Name="";Add statements to SQL package=True;Unusable SQL Package Action=1;Block Fetch=True;Data Compression=True;Sort Sequence=0;Sort Table="";Sort Language ID="";Query Options File Library="";Trace=0;Hex Parser Option=0;Maximum Decimal Precision=31;Maximum Decimal Scale=31;Minimum Divide Scale=0;Library List="";Naming Convention=0;Query Optimize Goal=0;Query Storage Limit=-1;Handle Numeric Data Errors=1;Keep Trailing Blanks=False;Application Name=EXCEL.EXE;Decfloat Rounding Mode=0;Decfloat Error Option=0;Client User ID="";Client WorkStation Name="";Client Program ID="";Client Accounting="";Block Size=0;
Die Fehlermeldung lautet:
"Error -2147467259 SQL0104: Token ; ungültig. Gültige Token: <ENDE DER ANWEISUNG>.
Ursache . . . . : Bei Token ; wurde ein Syntaxfehler entdeckt. Token ; ist kein gültiges Token. <ENDE DER ANWEISUNG> ist eine Teilliste gültiger Token. Diese Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu dieser Stelle scheint die Syntax gültig zu sein. Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen: - SQL-Anweisung im Bereich des Token ; überprüfen. Anweisung korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der Klauseln begründet sein. - Ist das fehlerhafte Token <ANWEISUNGSENDE>, die Anweisung korrigieren, da sie mit einer ungültigen Klausel endet. (Source: IBMDA400 Command) (SQL State: 42601) (NativeError: -104)"
ODBC Connectionstring:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=MeinsystemDSN_32;
ODBC Fehler:
Error -2147217887 Der ODBC-Treiber unterstützt die angeforderten Eigenschaften nicht. (Source: Microsoft OLE DB Provider for ODBC Drivers) (SQL State: ) (NativeError: 0)
Seit Jahren frage ich verschiedenste Datenbanken von Excel mit ADO ab. Die SQL-Statements reichen von einfachen Abfragen bis zu komplexeren SQL-Prozeduren.
Nun habe ich bei solchen Abfragen zur AS/400 das Problem, dass der Separator ";" nicht funktioniert. Dh. mein SQL Statement ist z. B. so in der Art:
drop view xxx ;
create view ..... usw.
oder
select * from a; select * from b
selbst
select * from a;
funktioniert nicht. (ohne ; funktioniert es! Ich kann aber nicht mehrere Befehle hintereinander ausführen.)
Hier muss ein grundlegendes Problem vorliegen. Mein System: Win7 64bit, Excel 2007 (32bit), AS400: V5R4M0. Unten stehen die beiden Connection Strings und Fehlermeldungen.
lg
arno
Connection string:
Provider=IBMDA400.DataSource.1;Persist Security Info=False;User ID=ichselbst;Data Source=meinhobel;Protection Level=None;Initial Catalog=S1234567;Transport Product=Client Access;SSL=DEFAULT;Force Translate=65535;Default Collection=ichselbst;Convert Date Time To Char=TRUE;Catalog Library List="";Cursor Sensitivity=3;Use SQL Packages=False;SQL Package Library Name="";SQL Package Name="";Add statements to SQL package=True;Unusable SQL Package Action=1;Block Fetch=True;Data Compression=True;Sort Sequence=0;Sort Table="";Sort Language ID="";Query Options File Library="";Trace=0;Hex Parser Option=0;Maximum Decimal Precision=31;Maximum Decimal Scale=31;Minimum Divide Scale=0;Library List="";Naming Convention=0;Query Optimize Goal=0;Query Storage Limit=-1;Handle Numeric Data Errors=1;Keep Trailing Blanks=False;Application Name=EXCEL.EXE;Decfloat Rounding Mode=0;Decfloat Error Option=0;Client User ID="";Client WorkStation Name="";Client Program ID="";Client Accounting="";Block Size=0;
Die Fehlermeldung lautet:
"Error -2147467259 SQL0104: Token ; ungültig. Gültige Token: <ENDE DER ANWEISUNG>.
Ursache . . . . : Bei Token ; wurde ein Syntaxfehler entdeckt. Token ; ist kein gültiges Token. <ENDE DER ANWEISUNG> ist eine Teilliste gültiger Token. Diese Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu dieser Stelle scheint die Syntax gültig zu sein. Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen: - SQL-Anweisung im Bereich des Token ; überprüfen. Anweisung korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der Klauseln begründet sein. - Ist das fehlerhafte Token <ANWEISUNGSENDE>, die Anweisung korrigieren, da sie mit einer ungültigen Klausel endet. (Source: IBMDA400 Command) (SQL State: 42601) (NativeError: -104)"
ODBC Connectionstring:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=MeinsystemDSN_32;
ODBC Fehler:
Error -2147217887 Der ODBC-Treiber unterstützt die angeforderten Eigenschaften nicht. (Source: Microsoft OLE DB Provider for ODBC Drivers) (SQL State: ) (NativeError: 0)