Seite 2 von 2

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: So, 10. Mai 2020 19:28
von Manfred
und wie bekomme ich ein Select Ergebnis in ein Dataobject rein? Bei mir wird es immer eine Workarea

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: So, 10. Mai 2020 19:44
von Klaus Schuster
siehe die beiden Zeilen in meiner früheren Post:

Code: Alles auswählen

aObjects := Array( (cAlias)->(LastRec()))
(cAlias)->( dbEval({|| aObjects[ ++ nElement ] := _scatterObject() })

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: So, 10. Mai 2020 20:03
von Manfred
ich meine SqlStatement:query() Da kann man lt. Anleitung angeben, wo das landen soll. Wird aber immer nur eine Workarea

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: So, 10. Mai 2020 22:48
von Werner_Bayern
Servus Manfred,

das funktioniert immer noch nicht (siehe PDR). Du musst es so machen, wie Klaus Dir geschrieben hat.

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: Mo, 11. Mai 2020 6:52
von Manfred
Dank Werner,
dann hatte ich da falsch gedacht.

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: Mo, 11. Mai 2020 7:48
von Klaus Schuster
Moin Manfred,

es gibt neben dem nicht funktionierendem Parameter noch ein paar andere Stolpersteine. Der Parameter [<@xResult>] hat bei meinen Versuchen nie einen Wert enthalten. Die Ausgabe von z.B. SELECT 1*2 erfolgt ebenfalls in der Ausgabedatei. Hier hätte ich das Ergebnis (2) in xResult (wie in der Doku beschrieben) erwartet.

<@xResult>
A variable passed by reference of any type which recieves the result value as specified via the <nResultType> parameter.


Mir ist bis heute folgender Satz in der Doku schleierhaft

Executes the given SQL statement which may be an INSERT UPDATE or DELETE statement or an SQL statement that returns nothing such as an SQL DDL statement.

Selbst die Übersetzung mit DeepL kann nicht klarer sein:

Führt die angegebene SQL-Anweisung aus, bei der es sich um eine INSERT UPDATE- oder DELETE-Anweisung oder um eine SQL-Anweisung handeln kann, die nichts wie eine SQL DDL-Anweisung zurückgibt.

Dass ein Kommata zwischen 'INSERT UPDATE' fehlt ist selbsterklärend; zumindest kenn ich 'INSERT UPDATE' nicht. Da INSERT, UPDATE und DELETE Elemente der Data Manipulation Language (DML) sind, verstehe ich den Verweis auf die DDL (Date Definition Language) nicht: Soll

...die nichts wie eine SQL DDL-Anweisung zurückgibt

bedeuten, dass es keinen Rückgabewert (analog einer DDL-Anweisung) gibt. Oder, wird eine SQL DDL-Anweisung zurückgegeben, was keinen Sinn ergibt. Hier ist die Dokumentation für einen Anfänger (wie mich) mehr irreführend als hilfreich.

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: Mo, 11. Mai 2020 8:01
von AUGE_OHR
hi,
Klaus Schuster hat geschrieben: Mo, 11. Mai 2020 7:48 SQL DDL statement.
siehe dir mal PDR 5448 an.

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: Mo, 11. Mai 2020 8:29
von Klaus Schuster
Danke Dir Jimmy, aber was meinst Du bedeutet das für mich? Ich arbeite nicht mit ISAM und setzte DbInfo() nur bei dBase-Tabellen ein.

Re: PostGres und Xbase++2.0 [ERLEDIGT]

Verfasst: Mo, 11. Mai 2020 21:42
von AUGE_OHR
hi,
Using DbInfo() to map a DDL to a certain DML (an Xbase++
language-level) data type may fail under some circumstances.

For instance, a problem has been reported using DbInfo() to
map a numeric type of length 1 to the DML type "L" (logical).
The back-end used was Oracle server 9.2.

Example:
// Assume column #1 to be defined as a numeric column
// of length 1
DbInfo( ODBCDBO_ODBC_TO_XPP, 2, XPP_LOGICAL )

=> Subsequent access to the corresponding field causes
errors if the field contains a value other than NULL
ok, die PDR ist für ODBC aber erklärt was DDL ist.
es geht um Daten Typen die nicht oder falsch erkannt werden und zu Fehlern führen.

das sind nun die Sachen in der PgDBE wo nur Alaska weiss was im Code steht.
wenn man LibPQ.DLL native nutzt muss man sich selbst um die Daten-Typen kümmern ...