on 08-25-2016 7:35 PM
Alright, expert... I'm stuck.
I have a stored procedure on MS-SQL Server, which from the management console returns everything correctly. The basic definition in SQL is:
xsp_ENTITY__GET @ai_ENTITY int, @ai_TYPE int OUTPUT, @as_NAME varchar(64) OUTPUT, @as_CODE varchar(16) OUTPUT RETURNS int
It is declared in PB (12.5) as:
PUBLIC FUNCTION Long sp_ENTITY__GET ( Long ai_ENTITY, REF Long ai_TYPE, REF String as_NAME, REF String as_CODE ) RPCFUN ALIAS FOR "dbo.xsp_ENTITY__GET"
I call it from a SQL query, as follows:
DECLARE @li_ENTITY int, @li_TYPE int, @ls_NAME varchar(64), @ls_CODE varchar(16)
SET @li_ENTITY = 22
EXEC xsp_ENTITY__GET @li_ENTITY, @li_TYPE OUTPUT, @ls_NAME OUTPUT, @ls_CODE OUTPUT
SELECT @li_ENTITY, @li_TYPE, @ls_NAME, @ls_CODE
This returns everything perfectly. However, when called from PB, only the integer/long values are returned. The name/code (strings) are simply blank.
Any thoughts?
And naturally, 30 seconds after I type this up, I altered my Google search and got the answer I needed.
Looks like the string/varchar arguments need to be "primed" before calling them. See below.
ls_NAME = Fill( ' ', 64 )
ls_CODE = Fill( ' ', 16 )
TransObject.sp_ENTITY__GET( ll_ENTITY, ll_TYPE, ls_NAME, ls_CODE )
This allowed me to return the name/code perfectly!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
88 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.