Skip to Content.
Sympa Menu

freetds - Re: How to read Strings bigger than 255 chars

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Michael Peppler <mpeppler AT peppler.org>
  • To: "TDS Development Group" <freetds AT franklin.oit.unc.edu>
  • Subject: Re: How to read Strings bigger than 255 chars
  • Date: Mon, 4 Jun 2001 15:24:41 -0700 (PDT)


Brian Bruns writes:
> Hmmm... this is a case where DBD::Sybase is dealing with some assumptions
> which MS went and changed. Is the proper place to deal with this your
> code or mine? I'm inclined to make a new config file option "default text
> size" and allow users to set it in the freetds.conf file. Whaddya think?

Well - I am just using the data as returned by Client Library
(ct_describe() in this case) and using datafmt.maxlength to effect the
bind.

By default Sybase will limit this to 32k (although you can set
TEXTSIZE to alter that behaviour). If MS returns 2GB for this value,
but still limits the amount of *data* that it returns to the default
(or set) TEXTSIZE value then I'd say that it's a bug in MS's
implementation of the protocol...

I need to use some value here to allocate a large enough buffer for
the ct_bind() call, so just using some default value will not work
(unless the actual data fetch never exceeds that value)

An upcoming version of DBD::Sybase will have access to ct_get_data()
and ct_send_data() to allow direct read/write of TEXT/IMAGE columns
(and to allow read/write in blocks rather than sending the whole thing
in one go).

Michael


> On Mon, 4 Jun 2001, Michael Peppler wrote:
>
> > Darryl Friesen writes:
> > > >> Eric, if you issue the query "set textsize 10000" prior to
> > selecting
> > > >> the text column does that also fix the problem?
> > > >
> > > > Yes it does! If I just do:
> > >
> > > Hmm. Doesn't work for me here. I still get a
> > >
> > > Out of memory during "large" request for -2147479552 bytes
> > >
> > > in my Perl script (which uses DBD::Sybase)
> >
> > I seem to recognize this one... I think MS returns the maximum
> > possible size of the object, instead of the actual size, and I use the
> > size value to allocate memory for the object in ct_bind() (which of
> > course fails in your case).
> >
> > Michael
> >
>
>
> ---
> You are currently subscribed to freetds as: [mpeppler AT peppler.org]
> To unsubscribe, forward this message to $subst('Email.Unsub')

--
Michael Peppler - Data Migrations Inc. - mpeppler AT peppler.org
http://www.mbay.net/~mpeppler - mpeppler AT mbay.net
International Sybase User Group - http://www.isug.com
Sybase on Linux mailing list: ase-linux-list AT isug.com




Archive powered by MHonArc 2.6.24.

Top of Page