http://qs321.pair.com?node_id=985004


in reply to Re: Sybase DB Library vs Client Library API
in thread Sybase DB Library vs Client Library API

Thanks for the reply Michael. I prefer DBI/DBD::Sybase as well. But, don't know the reason as to why. Could you please help to clarify why you advice using DBI over CTlib? Thanks again.
  • Comment on Re^2: Sybase DB Library vs Client Library API

Replies are listed 'Best First'.
Re^3: Sybase DB Library vs Client Library API
by roboticus (Chancellor) on Aug 02, 2012 at 11:35 UTC

    perl@1983:

    The reason I prefer the DBI/DBD route is that you use the same interface for *any* database. Here at $work, I work with Oracle, MSSQL, SQLite and occasionally PostgreSQL. When I have to interact with a particular database, I don't have to ask myself questions like:

    • OK, how do I read a result set with *this* database?
    • Can I use placeholders in my query? If so, how do I do that?
    • What data structure get I get my results in?

    Since DBI provides a standardized interface, I can be immediately productive when I switch back to a database I use rarely, without having to reacquaint myself with a module I haven't used in a year.

    Sure, there are some occasional differences between the databases, but DBI / DBD lets me ignore most of them. Occasionally, I'll need a special database-specific feature and have to read DBD::Oracle or some such. But better that than having to read documentation on all the everyday operations for selecting, inserting, updating and deleting.

    That's my 1/50 of a dollar.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

      Thank you for the detailed reply roboticus. It is helpful.
Re^3: Sybase DB Library vs Client Library API
by mpeppler (Vicar) on Aug 02, 2012 at 15:35 UTC
    Same as roboticus, really - the DBI syntax is a little simpler, and the API is (mostly) standardized, so your scripts can be easily maintained by someone else who doesn't necessarily understand the CTlib API.

    And I'm more likely to fix things in DBD::Sybase these days...

    Michael

      Thanks Michael. My team is working on migrating our scripts from DBlib (to either CTlib or DBD::Sybase). However, we are still discussing the pros and cons of CTlib vs DBD::Sybase. One of the things we noticed was the bcp in CTlib is much much faster as compared to the "Experimental Utility" in DBD::Sybase. Can you please help to clarify whether the "Experimental Bulk Load" utility in DBD::Sybase is doing inserts underlyingly and therefore slower? Thanks much.
        Hi,

        No, DBD::Sybase uses the same BLK API as Sybase::CTlib, so it should theoretically be as fast (though to be honest I haven't timed them.)

        Michael