[freetds] freebcp: add support for escaping characters?

Konrad J Hambrick konrad at jax01.payplus.com
Tue Mar 28 19:16:35 EST 2006


Good points James.

What does freebcp do when say, a char (or varchar) field
contains an embedded freebcp (field or record) delimiter char ?

Is the embedded delimiter char somehow escaped ?

Thanks to ALL for all your freetds efforts !

-- kjh


Lowden, James K wrote:
>>From: galt at folkplanet.com
>>Sent: Tuesday, March 28, 2006 3:50 PM
>>
>>First, I should say that freetds is wonderful!  I don't know what
>>I'd do without it.
> 
> 
> Good to hear.  :-)
> 
> 
>>Currently I am transferring data from Sybase to MySQL.  It would
>>be incredibly helpful if I could just have each field (in -c char
>>mode) escaped according to the mysql conventions.  Is there any
>>hope of including support for this in freebcp?
>>...
>>http://dev.mysql.com/doc/refman/5.0/en/mysql-real-escape-string.html
>>http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html
> 
> 
> Before we do that, wouldn't this bit 'o Perl almost do what you want?  
> 
> #! /usr/bin/perl -p
> $end = chop;
> s:['"\\_%]:\\$&:g;	# literal escapes
> s:\x0:\\0:g;		# NUL
> s:\b:\\b:g;		# backspace
> s:\n:\\n:g;		# newline
> s:\r:\\r:g;		# return
> s:\t:\\t:g;		# tab
> s:\cZ:\\z:g;		# ^Z
> print $_, $end;
> 
> It wouldn't be easy to add to freebcp.  You'd wind up adding it to
> src/dblib/bcp.c I think, because that's where the convert-to-character
> and write-to-file functions are.  You'd have to pass the "do the MySQL
> thing" flag pretty deep into the code.  
> 
> It's also icky.  The whole idea of escaping my data so the utility I'm
> using doesn't get confused about quoting and ^Z is pretty lame, if you
> ask me.  It should be the other way around: presented with clearly
> described data, the utility should convert it to its internal format and
> do its thing.  From my perspective, everything but the delimiter is a
> literal value.  Isn't that the usual way?  
> 
> Does MySQL have anything that helps you load something more standard,
> like, say, CSV files?  I could see adding CSV as a format that freebcp
> understands.  
> 
> --jkl
> 
> 
> 
> -----------------------------------------
> The information contained in this transmission may be privileged and
> confidential 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.
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
> 


More information about the FreeTDS mailing list