- NAME
- Tdbc_Init, Tdbc_MapSqlState, Tdbc_TokenizeSql - C procedures to
facilitate writing TDBC drivers
- SYNOPSIS
- ARGUMENTS
- DESCRIPTION
- TOKENS
- SEE ALSO
- KEYWORDS
- COPYRIGHT
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)
- 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:
- [1]
- A bound variable, which begins with one of the characters
':', '@', or '$'. The remainder of the string
is the variable name and will consist of alphanumeric characters
and underscores. (The leading character will be be
non-numeric.)
- [2]
- A semicolon that separates two SQL statements.
- [3]
- Something else in a SQL statement. The tokenizer does not
attempt to parse SQL; it merely identifies bound variables
(distinguishing them from similar strings appearing inside quotes
or comments) and statement delimiters.
tdbc,
tdbc::mapSqlState, tdbc::tokenize
TDBC, SQL, database, tokenize
Copyright (c) 2009 by Kevin B. Kenny.
Copyright © 2009 by Kevin B. Kenny.