Skip to Content.
Sympa Menu

freetds - RE: [freetds] dblib bcp & freebcp

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Lowden, James K" <LowdenJK AT bernstein.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] dblib bcp & freebcp
  • Date: Thu, 3 Jun 2004 10:04:19 -0400

> From: freetds-bounces AT lists.ibiblio.org
> [mailto:freetds-bounces AT lists.ibiblio.org]On Behalf Of
> Thompson, Bill D
> Sent: June 3, 2004 7:01 AM
>
> > Yay! How did you work around the fseek() in "measuring" delimited
> character files?
>
> I'm afraid you caught me out. I was planning to the
> stdin/stdout work today,
> I thought it would be easy.
> Just do this, right ?
>
> FILE *fptr;
>
> if (strcmp(filename,"stdin") == 0 ) {
> fptr = stdin;
> } else {
> fptr = fopen(filename, "r");
> }

No, yaar, that won't work, because _bcp_measure_terminated_field() uses
fseek(3). Try that on stdin, an you'll get EBADF.

BTW, I fixed (I think) the seek-the-terminator logic this weekend. You might
want to update your bcp.c.

I used fseek() to avoid double buffering, but it's probably not the best
approach. We can probably work with a fixed 8000 byte buffer (big enough for
all "normal" datatypes), and read text/ntext in chunks. Tedious, but about
as efficient: we'd be trading off fseek() for memcpy().

> I'll take a look at bcp_moretext(). It should be possible.

I don't remember exactly why, but I came to the conclusion some time back --
and you agreed, IIRC -- that supporting bcp_moretext() will actually force
some improvements in how bcp is implemented. Had to do with building a row
image and with cancelling a partial row.

I'll be interested to see what you come up with, Bill.

Regards,

--jkl

-----------------------------------------
The information contained in this transmission may contain privileged and
confidential information and is intended only for the use of the person(s)
named above. If you are not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient, any
review, dissemination, distribution or duplication of this communication is
strictly prohibited. If you are not the intended recipient, please contact
the sender immediately by reply e-mail and destroy all copies of the original
message. Please note that we do not accept account orders and/or instructions
by e-mail, and therefore will not be responsible for carrying out such orders
and/or instructions.
If you, as the intended recipient of this message, the purpose of which is to
inform and update our clients, prospects and consultants of developments
relating to our services and products, would not like to receive further
e-mail correspondence from the sender, please "reply" to the sender
indicating your wishes. In the U.S.: 1345 Avenue of the Americas, New York,
NY 10105.






Archive powered by MHonArc 2.6.24.

Top of Page