Article 9100 of comp.lang.perl:
Xref: feenix.metronet.com comp.lang.perl:9100
Path: feenix.metronet.com!news.ecn.bgu.edu!usenet.ins.cwru.edu!howland.reston.ans.net!spool.mu.edu!news.clark.edu!netnews.nwnet.net!news.uoregon.edu!gaia.ucs.orst.edu!ruby.oce.orst.edu!tardis.co.uk!bill
From: bill@tardis.co.uk (William Hails)
Newsgroups: comp.lang.perl
Subject: isqlperl 1.2
Date: Wed, 22 Dec 93 11:19:47 GMT
Organization: University Computing Services - Oregon State University
Lines: 106
Message-ID: <8549.9312221119@devone.tardis.co.uk>
NNTP-Posting-Host: ruby.oce.orst.edu
Originator: root@ruby.oce.orst.edu


I've just released version 1.2 of isqlperl.  It's available by
anonymous ftp from:

    ftp.demon.co.uk [158.152.1.68]

in

    pub/perl/db/isqlperl/isqlperl-1.2.shar.Z

There are quite a lot of new features, mostly things that I've found
I needed to add to make it more useful to me.

Here's a repeat of the 1.1 announcement, followed by a list of changes:

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

There is now a perl interface to Informix SQL, available by anonymous
ftp from ftp.demon.co.uk in /pub/perl/db/isqlperl.  You'll need perl
already installed, and you'll need Informix ESQL/C installed to build
it also.

This is *not* the notorious (and mythical) Infoperl, rather it's my
reaction to finally discovering that Infoperl never existed.

Nor is it DBperl compliant, so it will undoubtedly be supplanted by
DBperl in the not too distant future.

I've tested it on Informix 4.10 se and ol.

Enjoy.

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

Changes from 1.1 to 1.2

$isql_code evaluates to a string error message when evaluated in a
string context, to a number in a numeric context.

Support for Byte and Text (Blobs), on insert and select, but not on
update :--(

Paramaterised statements (`?'s in string statements). Undef values
equate to nulls if supplied as separate parameters. Blobs are also
passed in this way.

New function &isql_titles($cid) returns an array of column names
associated with the open cursor $cid or the number of fields in a
scalar context.

minor bug fix re. execute `sometimes' freeing a database statement.

Added a man page.

Changed error on ``too many open cursors'' from -104 (too many open files)
to -276 (cursor not found).

Added &isql_databases() - returns list of databases.

New variable $isql_attrib replaces $isql_maxcursors.

&isql_open() now accepts non-select statements and returns a
statement id which can be executued using &isql_execute($id), with
optional parameters (&isql_execute() still accepts string statements
to execute immediately, after parameter substitution).

New function &isql_type($id) returns the type of a statement id created
by &isql_open(), as a string. For example 'SELECT'.

New function &isql_columns($id) returns a list of the data types associated
with the $id.

&isql_fetch() can now accept a string select statement - opens a cursor,
fetches the first row, closes the cursor, and returns the row.

New variable $isql_autoclose if set non-zero automatically closes select
cursors on reaching last row.

Renamed Winthrop Chans isql script to sql (apologies in advance) and
extended it somewhat to demo 1.2 features (and to be more useful).

added &isql_statement($cid) - returns associated statement.

added $isql_database - current database name.
      $isql_transactions - true if database has transactions.
      $isql_ansi - true if database is mode ANSI
      $isql_online - true if database is OnLine

Added a super-fast :-) finderr.pl library module to replace the
rather slow informix supplied script.

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

-- 

Cheers
        Bill

  ===========================================================================
 | Bill Hails <bill@tardis.co.uk>    | Reisner's rule of conceptual inertia: |
 | C.L.I. Connect Ltd.               |                                       |
 | 19, Quarry St., Guildford, Surrey | If you think big enough, you'll never |
 | GU1 3UY. Tel (UK) 0483 300 200    | have to do it.                        |
  ===========================================================================