Documentation generated from CVS HEAD
Tdbc_Init, Tdbc_MapSqlState, Tdbc_TokenizeSql -
C procedures to facilitate writing TDBC drivers
#include <tdbc.h> int Tdbc_Init(interp) Tcl_Obj * Tdbc_TokenizeSql(interp, sqlcode) const char * Tdbc_MapSqlState(state)
Type | Name | Mode |
---|---|---|
Tcl_Interp | *interp | in/out |
Pointer to a Tcl interpreter. | ||
const char | *state | in |
Pointer to a character string containing a 'SQL state' from a database error. | ||
const char | *sqlcode | in |
Pointer to a character string containing a SQL statement. |
The TDBC library provides several C procedures that simplify writing a TDBC driver. They include a procedure that tokenizes a SQL statement, locating variables to be substituted, and a procedure that accepts a SQL state and returns an error class for the interpreter error information.
Tdbc_Init must be invoked prior to any other TDBC call. It accepts a pointer to a Tcl interpreter, and arranges to load the TDBC library. It returns TCL_OK if the Tcl library was loaded successfully, and TCL_ERROR otherwise. If TCL_ERROR is returned, the interpreter's result contains the error message.
Tdbc_TokenizeSql accepts a pointer to a Tcl interpreter, and a pointer to a character string containing one or more SQL statements. It tokenizes the SQL statements, and returns a pointer to a Tcl_Obj that contains a list of the tokens that make up the statement. Concatenating the tokens together will yield the original SQL code. The returned Tcl_Obj has a reference count of zero. The caller is responsible for managing the reference count as needed. See TOKENS below for a description of what may be in the returned list of tokens.
Tdbc_MapSqlState accepts a pointer to a string, usually five characters long, that is the 'SQL state' that resulted from a database error. It returns a character string that is suitable for inclusion as the error class when constructing the error code for an error in a TDBC driver. (By convention, the error code is a list having at least four elements: "TDBC errorClass sqlstate driverName details...".)
Each token returned from Tdbc_TokenizeSql may be one of the following:
tdbc(n), tdbc::mapSqlState(n), tdbc::tokenize(n)
Copyright (c) 2009 by Kevin B. Kenny.