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
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:
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):
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
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);
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