Help with freetds

 
Thread Tools Search this Thread
Special Forums UNIX and Linux Applications Help with freetds
# 1  
Old 07-02-2012
Help with freetds

Hi all,

I have an MS-Sql 2008 server. I need to perform a bulk insert of data (over 1 million records every hour) from an Ubuntu box. Doing this in python using pymssql takes about 30 seconds for every 100,000 records.

I've installed the freetds suite on this ubuntu box. While tsql and isql are able to connect and execute queries successfully, only freebcp keeps throwing a "Msg 2410, Level 2" "Cannot bcp with TDSVER < 5.0" error.

The same bcp tool (Microsoft's version) on a Windows XP virtual box on the same Ubuntu box, can insert to the SQL server without any problem the entire 1million records in just 30 seconds.

I've checked and re-checked every configuration for freetds. It's puzzling why tsql and isql work, but freebcp doesn't.

Any help/pointers on getting freebcp to work or how to get such large data inserted quickly is greatly appreciated.
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
fisql(1)							 FreeTDS Utilities							  fisql(1)

NAME
fisql - interactive SQL shell SYNOPSIS
fisql [-e] [-F] [-g] [-p] [-n] [-v] [-X] [-Y] [-a display_charset] [-c cmdend] [-D database] [-E editor] [-h headers] [-H hostname] [-i inputfile] [-I interfaces_file] [-J client_charset] [-l login_timeout] [-m errorlevel] [-o outputfile] [-P password] [-s colseparator] [-S server] [-t timeout] [-U username] [-w width] [-y sybase_dir] [-z language] DESCRIPTION
fisql is very similar to the "isql" utility programs distributed by Sybase and Microsoft. Like them, fisql uses the command "go" on a line by itself as a separator between batches. OPTIONS
-a display_charset The client charset name. Not implemented. -c cmdend Command terminator, defaults to go. -D Database name on the server to use. -e Echo SQL input (usually in outputfile) -E editor Specify an editor to invoke. Defaults to vi. -F FIPS mode ON. Server returns a message (but processes the query anyway) when it encounters a non-standard SQL command. -g Display a brief help message -h headers Number of rows after which to repeat the column headers. Default is once per resultset. -H hostname Hostname of the client machine as it will be told to the server. -I interfaces_file Name of the interfaces or freetds.conf file to use. -i inputfile Name of script file, containing SQL. -J client_charset Not implemented. -l login_timeout How long to wait for the server to acknowledge a login attempt. -m errorlevel For errors of the severity level specified or higher, print only the message number, state, and error level. Below that level, print nothing. -n Suppress line numbers in echoed output. -o outputfile Name of output file, holding result data. -p Prints performance statistics. Not implemented. -P password Database server password. -s colseparator The column separator. Default is space. Shell metacharacters require quoting. -S server Database server to which to connect. -t timeout The query timeout, in seconds. How long to wait for a query to be processed. The default is indefinitely, or as determined by freetds.conf. -U username Database server login name. -v Display version and copyright. -w width How many characters wide to print the output. Defaults to 80. -X Use encrypted login. Not implemented in FreeTDS. -y sybase_dir Sets the SYBASE environment variable. Not used by FreeTDS. -Y Use chained transactions. -z language Name of a language for fisql's prompts and messages. Cf. DBSETLNATLANG. NOTES
fisql is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The -i, -o, and -e options override these, of course. fisql uses the db-lib API provided by FreeTDS. It was first implemented using Sybase's own library and continues to work with it. Before (and after) modifying it, it would be well to test it with Sybase's library to assure compatibility between it and FreeTDS. EXIT STATUS
fisql exits 0 on success, and >0 if the server cannot process the query. fisql will report any errors returned by the server, but will continue processing. In a production environment, this behavior may be insuf- ficiently stringent. To make it extremely intolerant of errors, change the message and error handlers to call exit(3). HISTORY
fisql first appeared in FreeTDS 0.65. AUTHORS
The fisql utility was written by Nicholas S. Castellano <entropy@freetds.org>, who contributed it to the FreeTDS project under the terms of the GPL. BUGS
Requires the GNU readline library. doc 13 November 2011 fisql(1)