Version 9 of BeasleyTclDBI

Updated 2008-06-02 20:05:36 by AK

What: TclDBI

 Where: From the contact
 Description: Based on the MODDBC project, contact has put the code
        into a namespace, updated the drivers, added a driver for ODBC.
        It also supports Postgres, Sybase, and msql.
 Updated: 09/2000 
 Contact: mailto:[email protected] 

Is this related to http://tcldbi.sf.net/ ?

Scott Beasley No, TclDBI is/will be a pure Tcl package that uses current binary dB extensions.


The current proposed API:

tcldbi::connect db_type db_name host port user passwd connstr

   inputs required:
      db_type: dB type that is being connected to, as of now it can
               be one of the following: postgres, odbc, sybase, msql, oracle

      db_name: name of dB to connect to.
host
host name dB server is located on. This can be blank for some DBMS.
port
port name dB server is listening on. This can be blank for some DBMS.
user
user name to connect with.
   inputs optional:
      passwd:  password to login with.  Some DBMS do not require a password.
      connstr: a long connection string to connect to things like odbc with, and 
               possibly others in the future.

   output:
      a connection handle that can be used to open up cursors, perform SQL executes or 
      fetch rows on some dbms's.

tcldbi::disconnect handle

   inputs required:
      a connection handle returned by a tcldbi::connect call.

tcldbi::opencursor handle

   inputs required:
      a connection handle returned by a tcldbi::connect call.
   output:
      a connection handle that can be used perform SQL executes and fetch rows.

   special:
      On dbms's that do not support cursors, this will have to be done in code for the dB
      driver

tcldbi::closecursor handle

   inputs required:
      handle: a connection handle returned by a tcldbi::opencursor call.

   special:
      On dbms's that do not support cursors, this will have to be done in code for the dB
      driver

tcldbi::sql handle sqlstr

   inputs required:
      handle: a connection handle returned by a tcldbi::opencursor call or on some dbms's a 
              handle from a tcldbi::connect call can be used.
      sqlstr: the SQL string to execute.
   output:
      a result handle that will be used to fetch rows with.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver
      usually by just returning the connection handle.

tcldbi::fetch handle arrayname command

   inputs required:
      handle: a result handle returned by a tcldbi::sql call.
   inputs optional:
      arrayname: an array name to copy the fetched row back to.  The array then can be
                 indexed by column names.
      command: a command or set of commands to execute on each row fetched
   output:
      a Tcl list of the fetched row if arrayname was not specified.  A {} (NULL) will be
      returned if there are no more rows left to read, and tcldbi::eors will be set to 1.

tcldbi::columns cmd handle

   inputs required:
      cmd: type of column information to return,  Can be: names, types or sizes.
      handle: a result handle returned by a tcldbi::sql call.
   output:
      a Tcl list of the specified type.

tcldbi::trans cmd handle

   inputs required:
      cmd: transaction type,  Can be: begin, commit, rollback or cancel.
      handle: a connection handle returned by a tcldbi::opencursor call or on some dbms's a 
              handle from a tcldbi::connect call can be used.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver.

tcldbi::autocommit cmd handle

   inputs required:
      cmd: switch, ether on or off
      handle: a connection handle returned by a tcldbi::opencursor call or on some dbms's a 
              handle from a tcldbi::connect call can be used.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver.

Optional API's (Do we want or need any of these?):

tcldbi::prepare handle sqlstr

   inputs required:
      handle: a connection handle returned from a tcldbi::connect call.
      sqlstr: the SQL string to execute.
   output:
      a result handle that will be used to call tcldbi::execute with.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver.

tcldbi::execute

   inputs required:
      handle: a connection handle returned by a tcldbi::prepare call.
   output:
      a result handle that will be used to call tcldbi::fetch* with.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver.

tcldbi::sqlexecimediate handle sqlstr

   inputs required:
      handle: a connection handle returned from a tcldbi::opencursor or a tcldbi::connect 
              call on some dbms's.
      sqlstr: the SQL string to execute.
   output:
      a Tcl list of lists containing the fetched rows.

   special:
      On dbms's that do not support this, it will have to be done in code for the dB driver.

tcldbi::fetchall handle command

   inputs required:
      handle: a result handle returned by a tcldbi::sql call.
   inputs optional:
      command: a command or set of commands to execute on each row fetched
   output:
      a Tcl list of lists containing the fetched rows.

tcldbi::apisavailable db_type

or

tcldbi::dbmscapabilities db_type

   db_type: dB type that is being connected to, as of now it can
               be one of the following: postgres, odbc, sybase, msql, oracle
   output:
      a Tcl list containing the supported tcldbi:: API's and/or the capabilities 
      supported by the given driver.

tcldbi:: variables

   tcldbi::eors
      signifies where the end of a result set has been reached.

   tcldbi::errno
      tcldbi generated error number.

   tcldbi::errstr
      tcldbi generated error string.

   tcldbi::native_errno
      dbms generated error number. 

   tcldbi::native_errstr
      dbms generated error string.

   tcldbi::rowcount
      rows affected or returned from call to tcldbi::sql

See also PostgresSQL, Sybase, msql, tcl dbi


Category Package Category Database