Re: Unable to query MSSQL server using freetds

Frediano Ziglio <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
2010/9/28 Belden, Alvin (H USA) <[email protected]>

> Hi All,
>
> We are trying to port our applications that currently use Ct Lib/Sybase to
> Sql Server using the Ct lib supplied by FreeTds. We are able to connect to
> and switch databases but fail to query. We're running the following
> versions:
>
> Linux (application (C++) server) - Red Hat Enterprise Linux Server release
> 5.4 (Tikanga)
> FreeTds - 082
> MSSQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
>
> The problem with the query seems to be (from the dump below) that the
> single parameter to stored procedure get_users_info, being passed as RADRAD
> is truncated to RADR. I have tried different parameter strings but whatever
> I pass appears from the dump to be truncated and therefore returns nothing.
> I have also tried making the parameter larger than the actual field in the
> table in the hope that the truncation would result in a match. Running in
> Isql, I can run the same stored procedure and it works fine.
>
> Below is the tdsdump running from a C++ application. After that, is the
> dump running the same stored proc from Isql. Appreciate any help.
>
>
>
...


> token.c:2232:                rows_affected = 0
> util.c:110:logic error: cannot change query state from IDLE to PENDING
> ct.c:1157:ct_results() process_result_tokens returned 1 (type 4052)
> ct.c:1262:ct_results() results state = 0
> ct.c:1263:ct_results() command type  = 148
> ct.c:1264:ct_results() dynamic cmd   = 0
> ct.c:1100:ct_results()
> ct.c:682:ct_command()
> ct.c:215:setting command state from SENT to IDLE
> ct.c:215:setting command state from IDLE to IDLE
> ct.c:766:ct_command() added rpcname "get_users_info"
> ct.c:215:setting command state from IDLE to READY
> ct.c:3358:ct_param()
> ct.c:3359:ct_param() data addr = 0xbfdd29fe data length = 6
> ct.c:4324: _ct_fill_param() status = 256
> ct.c:2003:_ct_get_server_type(0)
>

type == 0 ?? could you send some source code that calls ctlib ??


> ct.c:3390: ct_param() added rpc parameter @user_init
> ct.c:844:ct_send() command_type = 149
> ct.c:4239:paraminfoalloc: status = 256, maxlen 0
> ct.c:4240:paraminfoalloc: name = @user_init, varint size 2 column_type 47
> size 6, 6 column_cur_size 6 column_output = 0
> ct.c:4079:paramrowalloc, size = 6, data = 0xa4cb450, row_size = 0
> mem.c:563:tds_free_all_results()
> util.c:162:Changed query state from IDLE to QUERYING
> query.c:1292:tds_put_data_info putting param_name
> query.c:1326:tds_put_data_info putting status
> query.c:1420:tds_put_data: colsize = 6
> query.c:1449:tds_put_data: not null param varint_size = 2
> util.c:162:Changed query state from QUERYING to PENDING
> net.c:779:Sending packet
> 0000 03 01 00 4e 00 00 01 00-0e 00 67 00 65 00 74 00 |...N.... ..g.e.t.|
> 0010 5f 00 75 00 73 00 65 00-72 00 73 00 5f 00 69 00 |_.u.s.e. r.s._.i.|
> 0020 6e 00 66 00 6f 00 00 00-0a 40 00 75 00 73 00 65 |n.f.o... [email protected]|
> 0030 00 72 00 5f 00 69 00 6e-00 69 00 74 00 00 af 06 |.r._.i.n .i.t....|
> 0040 00 09 04 d0 00 34 06 00-06 00 52 41 44 52       |.....4.. ..RADR|
>
>
is not truncated, it seems garbled. Instead of "RADRAD" it sends "RADR" with
2 bytes (06 00) before.

freddy77
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.