MS-SQL-Stored Procedure: RecordSet löscht/verdeckt Output-Parameter

Galaxydriver

Grünschnabel
Hallo,

ich rufe über ADO eine gespeicherte Prozedur auf und eigentlich funktioniert das auch ganz gut, so lange ich das zurückgegebene DataSet nicht weiter behandle.

Mit
Code:
m_Cmd->Execute(NULL,NULL,ADODB::adCmdStoredProc);
führe ich die gespeicherte Prozedur aus - ohne das zurückgegebene DataSet abzufangen.

In vVariable wird der dann der Output-Wert aus der Prozedur gespeichert, so wie es sein soll:
Code:
VARIANT vVariable;
vVariable.vt = VT_BSTR; 
vVariable = m_Cmd->Parameters->GetItem("@OutputParameterName")->Value;

Da ich aber auch die zurückgelieferten Datensätze bearbeiten muss, fülle ich diese Datensätze in ein ADODB::Recordset.
Dazu hänge ich vor den obigen Execute-Befehl den Namen meines ADODB::Recordset's (meinRecordSet):
Code:
 meinRecordSet = m_Cmd->Execute(NULL,NULL,ADODB::adCmdStoredProc);

Die Datensätze sind jetzt auch in meinRecordSet gespeichert und ich kann sie problemlos abarbeiten.
Wenn ich allerdings jetzt (nach dem geänderten Execute-Befehl) auf die vVariable zugreife, ist der Wert "Empty"?

An der gespeicherten Prozedur kann es nicht liegen, da lt. SQL-Profiler-Tool, die Output-Werte vom SQL-Server zurückgegeben wurden.
Ich vermute, dass die Output-Parameter-Werte irgendwo mit in den RecordSet "gefüllt" wurden und jetzt im Nirvana gelandet sind...

Weiss jemand von Euch, wie ich an die Output-Werte komme?

cu
Chris
 
Zurück