dblib and output parameters of stored procedures

LacaK <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Hi list,
I am trying work with output parameters of stored procedures using 
FreeTDS dblib
I am calling stored procedure using:
  "declare @p int; EXEC pokus 1, @p OUTPUT"
after that call I am trying read count of output parametres using:
  dbnumrets()
but it still returns 0
(same example tested with Microsoft ntwdblib returns 1)

Please see attached log file.
As you can see there is line:
  dblib.c:4742:..\..\src\dblib\dblib.c 4743: logic error: 
tds_process_tokens result_type 4043

Deos it explain reason why it does not work?

Thanks
-Laco.

write.c:140:tds_put_string converting 39 bytes of "declare @p int; EXEC 
pokus 1, @p OUTPUT"
write.c:168:tds_put_string wrote 78 bytes
util.c:156:Changed query state from QUERYING to PENDING
net.c:741:Sending packet
0000 01 01 00 56 00 00 01 00-64 00 65 00 63 00 6c 00 |...V.... d.e.c.l.|
0010 61 00 72 00 65 00 20 00-40 00 70 00 20 00 69 00 |a.r.e. . @.p. .i.|
0020 6e 00 74 00 3b 00 20 00-45 00 58 00 45 00 43 00 |n.t.;. . E.X.E.C.|
0030 20 00 70 00 6f 00 6b 00-75 00 73 00 20 00 31 00 | .p.o.k. u.s. .1.|
0040 2c 00 20 00 40 00 70 00-20 00 4f 00 55 00 54 00 |,. [email protected].  .O.U.T.|
0050 50 00 55 00 54 00      -                        |P.U.T.|

dblib.c:4642:dbsqlok(026B0640)
dblib.c:4672:dbsqlok() not done, calling tds_process_tokens()
token.c:540:tds_process_tokens(026B08D0, 0176F144, 0176F14C, 0x6914)
util.c:156:Changed query state from PENDING to READING
net.c:555:Received header
0000 04 01 00 1f 00 3a 01 00-                        |.....:..|

net.c:609:Received packet
0000 04 01 00 1f 00 3a 01 00-ff 11 00 c1 00 01 00 00 |.....:.. ........|
0010 00 79 00 00 00 00 fe 00-00 e0 00 01 00 00 00    |.y...... .......|

token.c:555:processing result tokens.  marker is  ff(DONEINPROC)
token.c:2339:tds_process_end: more_results = 1
        was_cancelled = 0
        error = 0
        done_count_valid = 1
token.c:2370:                rows_affected = 1
util.c:156:Changed query state from READING to PENDING
dblib.c:4672:dbsqlok() not done, calling tds_process_tokens()
token.c:540:tds_process_tokens(026B08D0, 0176F144, 0176F14C, 0x6914)
util.c:156:Changed query state from PENDING to READING
token.c:555:processing result tokens.  marker is  79(RETURNSTATUS)
token.c:690:tds_process_tokens: return status is 0
util.c:156:Changed query state from READING to PENDING
dblib.c:4742:..\..\src\dblib\dblib.c 4743: logic error: 
tds_process_tokens result_type 4043
dblib.c:4672:dbsqlok() not done, calling tds_process_tokens()
token.c:540:tds_process_tokens(026B08D0, 0176F144, 0176F14C, 0x6914)
util.c:156:Changed query state from PENDING to READING
token.c:555:processing result tokens.  marker is  fe(DONEPROC)
token.c:2339:tds_process_end: more_results = 0
        was_cancelled = 0
        error = 0
        done_count_valid = 0
token.c:2355:tds_process_end() state set to TDS_IDLE
util.c:156:Changed query state from READING to IDLE
token.c:2370:                rows_affected = 1
util.c:104:logic error: cannot change query state from IDLE to PENDING
dblib.c:4710:dbsqlok() end status is SUCCEED
dblib.c:4721:dbsqlok() end status was success
dblib.c:1671:dbresults(026B0640)
dblib.c:1677:dbresults: dbresults_state is 5 (_DB_RES_SUCCEED)
dblib.c:1660:dbresults returning 1 (SUCCEED)
dblib.c:4066:dbcmdrow(026B0640)
dblib.c:2764:dbcount(026B0640)
dblib.c:2744:dbiscount(026B0640)
dblib.c:4515:dbnumrets(026B0640)
dblib.c:4520:dbnumrets() finds 0 columns
token.c:540:tds_process_tokens(026B08D0, 0176F16C, 00000000, 0x2282a)
token.c:543:tds_process_tokens() state is COMPLETED
dblib.c:2021:dbnextrow(026B0640)
dblib.c:2034:dbnextrow() dbresults_state = 3 (_DB_RES_NEXT_RESULT)
dblib.c:2039:leaving dbnextrow() returning -2 (NO_MORE_ROWS)
dblib.c:4515:dbnumrets(026B0640)
dblib.c:4520:dbnumrets() finds 0 columns
token.c:540:tds_process_tokens(026B08D0, 0176F16C, 00000000, 0x2282a)
token.c:543:tds_process_tokens() state is COMPLETED
dblib.c:1671:dbresults(026B0640)
dblib.c:1677:dbresults: dbresults_state is 3 (_DB_RES_NEXT_RESULT)
token.c:540:tds_process_tokens(026B08D0, 0176F158, 0176F15C, 0x6914)
token.c:543:tds_process_tokens() state is COMPLETED
dblib.c:1698:dbresults() tds_process_tokens returned 2 
(TDS_NO_MORE_RESULTS),
            result_type TDS_DONE_RESULT
dblib.c:1660:dbresults returning 2 (NO_MORE_RESULTS)
dblib.c:4515:dbnumrets(026B0640)
dblib.c:4520:dbnumrets() finds 0 columns
token.c:540:tds_process_tokens(026B08D0, 0176F16C, 00000000, 0x2282a)
token.c:543:tds_process_tokens() state is COMPLETED
dblib.c:4515:dbnumrets(026B0640)
dblib.c:4520:dbnumrets() finds 0 columns
token.c:540:tds_process_tokens(026B08D0, 0176F14C, 00000000, 0x2282a)
token.c:543:tds_process_tokens() state is COMPLETED
dblib.c:1446:dbclose(026B17E0)
dblib.c:258:dblib_del_connection(10032B88, 026B1A70)
mem.c:615:tds_free_all_results()
util.c:156:Changed query state from IDLE to DEAD
dblib.c:305:dblib_release_tds_ctx(1)
dblib.c:5885:dbfreebuf(026B17E0)
dblib.c:739:dbloginfree(026B16F0)
dblib.c:1446:dbclose(026B0640)
dblib.c:258:dblib_del_connection(10032B88, 026B08D0)
mem.c:615:tds_free_all_results()
util.c:156:Changed query state from IDLE to DEAD
dblib.c:305:dblib_release_tds_ctx(1)
dblib.c:5885:dbfreebuf(026B0640)
dblib.c:739:dbloginfree(026B0550)
dblib.c:1515:dbexit(void)
dblib.c:305:dblib_release_tds_ctx(1)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.