Skip to Content.
Sympa Menu

freetds - RE: Strange error in tsql

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddyz77 AT tin.it>
  • To: TDS Development Group <freetds AT franklin.oit.unc.edu>
  • Subject: RE: Strange error in tsql
  • Date: 08 Nov 2002 17:29:13 +0100


Il gio, 2002-11-07 alle 23:12, Lowden, James K ha scritto:
> > From: Frediano Ziglio [mailto:freddyz77 AT tin.it]
> > Sent: November 7, 2002 4:35 PM
> > >
> > > But 5.0 sends ee, ae, d1, 1, 0?
> > > Received packet @ 2002-11-07 15:43:34.383225
> > > 0000 ee 0d 00 01 00 00 30 0a 00 00 00 6c 21 4d 12 00
> >
> > Row, numeric of 33 (yes, 33!) bytes. So we must change
> > numeric limit...
> > (in tds.h is defined as 17 bytes...)
>
> I'm trying to interpret that packet:
>
> ee TDS_ROWFMT
> 0d 00 13 byte packet
> 01 00 1 column
> 00 Name length = 0
> 30 status nullable, updatable (!)
> 0a 00 00 00 user type numeric
> 6c nullable numeric
> 21 33 bytes wide
> 4d precision 64+13 = 77
> 12 scale 18
> 00 no locale
>
> Is that right?
>
> Wow. That's one big number, 10 ^ (77 - 18), like a gazillion or something.
>

Yes, there are solution and a workaround:
Solution: handle huge (256 bit) numeric types. (note that Sybase
proprietary ctlib use this type) (check all code that use numeric, check
all buffers for hold numeric).
Workaround: sybase/ms db allow numeric only of 128 bit precision, so
reading it discard high info (modify only token.c).

The solution is best (we are not on freeze). I'll try this way...

freddy77






Archive powered by MHonArc 2.6.24.

Top of Page