Hey guys! We're working on a new version of our software (previously developed in vdf 16.1) and I'm facing some trouble regarding the utilization of stored procedures "out" returns. Our DB is IBM DB2, and the following structure work flawlessly on the 16.1 version of our software (and I can call it normally from db2cmd). So to give some context, the snippet of the stored procedure is the following:
Code:
CREATE or Replace PROCEDURE ACCESSCONTROL(IN psProgram Char(6), IN piUser INT, OUT rsModule Char(1), OUT rsAllow Char (1), OUT rsSearch Char(1), OUT rsInsert Char(1), OUT rsDelete Char(1), OUT rsUpdate Char(1))
LANGUAGE SQL
BEGIN ATOMIC
...
...
...
And the code that calls it (oSql is a previously connected global cSQLConnection:
Code:
Get SQLOpen of oSql to lhSttm
Send SQLSetProcedurename of lhSttm "ACCESSCONTROL" "DB2ADMIN"
Send SQLSetArgument of lhSttm 1 (Trim(psProgram))
Send SQLSetArgument of lhSttm 2 UserCode
Send SqlCall to lhSttm
Get SQLGetArgument of lhSttm 3 to lsModule
Get SQLGetArgument of lhSttm 4 to lsAllow
Get SQLGetArgument of lhSttm 5 to lsSearch
Get SQLGetArgument of lhSttm 6 to lsInsert
Get SQLGetArgument of lhSttm 7 to lsDelete
Get SQLGetArgument of lhSttm 8 to lsUpdate
Send SQLClose of lhSttm
The problem is that everytime I call the SQLGetArgument the return is always empty. I've read around the forum that people had sucess using the "set no count" on MSSQL but as far as I know DB2 has no such thing.
I have already tried the example StoredProcedureODBC and StoredProcedureMSSQL on the specialized components example but the "Get SQLStmtAttribute of hStmt SQLSTMTATTRIB_COLUMNCOUNT to iNumCols" always returns 0 and I have no next result set either.
If I call a update/insert/delete statement from the "oSQL" object the code works, so it has a working conection to the DB2 instance.