Skip to Content.
Sympa Menu

freetds - Re: [freetds] DBD::Sybase and FreeTDS, bulk load error

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Patrick Dunnigan" <patrick.dunnigan AT centivia.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] DBD::Sybase and FreeTDS, bulk load error
  • Date: Thu, 17 Feb 2005 18:19:09 -0500

I believe that you are correct. The FreeTDS part seems to be working.

in ct.c I changed the line:
sprintf(writetext_cmd, "writetext bulk %s 0x%s timestamp = 0x%s %s",
cmd->iodesc->name,
textptr_string, timestamp_string, ((cmd->iodesc->log_on_update == CS_TRUE) ? "with log" : "")
);

to a hardcoded:
sprintf(writetext_cmd, "writetext bulk script_audit_file_image.file_text 0xFFFFBE08000000004801000001000000");

the DBD::Sybase bulk insert works. It seems that ct_send_data is not getting the tablename, columnname, textptr, or timestamp from DBD::Sybase.

It's either syb_ct_data_info or DBD::Sybase is not calling ct_send_data correctly.

I'll dig into the DBD::Sybase code now.

Thanks,
Patrick
----- Original Message ----- From: "Lowden, James K" <LowdenJK AT bernstein.com>
To: <ml AT freetds.org>
Sent: Thursday, February 17, 2005 5:24 PM
Subject: RE: [freetds] DBD::Sybase and FreeTDS, bulk load error


From: Patrick Dunnigan
Sent: Thursday, February 17, 2005 4:39 PM

I am attempting to load a file into a TEXT field in a MS SQL Server
database. I am using Michael Peppler's example in the DBD::Sybase
documentation.

Do the TEXT/IMAGE functions in DBD::Sybase work with FreeTDS? How
about MS SQL?

I tested with current CVS, running src/dblib/unittests/t0014.c and
src/ctlib/unittests/get_send_data.c. My insert statements each have a
column name.

db-lib:
16:49:09.365447 13308 (write.c:132):tds_put_string converting 107 bytes
of "writetext bulk dblib0014.PigTure 0xffffc1ef17000000c24d000001000000
timestamp = 0x64756d6d79545300 with log"

ct-lib:
17:02:45.724097 17391 (write.c:132):tds_put_string converting 106 bytes
of "writetext bulk #test_table.name 0xffffebd3000000002a00000001000100
timestamp = 0x64756d6d79545300 with log"

and yours doesn't:

17:32:17.405236 tds_put_string converting 90 bytes of "writetext bulk
0x00000000000000000000000000000000 timestamp = 0x0000000000000000 with
log"

I wonder about that timestamp value, which makes me wonder if you're
using syb_ct_data_info correctly. (The 3rd argument should be a
hashref.) If your unit tests work, I'd look very carefully at that
section of your code.

I haven't used this part of DBD::Sybase, so I don't have any direct
experience. The next step would be to see where the table name comes
from, how it gets set, and why it's not there.

HTH.

--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.


_______________________________________________
FreeTDS mailing list
FreeTDS AT lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds






Archive powered by MHonArc 2.6.24.

Top of Page