[All]
Select-Suspend procedure behaves differently via InterSolv-ODBC
Abstract: Select-Suspend procedure behaves differently via InterSolv-ODBC
Problem:
With InterBase select procedures (used with suspend), the
InterSolv-ODBC driver behaves differently than expected.
Here is the result set(from employee.gdb) returned in WISQL:
----------------------------------------------------------
select * from get_emp_proj("8")
PROJ_ID
=======
VBASE
GUIDE
MKTPR
execute procedure get_emp_proj("8")
PROJ_ID
=======
VBASE
-------------------------------------------------------------
Here is the result returned via ODBC:
SQLExecDirect:
szSqlStr = "select * from get_emp_proj("8")", cbSqlStr = -3
Return: SQL_SUCCESS=0
Get Data All:
"PROJ_ID"
"VBASE"
"GUIDE"
"MKTPR"
3 rows fetched from 1 column.
SQLExecDirect:
szSqlStr = "execute procedure get_emp_proj("8")", cbSqlStr = -3
Return: SQL_SUCCESS=0
Get Data All:
"PROJ_ID"
"VBASE"
"GUIDE"
"MKTPR"
3 rows fetched from 1 column.
The misbehavior here is when execute procedure or
{call procxxx} is ran via InterSolv-ODBC, the suspend
seems is ignored.
Solution:
Workaround is to call the procedure using select rather
than execute procedure.