Skip to Content.
Sympa Menu

freetds - Re: possible bug in freetds 0.50

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Brian Bruns <camber AT umcc.ais.org>
  • To: TDS Development Group <freetds AT franklin.oit.unc.edu>
  • Subject: Re: possible bug in freetds 0.50
  • Date: Thu, 27 Jan 2000 07:59:05 -0500 (EST)


Ok, I checked it in....that should help :-)

Anyway, I think I know what the other issue is (although I thought I fixed
it). DBD::Sybase is apparently conflicting with changes made to
accomodate PHP...depending on the datafmt->format the value returned for
length binding will either include the null or not. Looking at my code it
seems to be doing the right thing...perhaps you could put together a
little test script I could try out? maybe we are dealing with a different
datatype...

Cheers,

Brian

On Thu, 27 Jan 2000, Peter Zeltins wrote:

> > Can you set TDSDUMP (such as 'export TDSDUMP=/tmp/freetds.log') and post
> > the output?
> >
> > BTW, the unknown property messages have been removed in the CVS versions.
> >
>
> Hmm, I'm still getting 'unknown property 10' messages with CVS ver.
>
> OK, I finaly found out the problem was elsewhere. It seems like select
> statement in 0.50 returns strings with 00 byte appended in the end. Perl
> handles these strings nicely, and when I construct next SQL statement using
> values returned from previous SQL, zero bytes are interpreted as
> end-of-string. Temp. fix is to use chomp to remove trailing zero bytes, but
> it requires to rewrite scripts. TDSDUMP for the select statement follows.
>
> The following dump was created using latest CVS ver compiled with TDS42
> option.
>
> 2000-01-27 11:41:22 Connecting addr xxx.xxx.xxx.xx
> Sending packet @ 2000-01-27 11:41:22
> <login packet>
>
>
> Sending packet @ 2000-01-27 11:41:22
> 0000 02 01 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 |...L............|
> 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 69 73 6f |.............iso|
> 0020 5f 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |_1..............|
> 0030 00 00 00 00 00 00 00 00 00 00 00 05 01 35 31 32 |.............512|
> 0040 00 00 00 03 00 00 00 00 00 00 00 00 |............|
>
>
> 2000-01-27 11:41:22 inside tds_process_login_tokens()
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is e3
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is ab
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is e3
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is e3
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is fd
> 2000-01-27 11:41:22 leaving tds_process_login_tokens() returning 1
> 2000-01-27 11:41:22 leaving ct_connect() returning 1
> 2000-01-27 11:41:22 inside ct_options()
> 2000-01-27 11:41:22 inside ct_cmd_alloc()
> 2000-01-27 11:41:22 inside ct_command()
> 2000-01-27 11:41:22 inside ct_send()
> Sending packet @ 2000-01-27 11:41:22
> 0000 01 01 00 43 00 00 00 00 73 65 6c 65 63 74 20 64 |...C....select d|
> 0010 69 73 74 69 6e 63 74 20 73 79 6d 62 6f 6c 20 66 |istinct symbol f|
> 0020 72 6f 6d 20 74 69 63 6b 73 79 6d 73 20 77 68 65 |rom ticksyms whe|
> 0030 72 65 20 73 79 6d 62 6f 6c 20 3c 3e 20 27 43 41 |re symbol <> 'CA|
> 0040 53 48 27 |SH'|
>
>
> 2000-01-27 11:41:22 inside ct_results()
> 2000-01-27 11:41:22 processing result tokens. marker is a0
> 2000-01-27 11:41:22 processing result tokens. marker is a1
> 2000-01-27 11:41:22 inside tds_process_default_tokens() marker is a1
> 2000-01-27 11:41:22 processing result tokens. marker is d1
> 2000-01-27 11:41:22 inside ct_res_info()
> 2000-01-27 11:41:22 inside ct_describe()
> 2000-01-27 11:41:22 inside _ct_get_client_type()
> 2000-01-27 11:41:22 inside ct_describe() datafmt->datatype = 1 server type
> 39
> 2000-01-27 11:41:22 inside ct_bind()
> 2000-01-27 11:41:22 inside ct_bind() item = 1 datafmt->datatype = 1
> 2000-01-27 11:41:22 inside ct_fetch()
> 2000-01-27 11:41:22 processing row tokens. marker is d1
> 2000-01-27 11:41:22 setting column 0 to NULL
> 2000-01-27 11:41:22 inside _ct_bind_data()
> 2000-01-27 11:41:22 inside _ct_bind_data() setting column size for 0 = 20
> 2000-01-27 11:41:22 inside _ct_get_server_type()
> 2000-01-27 11:41:22 inside _ct_bind_data() converting column 0 from type 39
> to type 47
> 2000-01-27 11:41:22 inside _ct_get_server_type()
> 2000-01-27 11:41:22 converting string dlen = 21 strlen = 47 string = AACB
> 2000-01-27 11:41:22 inside ct_fetch()
> 2000-01-27 11:41:22 processing row tokens. marker is d1
> ...
> etc etc etc. ct_fetch() for each row.
>





Archive powered by MHonArc 2.6.24.

Top of Page