$Id: README,v 1.11 1999/06/25 15:00:35 mpeppler Exp $ DBD::Sybase -- a Sybase DBI driver for Perl 5. Copyright (c) 1996, 1997, 1998, 1999 Michael Peppler You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file. WARNING: THIS IS ALPHA SOFTWARE. IT IS INCOMPLETE! IT IS POSSIBLY UNRELIABLE! This Sybase DBI driver is built using the Sybase OpenClient Client Library (aka CT-library). You will need to have that installed before you can do anything with this package. You will also need Tim Bunce's DBI module, latest release. DBI is available from CPAN, in "CPAN"/authors/id/TIMB/DBI/DBI-1.xx-tar.gz The Sybase OpenClient libraries are of course available from Sybase. For Linux you can get the full Sybase ASE 11.0.3.3 release for free (this includes the server and the client libraries.) See http://linux.sybase.com for details, or my homepage (http://www.mbay.net/~mpeppler). DBD::Sybase is a reasonably complete implementation of the DBI spec, but there are still some features that are missing. Please see the DBD::Sybase man page for details. Recent changes: Release 0.19 Setting chained/non-chained mode was still broken. syb_flush_finish mode didn't quite work right either. Release 0.18 Add $h->{syb_chained_txn} attribute to switch between CHAINED transactions and explicit named transactions for AutoCommit=0 mode. The default is for syb_chained_txn to be off (ie 0.13 behaviour). Fixed typo in syb_db_commit() to actually commit instead of doing a rollback. Added an autocommit.t test (which still needs some work). Disable opening new connection for secondary $sth handles off of a single $dbh handle when AutoCommit == 0. Release 0.17 Fix AutoCommit = 0 problems introduced with 0.15 for MS-SQL or older Sybase server (ie TDS 4.x protocol connections). Add syb_dynamic_supported $dbh attribute to check whether the connection supports ?-style placeholders. Release 0.16 Added code to define PL_xxx symbols for pre 5.005 perls. New syb_flush_finish attribute (contributed by Steve Miller). Patch to Makefile.PL for VMS systems. Better library detection code in Makefile.PL. Release 0.15 Added an error handler callback which can intercept error messages and provide ad-hoc handling of error situations. In AutoCommit == 0 mode, use CS_OPT_CHAINXACTS mode on the server instead of issuing explicit transactions. $dbh->LongReadLen and LongTruncOK now work. First cut at the type_info() and type_info_all() methods. perl Makefile.PL now attempts to discover the libraries directly based on what it finds in $SYBASE/lib. Release 0.14 Added a 'timeout' connection attribute (contributed by Tom May) to handle timeout errors during normal processing. SQL PRINT statements are now handled by a warn() call (instead a printf() call) so that they can be caught by a __WARN__ handler. Make sure $dbh->do() returns immediately when an error is encountered. Include dbd-sybase.pod (Tim Bunce's Driver Summary for DBD::Sybase). Building: This version attempts to find out which libraries it needs by looking at $SYBASE/lib. This behaviour is experimental, and will only work on Unix and VMS systems (ie on Win32 you still have to edit the CONFIG file the old way), but appears to work fine on the two systems I have access to (Sybase 11.5/Solaris 7 & Sybase 11.0.3.3/linux) and on Sybase 10.0.2.3/OpenVMS AXP 7.1. It assumes that $SYBASE is set and points to the Sybase installation directory that you want to use to build DBD::Sybase. Start by editing the PWD file to set a valid user, password and server for the test scripts to use. Make sure that the SYBASE environment variable points to the Sybase installation that you want to use for this build. Then run perl Makefile.PL If there were warnings about missing libraries, go to the manual configuration, below. Run make If the make failed, go to the manual configuration, below. Run make test If this succeeds you can install the package, via make install (which you probably have to run as root.) Manual Configuration: If the automatic configuration fails, then you will have to edit the CONFIG file, and set the EXTRA_LIBS entry according to your OS and Sybase release, and then run perl Makefile.PL --file The CONFIG file can be used to set certain system variables that are needed for the build. SYBASE is the root directory of your Sybase installation. DBD::Sybase will use $SYBASE/lib and $SYBASE/include during the build. EXTRA_LIBS lists any extra libraries that are required on your system. For example, Solaris 2.x needs -ltli. See your OS specific documentation supplement from Sybase to determine what is required. DBI_INCLUDE is the directory where DBI installed its include files. Makefile.PL will normally deduce this directory from perl's Config module, so you only need to set this if Makefile.PL fails. LINKTYPE. Uncomment and set to 'static' if you want to build DBD::Sybase statically (ie always included in a new perl binary). Edit PWD, and set the user, password and server that you want to use for the 'make test'. Run perl Makefile.PL, make, make test. If everything's fine, run "make install" to move the files to your installed perl library tree. Known Problems: =============== On Solaris 2.x make test will fail if LD_LIBRARY_PATH is set and has /usr/lib or /lib before $SYBASE/lib. This is because both Solaris 2.x and Sybase have a library called libintl.so, and if /usr/lib is placed before $SYBASE/lib in LD_LIBRARY_PATH the dynamic loader will search the wrong library when loading DBD::Sybase. In general it is not necessary to set LD_LIBRARY_PATH on Solaris, and it is only rarely necessary to include /usr/lib or /lib in the LD_LIBRARY_PATH as those directories will be searched by default. The regression tests are minimal at the moment so don't necessarily believe all is fine if the tests succeed... Let me repeat: this is ALPHA software - testing has been minimal!!! See perldoc DBD::Sybase for details about the package. Comments, criticism, etc. welcome! Michael -- Michael Peppler, Data Migrations, Inc. mpeppler@peppler.org - http://www.mbay.net/~mpeppler