Hallo,
ich habe mehrere voneinander unabhängige, dh nicht verschachtelte SQL-Abfragen in einem ODBC-Command, zBsp:
SELECT * from Table1;
SELECT * from Table2;
SELECT * from Table3;
die dann also auch 3 separate Ergebnis-Tabellen zurückgeben.
Das funktioniert so anscheinend (wie bisher mit Pervasive und MSSQL) grundsätzlich auch mit PG, aber nur dann, wenn die SELECT-Abfragen sehr einfach sind. Bei einer komplexeren Abfrage, die UNIONs und JOINs enthält, funktionierte es aber (es war die 2. von 3 solchen SELECT-Abfragen) nicht mehr korrekt, sondern hier wurde zwar keine Fehlermeldung zurückgegeben, aber das JOIN-Ergebnis kommentarlos einfach nicht korrekt ausgeführt bzw. zurückgegeben.
Wenn man die SELECT-Abfrage einzeln (dh. ohne die beiden anderen) ausführt, dann funktioniert sie aber korrekt, sie kann also nicht an sich “falsch” sein.
Im vorliegenden Fall habe ich dann auch rausgefunden, dass wenn man die komplexe Abfrage als erste von 3 angibt und die beiden “einfachen” dahinter, dass es dann (zufällig?) auch funktionierte; aber das ist ja nur ein Workaround und funktioniert nicht, wenn ich mehrere komplexe Abfragen habe.
Trotz ausgiebiger Recherche konnte ich keine Info finden, dass solche mehreren Abfragen pro ODBC-Command bei PG nicht erlaubt wären; deshalb Frage:
Ist das dann ein Bug im ODBC-Treiber von PG oder in der PG-DB-Engine ?
Oder mache ich da irgendwas falsch oder fehlt irgendeine Einstellung im ODBC-Treiber oder der PG-DB ?
BTW:
Das Ganze läuft in einer .NET Applikation über den .NET ODBC Data Provider, der dann den ODBC-Treiber der jeweiligen Datenbank (Actian/Pervasive, MSSQL oder PostgreSQL) benutzt, so dass wir bezüglich der Datenbank flexibel sind.
Aber das kann nicht die Ursache sein, denn mit Actian/Pervasive SQL und MSSQL funktioniert dieselbe Abfrage ja problemlos.