Подскажите пожалуйста, как можно осуществить следующее:
SACommand pCmd(pCon, "Select * from sys_objects");
pCmd.Execute();
int i=0;
while(pCmd.FetchNext())
{
printf("\nValue: %i", (int)pCmd.Field(i+1).asLong());
...
}
в случае, если "Select * from sys_objects" зашит уже в хранимую процедуру.
Вот так:
SACommand pCmd(pCon, "EXEC :1 = sp_get_objects",SA_CmdSQLStmt);
pCmd.Param(1).setParamType(SA_dtCursor);
pCmd.Param(1).setParamDirType(SA_ParamReturn);
pCmd.Execute();
не работает. Возможно, не правильно установлен тип возвращаемого значения. (Но другого подходящего я не нашла.
Все типы:
# SA_dtBool Sets parameter's value as bool data.
# SA_dtShort Sets parameter's value as short data.
# SA_dtLong Sets parameter's value as long data.
# SA_dtFloat Sets parameter's value as float data.
# SA_dtDouble Sets parameter's value as double data.
# SA_dtNumeric Data type is SANumeric (used internally).
# SA_dtDateTime Sets parameter's value as standard C++ datetime structure (struct tm).
# SA_dtString Sets parameter's value as string data (SAString).
# SA_dtLongBinary Sets parameter's value as long binary data (SAString).
# SA_dtLongChar Sets parameter's value as long character data (SAString).
# SA_dtBLob Sets parameter's value as BLob data (SAString).
# SA_dtCLob Sets parameter's value as CLob data (SAString).
# SA_dtCursor Sets parameter's value as Oracle REF CURSOR (SACommand).
# SA_dtSpecificToDBMS Sets parameter's value as server-specific data type value.