Rückgabewert von SQL-Statement

Hallo!!

Wie muss der Aufruf (aus C++ / MFC) einer Procedure lauten, um einen Rückgabewert zu erhalten.

Beispiel: (CRecordset-Klasse)

Ich will ein SQL - Statement ausführen …

Mein Aufruf ohne Rückgabewert lautet:
m_pCTest->m_pDatabase->DoExecuteSQL(„Test“);

Rückgabewert meiner Procedure ‚Test‘ ist ein timestamp.
Wie lautet der Aufruf mit Rückgabewert?

Kann mir jemand helfen?

Gruß
Markus

Hallo Markus!

Ich weiß nicht, ob ich dich richtig verstanden habe. Jedoch glaube ich, dass „test“ eine SELECT-Anweisung sein soll. In diesem Fall schreibst du einfach:

m_pCTest->Open (AFX_DB_USE_DEFAULT_TYPE, „test“);

Die ExecuteSQL Anweisung verwendet man z.B. für UPDATE, DELETE oder INSERT Aufrufe. Diese geben jedoch auch keine Datensätze zurück, jedoch wirft diese eine CDBException.

KoRn!

Hallo nochmal,

leider hat man mich nicht richtig verstanden.

‚Test‘ ist eine Procedure bzw. Funktion mit einem Timestamp als Rückgabewert. In dieser Funktion laufen einige Prüfungen ab, abhängig von diesen Prüfungen wid eine Datum-Variable (timestamp) als Return Wert zurückgegeben.

Nun weiß’ ich nicht, wie ich diese ‚Test‘-Funktion aufrufen muss, um diesen Returnwert zu erhalten.

(siehe 1. Mail)

So könnte (vereinfacht) diese Funktion ‚Test‘ aussehen:

CREATE FUNCTION „dba“.„Test“ ( /* parameters,… */ )
RETURNS timestamp
BEGIN
DECLARE Datum timestamp;
RETURN (Datum);
END

Gruß
Markus