DBD::ASAny -- an Adaptive Server Anywhere interface for Perl 5.

   Portions Copyright (c) 1994,1995,1996  Tim Bunce
   Portions Copyright (c) 1996,1998,1999  Sybase Inc.

   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 MOSTLY ALPHA SOFTWARE. Your mileage may vary. **

*BEFORE* BUILDING, TESTING AND INSTALLING this you will need to:

    Build, test and install Perl 5 (at least 5.002beta2).
    It is very important to test it and install it!

    Build, test and install the DBI module (at least DBI 1.13).
    It is very important to test it and install it!

    Remember to *read* the DBI README file!


Building:
    On UNIX:
	[ Solaris, AIX, HP-UX, Linux ]

	perl Makefile.PL
	make
	make test
	make install
    
    On Win32:
	[ requires Microsoft C and ActiveState's ActivePerl (www.activestate.com) ]

	perl Makefile.PL
	nmake
	nmake test
	nmake install
    

    The regression tests are minimal at the moment so don't necessarily
    believe all is fine if the tests succeed...

    Do NOT hand edit the generated Makefile unless you are completely sure
    you understand the implications! Always try to make changes via the
    Makefile.PL command line and/or editing the Makefile.PL.


Notes:

0.  The ASAny DBD driver is NOT supported by Sybase technical support. If you have
    difficulties, please try to solve them yourself *before* you contact the author
    (smirnios@sybase.com). If you make additions, improvements or bug fixes, please
    let the author know so that the changes can be incorporated into the next version.

1.  The connect() method for Adaptive Server Anywhere ignores the
    password and dbname fields. The uid field provides the full connection
    string. For example:
	$dbh = DBI->connect( '', 'UID=dba;PWD=sql;ENG=asademo', '', 'ASAny' );

2.  Before running 'make test', a copy of the asademo.db file located in the ASA 
    directory should be in your current directory. There have been problems autostarting
    and autostopping engines in rapid succession on UNIX. If you encounter a problem
    autostarting the engine, start the engine on asademo.db before running the tests.

3.  The ASAny DBD driver should now be thread-safe; however, simple multi-threaded
    tests can easily crash perl. It is suspected that the current implementation of
    Perl threads and/or DBI in a threaded environment is the cause of the instability,
    not the driver.

Let me repeat: this is ALPHA software - testing has been minimal!!!

So what is implemented?

Lets take the list at the bottom of DBI.pm:

$dbh = DBI->connect($data_source, $username, $auth);
$dbh = DBI->connect($data_source, $username, $auth, \%attr);

$rc  = $dbh->disconnect;

$rv  = $dbh->do($statement);
$rv  = $dbh->do($statement, \%attr);                    %attr is ignored
$rv  = $dbh->do($statement, \%attr, @bind_values);      %attr is ignored

$sth = $dbh->prepare($statement);
$sth = $dbh->prepare($statement, \%attr);               %attr is ignored

$rc = $sth->bind_col($col_num, \$col_variable);
$rc = $sth->bind_columns(\%attr, @list_of_refs_to_vars_to_bind);

$rv = $sth->bind_param($param_num, $bind_value);
$rv = $sth->bind_param($param_num, $bind_value, $bind_type);    $bind_type ignored
$rv = $sth->bind_param($param_num, $bind_value, \%attr);        %attr ignored

$rv = $sth->execute;
$rv = $sth->execute(@bind_values);

@row_ary  = $sth->fetchrow_array;
$ary_ref  = $sth->fetchrow_arrayref;
$hash_ref = $sth->fetchrow_hashref;

$rc = $sth->finish;

$rv = $sth->rows;

$rc  = $dbh->commit;
$rc  = $dbh->rollback;

$sql = $dbh->quote($string);

$rc  = $h->err;
$str = $h->errstr;
$rv  = $h->state;                               Not supported


$sth->{NAME}       (\@)                         Yes
$sth->{NULLABLE}   (\@)                          No
$sth->{TYPE}       (\@)                          No
$sth->{PRECISION}  (\@)                          No
$sth->{SCALE}      (\@)                          No

$sth->{NUM_OF_FIELDS}  ($)                      Yes
$sth->{NUM_OF_PARAMS}  ($)                      Yes

---------------------------------------------------------------

There are two examples in the 'eg' directory.
connect.pl  -> Demonstrates a simple connect.
retrieve.pl -> Demonstrates retrieving data from a table and displaying the result set.

For further examples, consult the test scripts located in the 't' directory.