I very much doubt that Sybase will discontinue DBlibrary anytime soon, although
you need to be aware that the DB-Library API does have some limitations
and can't handle some of the newer capabilities (such as wider
varchars, for example.)

What additional BCP functionality do you need in Sybase::CTlib?

What functionality in sybperl do you use that is not present
in the DBI API?

As I mentioned, Sybase::BCP is one I rely on, coupled with DBlib I use it to do all my data transfers. The two are well suited since BCP is based on DBlib. My concern lies with the changes in the Sybase client i.e., how does BCP match up with the changes in datatypes? This is something we havenít had to deal with yet. It would seem there would be some issues there. Would feel more comfortable to see CTlib have full access to the BCP API. But that seems more of a Sybase issue. As far as DBI is concerned, if in the future it also could have access to the BCP API. I move a lot of data. With the ability to pluggin to different DBMSí it would be an added bonus to move data in bulk from one platform to another, using the appropriate bulkload APIís.

The Sybase BCP api is indeed limited with respect to certain datatypes, and cannot be used to load data to a table that does not use allpages locking.

sybperl 2.13_10 (a test release, available from http://www.peppler.org/downloads/)
includes a new Sybase::BLK module, which is based on some new
blk_*() calls in the Sybase::CTlib module. I suggest that you give that a try.

As for having bulk-loading available in DBI - it's an interesting idea, but you will almost always get much better speed by creating a load file and calling the database server's bulk-loading utility (like Sybase's bcp command) due to overhead in moving data around in perl.

I'm looking into ways of improving that, btw, but for now the overhead of using Sybase::BCP or Sybase::BLK is significant.

have converted some of my perl scripts to use CTlib blk instead of DBlib bcp ... but i am facing problem with memory usage(increased)... Is there any document on CTlib memory usage? It would be great help... thanks in advance

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other