Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals  

sqlite3odbc.c File Reference


Detailed Description

SQLite3 ODBC Driver main module.

Id:
sqlite3odbc.c,v 1.105 2010/01/05 15:03:11 chw Exp chw

Copyright (c) 2004-2010 Christian Werner <chw@ch-werner.de>

See the file "license.terms" for information on usage and redistribution of this file and for a DISCLAIMER OF ALL WARRANTIES.

Definition in file sqlite3odbc.c.#include "sqlite3odbc.h"
#include <sqlucode.h>
#include <odbcinst.h>

Go to the source code of this file.

Data Structures

struct  tblres

Defines

#define WINTERFACE
#define ODBC_INI   ".odbc.ini"
#define DRIVER_VER_INFO   "0.0"
#define COLATTRIBUTE_LAST_ARG_TYPE   SQLPOINTER
#define SETSTMTOPTION_LAST_ARG_TYPE   SQLROWCOUNT
#define min(a, b)   ((a) < (b) ? (a) : (b))
#define max(a, b)   ((a) < (b) ? (b) : (a))
#define PTRDIFF_T   int
#define array_size(x)   (sizeof (x) / sizeof (x[0]))
#define stringify1(s)   #s
#define stringify(s)   stringify1(s)
#define verinfo(maj, min, lev)   ((maj) << 16 | (min) << 8 | (lev))
#define SCOL_VARCHAR   SQL_WVARCHAR
#define SCOL_CHAR   SQL_WCHAR
#define ENV_MAGIC   0x53544145
#define DBC_MAGIC   0x53544144
#define DEAD_MAGIC   0xdeadbeef
#define xmalloc(x)   malloc(x)
#define xrealloc(x, y)   realloc(x, y)
#define xfree(x)   free(x)
#define xstrdup(x)   strdup_(x)
#define HDBC_LOCK(hdbc)
#define HDBC_UNLOCK(hdbc)
#define HSTMT_LOCK(hdbc)
#define HSTMT_UNLOCK(hdbc)
#define ISDIGIT(c)   ((c) && strchr(digit_chars, (c)) != NULL)
#define ISSPACE(c)   ((c) && strchr(space_chars, (c)) != NULL)
#define drvgetgpps(d)
#define drvrelgpps(d)
#define strmak(dst, src, max, lenp)
#define SET_EXISTS(x)   flags[(x) >> 4] |= (1 << ((x) & 0xF))
#define CLR_EXISTS(x)   flags[(x) >> 4] &= ~(1 << ((x) & 0xF))

Typedefs

typedef tblres TBLRES

Functions

int TOLOWER (int c)
void dbtraceapi (DBC *d, char *fn, const char *sql)
 Trace function for SQLite API calls.

void freedyncols (STMT *s)
 Free dynamically allocated column descriptions of STMT.

void freeresult (STMT *s, int clrcols)
 Free statement's result.

void freerows (char **rowp)
 Free counted array of char pointers.

void unbindcols (STMT *s)
 Reset bound columns to unbound state.

void s3stmt_drop (STMT *s)
 Drop running sqlite statement in STMT.

SQLRETURN drvexecute (SQLHSTMT stmt, int initial)
SQLRETURN freestmt (HSTMT stmt)
SQLRETURN mkbindcols (STMT *s, int ncols)
 Reallocate space for bound columns.

SQLRETURN setupdyncols (STMT *s, sqlite3_stmt *s3stmt, int *ncolsp)
SQLRETURN setupparbuf (STMT *s, BINDPARM *p)
 Setup parameter buffer for deferred parameter.

SQLRETURN starttran (STMT *s)
 Start transaction when autocommit off.

SQLRETURN setupparam (STMT *s, char *sql, int pnum)
 Setup SQLite3 parameter for statement parameter.

char * strdup_ (const char *str)
 Duplicate string using xmalloc().

int uc_strlen (SQLWCHAR *str)
 Return length of UNICODE string.

SQLWCHAR * uc_strncpy (SQLWCHAR *dest, SQLWCHAR *src, int len)
 Copy UNICODE string like strncpy().

void uc_from_utf_buf (unsigned char *str, int len, SQLWCHAR *uc, int ucLen)
 Make UNICODE string from UTF8 string into buffer.

SQLWCHAR * uc_from_utf (unsigned char *str, int len)
 Make UNICODE string from UTF8 string.

char * uc_to_utf (SQLWCHAR *str, int len)
 Make UTF8 string from UNICODE string.

char * uc_to_utf_c (SQLWCHAR *str, int len)
 Make UTF8 string from UNICODE string.

void uc_free (void *str)
 Free converted UTF8 or UNICODE string.

void s3bind (DBC *d, sqlite3_stmt *stmt, int nparams, BINDPARM *p)
int drvgettable_row (TBLRES *t, int ncol, int rc)
int drvgettable (STMT *s, const char *sql, char ***resp, int *nrowp, int *ncolp, char **errp, int nparam, BINDPARM *p)
void setstatd (DBC *d, int naterr, char *msg, char *st,...)
 Set error message and SQL state on DBC.

void setstat (STMT *s, int naterr, char *msg, char *st,...)
 Set error message and SQL state on statement.

SQLRETURN drvunimpldbc (HDBC dbc)
 Report IM001 (not implemented) SQL error code for HDBC.

SQLRETURN drvunimplstmt (HSTMT stmt)
 Report IM001 (not implemented) SQL error code for HSTMT.

void freep (void *x)
 Free memory given pointer to memory pointer.

SQLRETURN nomem (STMT *s)
 Report S1000 (out of memory) SQL error given STMT.

SQLRETURN noconn (STMT *s)
 Report S1000 (not connected) SQL error given STMT.

double ln_strtod (const char *data, char **endp)
 Internal locale neutral strtod function.

char * unquote (char *str)
 Strip quotes from quoted string in-place.

int unescpat (char *str)
 Unescape search pattern for e.g.

int namematch (char *str, char *pat, int esc)
 SQL LIKE string match with optional backslash escape handling.

int busy_handler (void *udata, int count)
 Busy callback for SQLite.

int setsqliteopts (sqlite3 *x, DBC *d)
 Set SQLite options (PRAGMAs) given SQLite handle.

int mapsqltype (const char *typename, int *nosign, int ov3, int nowchar)
 Map SQL field type from string to ODBC integer type code.

void getmd (const char *typename, int sqltype, int *mp, int *dp)
 Get maximum display size and number of digits after decimal point from field type specification.

int mapdeftype (int type, int stype, int nosign, int nowchar)
 Map SQL_C_DEFAULT to proper C type.

char * fixupsql (char *sql, int sqlLen, int *nparam, int *isselect, char **errmsg)
 Fixup query string with optional parameter markers.

int findcol (char **cols, int ncols, char *name)
 Find column given name in string array.

void fixupdyncols (STMT *s, DBC *d)
 Fixup column information for a running statement.

int getmdays (int year, int month)
 Return number of month days.

int str2date (char *str, DATE_STRUCT *ds)
 Convert string to ODBC DATE_STRUCT.

int str2time (char *str, TIME_STRUCT *ts)
 Convert string to ODBC TIME_STRUCT.

int str2timestamp (char *str, TIMESTAMP_STRUCT *tss)
 Convert string to ODBC TIMESTAMP_STRUCT.

int getbool (char *string)
 Get boolean flag from string.

void dbtrace (void *arg, const char *msg)
 SQLite trace callback.

void dbtracerc (DBC *d, int rc, char *err)
 Trace function for SQLite return codes.

SQLRETURN dbopen (DBC *d, char *name, int isu, char *dsn, char *sflag, char *spflag, char *ntflag, char *jmode, char *busy)
 Open SQLite database file given file name and flags.

void dbloadext (DBC *d, char *exts)
 Load SQLite extension modules, if any.

char * s3stmt_coltype (sqlite3_stmt *s3stmt, int col, DBC *d, int *guessed_types)
 Find out column type.

int s3stmt_step (STMT *s)
 Do one sqlite statement step gathering one result row.

void s3stmt_end (STMT *s)
 Stop running sqlite statement.

void s3stmt_end_if (STMT *s)
 Conditionally stop running sqlite statement.

SQLRETURN s3stmt_start (STMT *s)
 Start sqlite statement for execution of SELECT statement.

SQLRETURN SQL_API SQLBulkOperations (SQLHSTMT stmt, SQLSMALLINT oper)
 Function not implemented.

SQLRETURN SQL_API SQLDataSourcesW (SQLHENV env, SQLUSMALLINT dir, SQLWCHAR *srvname, SQLSMALLINT buflen1, SQLSMALLINT *lenp1, SQLWCHAR *desc, SQLSMALLINT buflen2, SQLSMALLINT *lenp2)
 Function not implemented.

SQLRETURN SQL_API SQLDriversW (SQLHENV env, SQLUSMALLINT dir, SQLWCHAR *drvdesc, SQLSMALLINT descmax, SQLSMALLINT *desclenp, SQLWCHAR *drvattr, SQLSMALLINT attrmax, SQLSMALLINT *attrlenp)
 Function not implemented.

SQLRETURN SQL_API SQLBrowseConnectW (SQLHDBC dbc, SQLWCHAR *connin, SQLSMALLINT conninLen, SQLWCHAR *connout, SQLSMALLINT connoutMax, SQLSMALLINT *connoutLen)
 Function not implemented.

SQLRETURN drvputdata (SQLHSTMT stmt, SQLPOINTER data, SQLLEN len)
 Internal put (partial) parameter data into executing statement.

SQLRETURN SQL_API SQLPutData (SQLHSTMT stmt, SQLPOINTER data, SQLLEN len)
 Put (partial) parameter data into executing statement.

SQLRETURN freeparams (STMT *s)
 Clear out parameter bindings, if any.

SQLRETURN drvbindparam (SQLHSTMT stmt, SQLUSMALLINT pnum, SQLSMALLINT iotype, SQLSMALLINT buftype, SQLSMALLINT ptype, SQLUINTEGER coldef, SQLSMALLINT scale, SQLPOINTER data, SQLINTEGER buflen, SQLLEN *len)
 Internal bind parameter on HSTMT.

SQLRETURN SQL_API SQLBindParameter (SQLHSTMT stmt, SQLUSMALLINT pnum, SQLSMALLINT iotype, SQLSMALLINT buftype, SQLSMALLINT ptype, SQLULEN coldef, SQLSMALLINT scale, SQLPOINTER data, SQLLEN buflen, SQLLEN *len)
 Bind parameter on HSTMT.

SQLRETURN SQL_API SQLBindParam (SQLHSTMT stmt, SQLUSMALLINT pnum, SQLSMALLINT vtype, SQLSMALLINT ptype, SQLULEN lenprec, SQLSMALLINT scale, SQLPOINTER val, SQLLEN *lenp)
 Bind parameter on HSTMT.

SQLRETURN SQL_API SQLNumParams (SQLHSTMT stmt, SQLSMALLINT *nparam)
 Return number of parameters.

SQLRETURN SQL_API SQLParamData (SQLHSTMT stmt, SQLPOINTER *pind)
 Retrieve next parameter for sending data to executing query.

SQLRETURN SQL_API SQLDescribeParam (SQLHSTMT stmt, SQLUSMALLINT pnum, SQLSMALLINT *dtype, SQLULEN *size, SQLSMALLINT *decdigits, SQLSMALLINT *nullable)
 Return information about parameter.

SQLRETURN SQL_API SQLSetParam (SQLHSTMT stmt, SQLUSMALLINT par, SQLSMALLINT type, SQLSMALLINT sqltype, SQLULEN coldef, SQLSMALLINT scale, SQLPOINTER val, SQLLEN *nval)
 Set information on parameter.

SQLRETURN SQL_API SQLParamOptions (SQLHSTMT stmt, SQLULEN rows, SQLULEN *rowp)
 Function not implemented.

SQLRETURN SQL_API SQLGetDescFieldW (SQLHDESC handle, SQLSMALLINT recno, SQLSMALLINT fieldid, SQLPOINTER value, SQLINTEGER buflen, SQLINTEGER *strlen)
 Function not implemented.

SQLRETURN SQL_API SQLSetDescFieldW (SQLHDESC handle, SQLSMALLINT recno, SQLSMALLINT fieldid, SQLPOINTER value, SQLINTEGER buflen)
 Function not implemented.

SQLRETURN SQL_API SQLGetDescRecW (SQLHDESC handle, SQLSMALLINT recno, SQLWCHAR *name, SQLSMALLINT buflen, SQLSMALLINT *strlen, SQLSMALLINT *type, SQLSMALLINT *subtype, SQLLEN *len, SQLSMALLINT *prec, SQLSMALLINT *scale, SQLSMALLINT *nullable)
 Function not implemented.

SQLRETURN SQL_API SQLSetDescRec (SQLHDESC handle, SQLSMALLINT recno, SQLSMALLINT type, SQLSMALLINT subtype, SQLLEN len, SQLSMALLINT prec, SQLSMALLINT scale, SQLPOINTER data, SQLLEN *strlen, SQLLEN *indicator)
 Function not implemented.

SQLRETURN mkresultset (HSTMT stmt, COL *colspec, int ncols, COL *colspec3, int ncols3, int *nret)
 Setup empty result set from constant column specification.

SQLRETURN SQL_API SQLTablePrivilegesW (SQLHSTMT stmt, SQLWCHAR *catalog, SQLSMALLINT catalogLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen)
 Retrieve privileges on tables and/or views (UNICODE version).

SQLRETURN SQL_API SQLColumnPrivilegesW (SQLHSTMT stmt, SQLWCHAR *catalog, SQLSMALLINT catalogLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen, SQLWCHAR *column, SQLSMALLINT columnLen)
 Retrieve privileges on columns (UNICODE version).

SQLRETURN drvprimarykeys (SQLHSTMT stmt, SQLCHAR *cat, SQLSMALLINT catLen, SQLCHAR *schema, SQLSMALLINT schemaLen, SQLCHAR *table, SQLSMALLINT tableLen)
 Internal retrieve information about indexed columns.

SQLRETURN SQL_API SQLPrimaryKeysW (SQLHSTMT stmt, SQLWCHAR *cat, SQLSMALLINT catLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen)
 Retrieve information about indexed columns (UNICODE version).

SQLRETURN drvspecialcolumns (SQLHSTMT stmt, SQLUSMALLINT id, SQLCHAR *cat, SQLSMALLINT catLen, SQLCHAR *schema, SQLSMALLINT schemaLen, SQLCHAR *table, SQLSMALLINT tableLen, SQLUSMALLINT scope, SQLUSMALLINT nullable)
 Internal retrieve information about indexed columns.

SQLRETURN SQL_API SQLSpecialColumnsW (SQLHSTMT stmt, SQLUSMALLINT id, SQLWCHAR *cat, SQLSMALLINT catLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen, SQLUSMALLINT scope, SQLUSMALLINT nullable)
 Retrieve information about indexed columns (UNICODE version).

SQLRETURN SQL_API drvforeignkeys (SQLHSTMT stmt, SQLCHAR *PKcatalog, SQLSMALLINT PKcatalogLen, SQLCHAR *PKschema, SQLSMALLINT PKschemaLen, SQLCHAR *PKtable, SQLSMALLINT PKtableLen, SQLCHAR *FKcatalog, SQLSMALLINT FKcatalogLen, SQLCHAR *FKschema, SQLSMALLINT FKschemaLen, SQLCHAR *FKtable, SQLSMALLINT FKtableLen)
 Internal retrieve information about primary/foreign keys.

SQLRETURN SQL_API SQLForeignKeysW (SQLHSTMT stmt, SQLWCHAR *PKcatalog, SQLSMALLINT PKcatalogLen, SQLWCHAR *PKschema, SQLSMALLINT PKschemaLen, SQLWCHAR *PKtable, SQLSMALLINT PKtableLen, SQLWCHAR *FKcatalog, SQLSMALLINT FKcatalogLen, SQLWCHAR *FKschema, SQLSMALLINT FKschemaLen, SQLWCHAR *FKtable, SQLSMALLINT FKtableLen)
 Retrieve information about primary/foreign keys (UNICODE version).

SQLRETURN endtran (DBC *d, SQLSMALLINT comptype, int force)
 Internal commit or rollback transaction.

SQLRETURN drvendtran (SQLSMALLINT type, SQLHANDLE handle, SQLSMALLINT comptype)
 Internal commit or rollback transaction.

SQLRETURN SQL_API SQLEndTran (SQLSMALLINT type, SQLHANDLE handle, SQLSMALLINT comptype)
 Commit or rollback transaction.

SQLRETURN SQL_API SQLTransact (SQLHENV env, SQLHDBC dbc, SQLUSMALLINT type)
 Commit or rollback transaction.

SQLRETURN SQL_API SQLCopyDesc (SQLHDESC source, SQLHDESC target)
 Function not implemented.

SQLRETURN SQL_API SQLNativeSqlW (SQLHSTMT stmt, SQLWCHAR *sqlin, SQLINTEGER sqlinLen, SQLWCHAR *sql, SQLINTEGER sqlMax, SQLINTEGER *sqlLen)
 Translate SQL string (UNICODE version).

SQLRETURN SQL_API SQLProceduresW (SQLHSTMT stmt, SQLWCHAR *catalog, SQLSMALLINT catalogLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *proc, SQLSMALLINT procLen)
 Retrieve information about stored procedures (UNICODE version).

SQLRETURN SQL_API SQLProcedureColumnsW (SQLHSTMT stmt, SQLWCHAR *catalog, SQLSMALLINT catalogLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *proc, SQLSMALLINT procLen, SQLWCHAR *column, SQLSMALLINT columnLen)
 Retrieve information about columns in result set of stored procedures (UNICODE version).

SQLRETURN SQL_API SQLGetEnvAttr (SQLHENV env, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER len, SQLINTEGER *lenp)
 Get information of HENV.

SQLRETURN SQL_API SQLSetEnvAttr (SQLHENV env, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER len)
 Set information in HENV.

SQLRETURN drvgetdiagrec (SQLSMALLINT htype, SQLHANDLE handle, SQLSMALLINT recno, SQLCHAR *sqlstate, SQLINTEGER *nativeerr, SQLCHAR *msg, SQLSMALLINT buflen, SQLSMALLINT *msglen)
 Internal get error message given handle (HENV, HDBC, or HSTMT).

SQLRETURN SQL_API SQLGetDiagRecW (SQLSMALLINT htype, SQLHANDLE handle, SQLSMALLINT recno, SQLWCHAR *sqlstate, SQLINTEGER *nativeerr, SQLWCHAR *msg, SQLSMALLINT buflen, SQLSMALLINT *msglen)
 Get error message given handle (HENV, HDBC, or HSTMT) (UNICODE version).

SQLRETURN drvgetdiagfield (SQLSMALLINT htype, SQLHANDLE handle, SQLSMALLINT recno, SQLSMALLINT id, SQLPOINTER info, SQLSMALLINT buflen, SQLSMALLINT *stringlen)
 Get error record given handle (HDBC or HSTMT).

SQLRETURN SQL_API SQLGetDiagFieldW (SQLSMALLINT htype, SQLHANDLE handle, SQLSMALLINT recno, SQLSMALLINT id, SQLPOINTER info, SQLSMALLINT buflen, SQLSMALLINT *stringlen)
 Get error record given handle (HDBC or HSTMT).

SQLRETURN drvgetstmtattr (SQLHSTMT stmt, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER bufmax, SQLINTEGER *buflen)
 Internal get option of HSTMT.

SQLRETURN SQL_API SQLGetStmtAttrW (SQLHSTMT stmt, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER bufmax, SQLINTEGER *buflen)
 Get option of HSTMT (UNICODE version).

SQLRETURN drvsetstmtattr (SQLHSTMT stmt, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER buflen)
 Internal set option on HSTMT.

SQLRETURN SQL_API SQLSetStmtAttrW (SQLHSTMT stmt, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER buflen)
 Set option on HSTMT (UNICODE version).

SQLRETURN drvgetstmtoption (SQLHSTMT stmt, SQLUSMALLINT opt, SQLPOINTER param)
 Internal get option of HSTMT.

SQLRETURN SQL_API SQLGetStmtOption (SQLHSTMT stmt, SQLUSMALLINT opt, SQLPOINTER param)
 Get option of HSTMT.

SQLRETURN SQL_API SQLGetStmtOptionW (SQLHSTMT stmt, SQLUSMALLINT opt, SQLPOINTER param)
 Get option of HSTMT (UNICODE version).

SQLRETURN drvsetstmtoption (SQLHSTMT stmt, SQLUSMALLINT opt, SQLUINTEGER param)
 Internal set option on HSTMT.

SQLRETURN SQL_API SQLSetStmtOption (SQLHSTMT stmt, SQLUSMALLINT opt, SETSTMTOPTION_LAST_ARG_TYPE param)
 Set option on HSTMT.

SQLRETURN SQL_API SQLSetStmtOptionW (SQLHSTMT stmt, SQLUSMALLINT opt, SETSTMTOPTION_LAST_ARG_TYPE param)
 Set option on HSTMT (UNICODE version).

SQLRETURN drvsetpos (SQLHSTMT stmt, SQLSETPOSIROW row, SQLUSMALLINT op, SQLUSMALLINT lock)
 Internal set position on result in HSTMT.

SQLRETURN SQL_API SQLSetPos (SQLHSTMT stmt, SQLSETPOSIROW row, SQLUSMALLINT op, SQLUSMALLINT lock)
 Set position on result in HSTMT.

SQLRETURN SQL_API SQLSetScrollOptions (SQLHSTMT stmt, SQLUSMALLINT concur, SQLLEN rowkeyset, SQLUSMALLINT rowset)
 Function not implemented.

SQLRETURN drvgetinfo (SQLHDBC dbc, SQLUSMALLINT type, SQLPOINTER val, SQLSMALLINT valMax, SQLSMALLINT *valLen)
 Internal return information about what this ODBC driver supports.

SQLRETURN SQL_API SQLGetInfoW (SQLHDBC dbc, SQLUSMALLINT type, SQLPOINTER val, SQLSMALLINT valMax, SQLSMALLINT *valLen)
 Return information about what this ODBC driver supports.

SQLRETURN SQL_API SQLGetFunctions (SQLHDBC dbc, SQLUSMALLINT func, SQLUSMALLINT *flags)
 Return information about supported ODBC API functions.

SQLRETURN drvallocenv (SQLHENV *env)
 Internal allocate HENV.

SQLRETURN SQL_API SQLAllocEnv (SQLHENV *env)
 Allocate HENV.

SQLRETURN drvfreeenv (SQLHENV env)
 Internal free HENV.

SQLRETURN SQL_API SQLFreeEnv (SQLHENV env)
 Free HENV.

SQLRETURN drvallocconnect (SQLHENV env, SQLHDBC *dbc)
 Internal allocate HDBC.

SQLRETURN SQL_API SQLAllocConnect (SQLHENV env, SQLHDBC *dbc)
 Allocate HDBC.

SQLRETURN drvfreeconnect (SQLHDBC dbc)
 Internal free connection (HDBC).

SQLRETURN SQL_API SQLFreeConnect (SQLHDBC dbc)
 Free connection (HDBC).

SQLRETURN drvgetconnectattr (SQLHDBC dbc, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER bufmax, SQLINTEGER *buflen)
 Internal get connect attribute of HDBC.

SQLRETURN SQL_API SQLGetConnectAttrW (SQLHDBC dbc, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER bufmax, SQLINTEGER *buflen)
 Get connect attribute of HDBC (UNICODE version).

SQLRETURN drvsetconnectattr (SQLHDBC dbc, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER len)
 Internal set connect attribute of HDBC.

SQLRETURN SQL_API SQLSetConnectAttrW (SQLHDBC dbc, SQLINTEGER attr, SQLPOINTER val, SQLINTEGER len)
 Set connect attribute of HDBC (UNICODE version).

SQLRETURN drvgetconnectoption (SQLHDBC dbc, SQLUSMALLINT opt, SQLPOINTER param)
 Internal get connect option of HDBC.

SQLRETURN SQL_API SQLGetConnectOptionW (SQLHDBC dbc, SQLUSMALLINT opt, SQLPOINTER param)
 Get connect option of HDBC (UNICODE version).

SQLRETURN drvsetconnectoption (SQLHDBC dbc, SQLUSMALLINT opt, SQLUINTEGER param)
 Internal set option on HDBC.

SQLRETURN SQL_API SQLSetConnectOptionW (SQLHDBC dbc, SQLUSMALLINT opt, SQLULEN param)
 Set option on HDBC (UNICODE version).

int getdsnattr (char *dsn, char *attr, char *out, int outLen)
 Handling of SQLConnect() connection attributes for standalone operation without driver manager.

SQLRETURN drvconnect (SQLHDBC dbc, SQLCHAR *dsn, SQLSMALLINT dsnLen, int isu)
 Internal connect to SQLite database.

SQLRETURN SQL_API SQLConnectW (SQLHDBC dbc, SQLWCHAR *dsn, SQLSMALLINT dsnLen, SQLWCHAR *uid, SQLSMALLINT uidLen, SQLWCHAR *pass, SQLSMALLINT passLen)
 Connect to SQLite database.

SQLRETURN drvdisconnect (SQLHDBC dbc)
 Internal disconnect given HDBC.

SQLRETURN SQL_API SQLDisconnect (SQLHDBC dbc)
 Disconnect given HDBC.

SQLRETURN drvdriverconnect (SQLHDBC dbc, SQLHWND hwnd, SQLCHAR *connIn, SQLSMALLINT connInLen, SQLCHAR *connOut, SQLSMALLINT connOutMax, SQLSMALLINT *connOutLen, SQLUSMALLINT drvcompl)
 Internal standalone (w/o driver manager) database connect.

SQLRETURN freestmt (SQLHSTMT stmt)
 Internal free function for HSTMT.

SQLRETURN drvallocstmt (SQLHDBC dbc, SQLHSTMT *stmt)
 Allocate HSTMT given HDBC (driver internal version).

SQLRETURN SQL_API SQLAllocStmt (SQLHDBC dbc, SQLHSTMT *stmt)
 Allocate HSTMT given HDBC.

SQLRETURN drvfreestmt (SQLHSTMT stmt, SQLUSMALLINT opt)
 Internal function to perform certain kinds of free/close on STMT.

SQLRETURN SQL_API SQLFreeStmt (SQLHSTMT stmt, SQLUSMALLINT opt)
 Free HSTMT.

SQLRETURN SQL_API SQLCancel (SQLHSTMT stmt)
 Cancel HSTMT closing cursor.

SQLRETURN drvgetcursorname (SQLHSTMT stmt, SQLCHAR *cursor, SQLSMALLINT buflen, SQLSMALLINT *lenp)
 Internal function to get cursor name of STMT.

SQLRETURN SQL_API SQLGetCursorNameW (SQLHSTMT stmt, SQLWCHAR *cursor, SQLSMALLINT buflen, SQLSMALLINT *lenp)
 Get cursor name of STMT (UNICODE version).

SQLRETURN drvsetcursorname (SQLHSTMT stmt, SQLCHAR *cursor, SQLSMALLINT len)
 Internal function to set cursor name on STMT.

SQLRETURN SQL_API SQLSetCursorNameW (SQLHSTMT stmt, SQLWCHAR *cursor, SQLSMALLINT len)
 Set cursor name on STMT (UNICODE version).

SQLRETURN SQL_API SQLCloseCursor (SQLHSTMT stmt)
 Close open cursor.

SQLRETURN SQL_API SQLAllocHandle (SQLSMALLINT type, SQLHANDLE input, SQLHANDLE *output)
 Allocate a HENV, HDBC, or HSTMT handle.

SQLRETURN SQL_API SQLFreeHandle (SQLSMALLINT type, SQLHANDLE h)
 Free a HENV, HDBC, or HSTMT handle.

SQLRETURN getrowdata (STMT *s, SQLUSMALLINT col, SQLSMALLINT otype, SQLPOINTER val, SQLINTEGER len, SQLLEN *lenp, int partial)
 Internal function to retrieve row data, used by SQLFetch() and friends and SQLGetData().

SQLRETURN drvbindcol (SQLHSTMT stmt, SQLUSMALLINT col, SQLSMALLINT type, SQLPOINTER val, SQLLEN max, SQLLEN *lenp)
 Interal bind C variable to column of result set.

SQLRETURN SQL_API SQLBindCol (SQLHSTMT stmt, SQLUSMALLINT col, SQLSMALLINT type, SQLPOINTER val, SQLLEN max, SQLLEN *lenp)
 Bind C variable to column of result set.

SQLRETURN drvtables (SQLHSTMT stmt, SQLCHAR *cat, SQLSMALLINT catLen, SQLCHAR *schema, SQLSMALLINT schemaLen, SQLCHAR *table, SQLSMALLINT tableLen, SQLCHAR *type, SQLSMALLINT typeLen)
 Retrieve information on tables and/or views.

SQLRETURN SQL_API SQLTablesW (SQLHSTMT stmt, SQLWCHAR *cat, SQLSMALLINT catLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen, SQLWCHAR *type, SQLSMALLINT typeLen)
 Retrieve information on tables and/or views.

SQLRETURN drvcolumns (SQLHSTMT stmt, SQLCHAR *cat, SQLSMALLINT catLen, SQLCHAR *schema, SQLSMALLINT schemaLen, SQLCHAR *table, SQLSMALLINT tableLen, SQLCHAR *col, SQLSMALLINT colLen)
 Internal retrieve column information on table.

SQLRETURN SQL_API SQLColumnsW (SQLHSTMT stmt, SQLWCHAR *cat, SQLSMALLINT catLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen, SQLWCHAR *col, SQLSMALLINT colLen)
 Retrieve column information on table (UNICODE version).

void mktypeinfo (STMT *s, int row, int asize, char *typename, int type, int tind)
 Internal function to build up data type information as row in result set.

int typeinfosort (const void *a, const void *b)
 Helper function to sort type information.

SQLRETURN drvgettypeinfo (SQLHSTMT stmt, SQLSMALLINT sqltype)
 Internal return data type information.

SQLRETURN SQL_API SQLGetTypeInfoW (SQLHSTMT stmt, SQLSMALLINT sqltype)
 Return data type information (UNICODE version).

SQLRETURN drvstatistics (SQLHSTMT stmt, SQLCHAR *cat, SQLSMALLINT catLen, SQLCHAR *schema, SQLSMALLINT schemaLen, SQLCHAR *table, SQLSMALLINT tableLen, SQLUSMALLINT itype, SQLUSMALLINT resv)
 Internal return statistic information on table indices.

SQLRETURN SQL_API SQLStatisticsW (SQLHSTMT stmt, SQLWCHAR *cat, SQLSMALLINT catLen, SQLWCHAR *schema, SQLSMALLINT schemaLen, SQLWCHAR *table, SQLSMALLINT tableLen, SQLUSMALLINT itype, SQLUSMALLINT resv)
 Return statistic information on table indices (UNICODE version).

SQLRETURN SQL_API SQLGetData (SQLHSTMT stmt, SQLUSMALLINT col, SQLSMALLINT type, SQLPOINTER val, SQLLEN len, SQLLEN *lenp)
 Retrieve row data after fetch.

SQLRETURN dofetchbind (STMT *s, int rsi)
 Internal: fetch and bind from statement's current row.

SQLRETURN drvfetchscroll (SQLHSTMT stmt, SQLSMALLINT orient, SQLINTEGER offset)
 Internal fetch function for SQLFetchScroll() and SQLExtendedFetch().

SQLRETURN SQL_API SQLFetch (SQLHSTMT stmt)
 Fetch next result row.

SQLRETURN SQL_API SQLFetchScroll (SQLHSTMT stmt, SQLSMALLINT orient, SQLLEN offset)
 Fetch result row with scrolling.

SQLRETURN SQL_API SQLExtendedFetch (SQLHSTMT stmt, SQLUSMALLINT orient, SQLROWOFFSET offset, SQLROWSETSIZE *rowcount, SQLUSMALLINT *rowstatus)
 Fetch result row with scrolling and row status.

SQLRETURN SQL_API SQLRowCount (SQLHSTMT stmt, SQLLEN *nrows)
 Return number of affected rows of HSTMT.

SQLRETURN SQL_API SQLNumResultCols (SQLHSTMT stmt, SQLSMALLINT *ncols)
 Return number of columns of result set given HSTMT.

SQLRETURN drvdescribecol (SQLHSTMT stmt, SQLUSMALLINT col, SQLCHAR *name, SQLSMALLINT nameMax, SQLSMALLINT *nameLen, SQLSMALLINT *type, SQLULEN *size, SQLSMALLINT *digits, SQLSMALLINT *nullable)
 Internal describe column information.

SQLRETURN SQL_API SQLDescribeColW (SQLHSTMT stmt, SQLUSMALLINT col, SQLWCHAR *name, SQLSMALLINT nameMax, SQLSMALLINT *nameLen, SQLSMALLINT *type, SQLULEN *size, SQLSMALLINT *digits, SQLSMALLINT *nullable)
 Describe column information (UNICODE version).

SQLRETURN drvcolattributes (SQLHSTMT stmt, SQLUSMALLINT col, SQLUSMALLINT id, SQLPOINTER val, SQLSMALLINT valMax, SQLSMALLINT *valLen, SQLLEN *val2)
 Internal retrieve column attributes.


Variables

const char * xdigits = "0123456789ABCDEFabcdef"
const char upper_chars [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
const char lower_chars [] = "abcdefghijklmnopqrstuvwxyz"
const char digit_chars [] = "0123456789"
const char space_chars [] = " \f\n\r\t\v"
COL tablePrivSpec2 []
 Columns for result set of SQLTablePrivileges().

COL tablePrivSpec3 []
COL colPrivSpec2 []
 Columns for result set of SQLColumnPrivileges().

COL colPrivSpec3 []
COL pkeySpec2 []
 Columns for result set of SQLPrimaryKeys().

COL pkeySpec3 []
COL scolSpec2 []
 Columns for result set of SQLSpecialColumns().

COL scolSpec3 []
COL fkeySpec2 []
 Columns for result set of SQLForeignKeys().

COL fkeySpec3 []
COL procSpec2 []
 Columns for result set of SQLProcedures().

COL procSpec3 []
COL procColSpec2 []
 Columns for result set of SQLProcedureColumns().

COL procColSpec3 []
COL tableSpec2 []
 Columns for result set of SQLTables().

COL tableSpec3 []
COL colSpec2 []
 Columns for result set of SQLColumns().

COL colSpec3 []
COL typeSpec2 []
 Columns for result set of SQLGetTypeInfo().

COL typeSpec3 []
COL statSpec2 []
 Columns for result set of SQLStatistics().

COL statSpec3 []


Define Documentation

#define array_size      (sizeof (x) / sizeof (x[0]))
 

Definition at line 56 of file sqlite3odbc.c.

Referenced by drvcolumns(), drvforeignkeys(), drvgettypeinfo(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), drvtables(), fixupdyncols(), SQLColumnPrivilegesW(), SQLGetFunctions(), SQLProcedureColumnsW(), SQLProceduresW(), and SQLTablePrivilegesW().

#define CLR_EXISTS      flags[(x) >> 4] &= ~(1 << ((x) & 0xF))
 

#define COLATTRIBUTE_LAST_ARG_TYPE   SQLPOINTER
 

Definition at line 39 of file sqlite3odbc.c.

#define DBC_MAGIC   0x53544144
 

Definition at line 74 of file sqlite3odbc.c.

Referenced by drvallocconnect(), drvallocstmt(), drvconnect(), drvdisconnect(), drvfreeconnect(), freestmt(), and SQLCancel().

#define DEAD_MAGIC   0xdeadbeef
 

Definition at line 75 of file sqlite3odbc.c.

Referenced by drvfreeconnect(), drvfreeenv(), and drvgetstmtattr().

#define DRIVER_VER_INFO   "0.0"
 

Definition at line 32 of file sqlite3odbc.c.

Referenced by drvgetinfo().

#define drvgetgpps  
 

Definition at line 910 of file sqlite3odbc.c.

Referenced by drvallocconnect().

#define drvrelgpps  
 

Definition at line 911 of file sqlite3odbc.c.

Referenced by drvfreeconnect().

#define ENV_MAGIC   0x53544145
 

Definition at line 73 of file sqlite3odbc.c.

Referenced by drvallocconnect(), drvallocenv(), drvendtran(), drvfreeconnect(), drvfreeenv(), SQLAllocHandle(), SQLCancel(), SQLGetEnvAttr(), and SQLSetEnvAttr().

#define HDBC_LOCK hdbc   
 

Definition at line 308 of file sqlite3odbc.c.

Referenced by drvendtran(), drvgetdiagfield(), drvgetdiagrec(), SQLAllocHandle(), SQLAllocStmt(), SQLBrowseConnectW(), SQLConnectW(), SQLDisconnect(), SQLGetConnectAttrW(), SQLGetConnectOptionW(), SQLGetInfoW(), SQLSetConnectAttrW(), and SQLSetConnectOptionW().

#define HDBC_UNLOCK hdbc   
 

Definition at line 309 of file sqlite3odbc.c.

Referenced by drvendtran(), drvfreestmt(), drvgetdiagfield(), drvgetdiagrec(), SQLAllocHandle(), SQLAllocStmt(), SQLBrowseConnectW(), SQLConnectW(), SQLDisconnect(), SQLGetConnectAttrW(), SQLGetConnectOptionW(), SQLGetInfoW(), SQLSetConnectAttrW(), and SQLSetConnectOptionW().

#define HSTMT_LOCK hdbc   
 

Definition at line 310 of file sqlite3odbc.c.

Referenced by drvfreestmt(), drvgetdiagfield(), drvgetdiagrec(), SQLBindCol(), SQLBindParam(), SQLBindParameter(), SQLBulkOperations(), SQLColumnPrivilegesW(), SQLColumnsW(), SQLDescribeColW(), SQLDescribeParam(), SQLExtendedFetch(), SQLFetch(), SQLFetchScroll(), SQLForeignKeysW(), SQLGetCursorNameW(), SQLGetData(), SQLGetStmtAttrW(), SQLGetStmtOption(), SQLGetStmtOptionW(), SQLGetTypeInfoW(), SQLNativeSqlW(), SQLNumParams(), SQLNumResultCols(), SQLParamData(), SQLParamOptions(), SQLPrimaryKeysW(), SQLProcedureColumnsW(), SQLProceduresW(), SQLPutData(), SQLRowCount(), SQLSetCursorNameW(), SQLSetParam(), SQLSetPos(), SQLSetScrollOptions(), SQLSetStmtAttrW(), SQLSetStmtOption(), SQLSetStmtOptionW(), SQLSpecialColumnsW(), SQLStatisticsW(), SQLTablePrivilegesW(), and SQLTablesW().

#define HSTMT_UNLOCK hdbc   
 

Definition at line 311 of file sqlite3odbc.c.

Referenced by drvgetdiagfield(), drvgetdiagrec(), SQLBindCol(), SQLBindParam(), SQLBindParameter(), SQLBulkOperations(), SQLColumnPrivilegesW(), SQLColumnsW(), SQLDescribeColW(), SQLDescribeParam(), SQLExtendedFetch(), SQLFetch(), SQLFetchScroll(), SQLForeignKeysW(), SQLGetCursorNameW(), SQLGetData(), SQLGetStmtAttrW(), SQLGetStmtOption(), SQLGetStmtOptionW(), SQLGetTypeInfoW(), SQLNativeSqlW(), SQLNumParams(), SQLNumResultCols(), SQLParamData(), SQLParamOptions(), SQLPrimaryKeysW(), SQLProcedureColumnsW(), SQLProceduresW(), SQLPutData(), SQLRowCount(), SQLSetCursorNameW(), SQLSetParam(), SQLSetPos(), SQLSetScrollOptions(), SQLSetStmtAttrW(), SQLSetStmtOption(), SQLSetStmtOptionW(), SQLSpecialColumnsW(), SQLStatisticsW(), SQLTablePrivilegesW(), and SQLTablesW().

#define ISDIGIT      ((c) && strchr(digit_chars, (c)) != NULL)
 

Definition at line 346 of file sqlite3odbc.c.

Referenced by str2date(), str2time(), and str2timestamp().

#define ISSPACE      ((c) && strchr(space_chars, (c)) != NULL)
 

Definition at line 355 of file sqlite3odbc.c.

Referenced by drvcolattributes(), drvgettable(), and fixupsql().

#define max a,
     ((a) < (b) ? (b) : (a))
 

Definition at line 50 of file sqlite3odbc.c.

Referenced by drvbindcol(), drvbindparam(), setsqliteopts(), and SQLBindCol().

#define min a,
     ((a) < (b) ? (a) : (b))
 

Definition at line 48 of file sqlite3odbc.c.

Referenced by drvallocconnect(), drvcolumns(), drvconnect(), drvdriverconnect(), drvforeignkeys(), drvgetcursorname(), drvprimarykeys(), drvputdata(), drvsetcursorname(), drvspecialcolumns(), drvstatistics(), drvtables(), getdsnattr(), getrowdata(), SQLDescribeColW(), SQLGetCursorNameW(), SQLGetDiagFieldW(), SQLGetDiagRecW(), SQLGetInfoW(), and SQLNativeSqlW().

#define ODBC_INI   ".odbc.ini"
 

Definition at line 28 of file sqlite3odbc.c.

Referenced by drvconnect(), and drvdriverconnect().

#define PTRDIFF_T   int
 

Definition at line 53 of file sqlite3odbc.c.

Referenced by drvcolumns(), drvforeignkeys(), drvprimarykeys(), drvsetstmtattr(), drvspecialcolumns(), drvstatistics(), freerows(), and s3stmt_step().

#define SCOL_CHAR   SQL_WCHAR
 

Definition at line 67 of file sqlite3odbc.c.

#define SCOL_VARCHAR   SQL_WVARCHAR
 

Definition at line 66 of file sqlite3odbc.c.

#define SET_EXISTS      flags[(x) >> 4] |= (1 << ((x) & 0xF))
 

#define SETSTMTOPTION_LAST_ARG_TYPE   SQLROWCOUNT
 

Definition at line 44 of file sqlite3odbc.c.

Referenced by SQLSetStmtOption(), and SQLSetStmtOptionW().

#define stringify      stringify1(s)
 

Definition at line 59 of file sqlite3odbc.c.

Referenced by drvcolumns(), drvforeignkeys(), drvspecialcolumns(), drvstatistics(), and mktypeinfo().

#define stringify1      #s
 

Definition at line 58 of file sqlite3odbc.c.

#define strmak dst,
src,
max,
lenp   
 

Value:

{ \
    int len = strlen(src); \
    int cnt = min(len + 1, max); \
    strncpy(dst, src, cnt); \
    *lenp = (cnt > len) ? len : cnt; \
}

Definition at line 7785 of file sqlite3odbc.c.

Referenced by drvgetinfo().

#define verinfo maj,
min,
lev       ((maj) << 16 | (min) << 8 | (lev))
 

Definition at line 61 of file sqlite3odbc.c.

Referenced by drvallocconnect().

#define WINTERFACE
 

Definition at line 17 of file sqlite3odbc.c.

#define xfree      free(x)
 

Definition at line 203 of file sqlite3odbc.c.

Referenced by drvfreeconnect(), drvfreeenv(), freep(), freestmt(), mapsqltype(), and uc_free().

#define xmalloc      malloc(x)
 

Definition at line 201 of file sqlite3odbc.c.

Referenced by drvallocconnect(), drvallocenv(), drvallocstmt(), drvbindparam(), drvcolumns(), drvforeignkeys(), drvgettable(), drvgettable_row(), drvgettypeinfo(), drvprimarykeys(), drvputdata(), drvsetstmtattr(), drvsetstmtoption(), drvspecialcolumns(), drvstatistics(), drvtables(), fixupdyncols(), fixupsql(), getrowdata(), mapsqltype(), mkbindcols(), s3stmt_step(), setupparam(), setupparbuf(), strdup_(), uc_from_utf(), and uc_to_utf().

#define xrealloc x,
     realloc(x, y)
 

Definition at line 202 of file sqlite3odbc.c.

Referenced by drvbindparam(), drvgettable_row(), and mkbindcols().

#define xstrdup      strdup_(x)
 

Definition at line 204 of file sqlite3odbc.c.

Referenced by dbopen(), drvcolumns(), drvforeignkeys(), drvgettable_row(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), fixupdyncols(), and s3stmt_step().


Typedef Documentation

typedef struct tblres TBLRES
 


Function Documentation

int busy_handler void *    udata,
int    count
[static]
 

Busy callback for SQLite.

Parameters:
udata  user data, pointer to DBC
count  count of subsequenct calls
Returns:
true or false

Definition at line 1606 of file sqlite3odbc.c.

References dbc::busyint, dbc::t0, and dbc::timeout.

Referenced by endtran(), setsqliteopts(), and starttran().

void dbloadext DBC   d,
char *    exts
[static]
 

Load SQLite extension modules, if any.

Parameters:
d  DBC pointer
exts  string, comma separated extension names

Definition at line 3099 of file sqlite3odbc.c.

References dbc::sqlite.

Referenced by drvconnect(), and drvdriverconnect().

SQLRETURN dbopen DBC   d,
char *    name,
int    isu,
char *    dsn,
char *    sflag,
char *    spflag,
char *    ntflag,
char *    jmode,
char *    busy
[static]
 

Open SQLite database file given file name and flags.

Parameters:
d  DBC pointer
name  file name
isu  true/false: file name is UTF8 encoded
dsn  data source name
sflag  STEPAPI flag
spflag  SyncPragma string
ntflag  NoTransaction string
jmode  JournalMode string
busy  busy/lock timeout
Returns:
ODBC error code

Definition at line 2917 of file sqlite3odbc.c.

References dbc::curtype, dbc::dbname, dbtrace(), dbc::dsn, freep(), getbool(), dbc::nocreat, dbc::ov3, setsqliteopts(), setstatd(), dbc::sqlite, dbc::step_enable, dbc::timeout, dbc::trace, dbc::trans_disable, uc_free(), and xstrdup.

Referenced by drvconnect(), and drvdriverconnect().

void dbtrace void *    arg,
const char *    msg
[static]
 

SQLite trace callback.

Parameters:
arg  DBC pointer
msg  log message, SQL text

Definition at line 2846 of file sqlite3odbc.c.

References dbc::trace.

Referenced by dbopen().

void dbtraceapi DBC   d,
char *    fn,
const char *    sql
[static]
 

Trace function for SQLite API calls.

Parameters:
d  pointer to database connection handle
fn  SQLite function name
sql  SQL string

Definition at line 2873 of file sqlite3odbc.c.

References dbc::trace.

Referenced by drvcolumns(), drvforeignkeys(), drvgettable(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), drvtables(), fixupdyncols(), s3stmt_drop(), s3stmt_end(), s3stmt_start(), and s3stmt_step().

void dbtracerc DBC   d,
int    rc,
char *    err
[static]
 

Trace function for SQLite return codes.

Parameters:
d  pointer to database connection handle
rc  SQLite return code
err  error string or NULL

Definition at line 2893 of file sqlite3odbc.c.

References dbc::trace.

Referenced by endtran(), s3stmt_start(), and starttran().

SQLRETURN dofetchbind STMT   s,
int    rsi
[static]
 

Internal: fetch and bind from statement's current row.

Parameters:
s  statement pointer
rsi  rowset index
Returns:
ODBC error code

Definition at line 12733 of file sqlite3odbc.c.

References stmt::bind_offs, stmt::bind_type, stmt::bindcols, stmt::bkmrk, stmt::bkmrkcol, getrowdata(), BINDCOL::lenp, BINDCOL::max, stmt::ncols, BINDCOL::offs, stmt::row_status0, stmt::rowp, SQLLEN, BINDCOL::type, and BINDCOL::valp.

Referenced by drvfetchscroll().

SQLRETURN drvallocconnect SQLHENV    env,
SQLHDBC *    dbc
[static]
 

Internal allocate HDBC.

Parameters:
env  environment handle
dbc  pointer to database connection handle
Returns:
ODBC error code

Definition at line 8654 of file sqlite3odbc.c.

References dbc::autocommit, dbc::curtype, DBC_MAGIC, ENV::dbcs, drvgetgpps, dbc::env, ENV_MAGIC, dbc::magic, ENV::magic, min, dbc::next, ENV::ov3, dbc::ov3, dbc::ov3val, verinfo, dbc::version, and xmalloc.

Referenced by SQLAllocConnect(), and SQLAllocHandle().

SQLRETURN drvallocenv SQLHENV *    env [static]
 

Internal allocate HENV.

Parameters:
env  pointer to environment handle
Returns:
ODBC error code

Definition at line 8556 of file sqlite3odbc.c.

References ENV::dbcs, ENV_MAGIC, ENV::magic, ENV::ov3, and xmalloc.

Referenced by SQLAllocEnv(), and SQLAllocHandle().

SQLRETURN drvallocstmt SQLHDBC    dbc,
SQLHSTMT *    stmt
[static]
 

Allocate HSTMT given HDBC (driver internal version).

Parameters:
dbc  database connection handle
stmt  pointer to statement handle
Returns:
ODBC error code

Definition at line 9885 of file sqlite3odbc.c.

References stmt::bind_offs, stmt::bind_type, stmt::cursorname, dbc::curtype, stmt::curtype, stmt::dbc, DBC_MAGIC, dbc::longnames, stmt::longnames, dbc::magic, stmt::max_rows, stmt::next, dbc::nowchar, stmt::nowchar, dbc::ov3, stmt::ov3, stmt::paramset_size, stmt::parm_bind_type, stmt::retr_data, stmt::row_status0, stmt::row_status1, stmt::rowset_size, dbc::stmt, and xmalloc.

Referenced by SQLAllocHandle(), and SQLAllocStmt().

SQLRETURN drvbindcol SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLSMALLINT    type,
SQLPOINTER    val,
SQLLEN    max,
SQLLEN *    lenp
[static]
 

Interal bind C variable to column of result set.

Parameters:
stmt  statement handle
col  column number, starting at 1
type  output type
val  output buffer
max  length of output buffer
lenp  output length pointer
Returns:
ODBC error code

Definition at line 10933 of file sqlite3odbc.c.

References stmt::bindcols, stmt::bkmrk, stmt::bkmrkcol, stmt::cols, BINDCOL::lenp, mapdeftype(), BINDCOL::max, max, mkbindcols(), stmt::nowchar, BINDCOL::offs, stmt::ov3, setstat(), SQLLEN, COL::type, BINDCOL::type, and BINDCOL::valp.

Referenced by SQLBindCol().

SQLRETURN drvbindparam SQLHSTMT    stmt,
SQLUSMALLINT    pnum,
SQLSMALLINT    iotype,
SQLSMALLINT    buftype,
SQLSMALLINT    ptype,
SQLUINTEGER    coldef,
SQLSMALLINT    scale,
SQLPOINTER    data,
SQLINTEGER    buflen,
SQLLEN *    len
[static]
 

Internal bind parameter on HSTMT.

Parameters:
stmt  statement handle
pnum  parameter number, starting at 1
iotype  input/output type of parameter
buftype  type of host variable
ptype 
coldef 
scale 
data  pointer to host variable
buflen  length of host variable
len  output length pointer
Returns:
ODBC error code

Definition at line 4203 of file sqlite3odbc.c.

References stmt::bindparms, BINDPARM::bound, BINDPARM::coldef, freep(), BINDPARM::inc, BINDPARM::len, BINDPARM::lenp, BINDPARM::lenp0, BINDPARM::max, max, stmt::nbindparms, BINDPARM::need, nomem(), BINDPARM::offs, stmt::ov3, BINDPARM::param, BINDPARM::param0, BINDPARM::parbuf, BINDPARM::scale, setstat(), SQLLEN, BINDPARM::stype, BINDPARM::type, xmalloc, and xrealloc.

Referenced by SQLBindParam(), SQLBindParameter(), and SQLSetParam().

SQLRETURN drvcolattributes SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLUSMALLINT    id,
SQLPOINTER    val,
SQLSMALLINT    valMax,
SQLSMALLINT *    valLen,
SQLLEN *    val2
[static]
 

Internal retrieve column attributes.

Parameters:
stmt  statement handle
col  column number, starting at 1
id  attribute id
val  output buffer
valMax  length of output buffer
valLen  output length
val2  integer output buffer
Returns:
ODBC error code

Definition at line 13322 of file sqlite3odbc.c.

References COL::autoinc, stmt::cols, COL::column, ISSPACE, COL::label, stmt::ncols, COL::nosign, COL::notnull, stmt::nowchar, stmt::ov3, COL::prec, COL::scale, setstat(), COL::size, SQLLEN, COL::table, COL::type, and COL::typename.

SQLRETURN drvcolumns SQLHSTMT    stmt,
SQLCHAR *    cat,
SQLSMALLINT    catLen,
SQLCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLCHAR *    table,
SQLSMALLINT    tableLen,
SQLCHAR *    col,
SQLSMALLINT    colLen
[static]
 

Internal retrieve column information on table.

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
col  column name/pattern or NULL
colLen  length of column name/pattern or SQL_NTS
Returns:
ODBC error code

Definition at line 11450 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), freerows(), getmd(), mapsqltype(), min, mkresultset(), namematch(), nomem(), stmt::nowchar, stmt::nrows, stmt::ov3, PTRDIFF_T, stmt::rowfree, stmt::rows, setstat(), dbc::sqlite, starttran(), stringify, unescpat(), unquote(), xmalloc, and xstrdup.

Referenced by SQLColumnsW().

SQLRETURN drvconnect SQLHDBC    dbc,
SQLCHAR *    dsn,
SQLSMALLINT    dsnLen,
int    isu
[static]
 

Internal connect to SQLite database.

Parameters:
dbc  database connection handle
dsn  DSN string
dsnLen  length of DSN string or SQL_NTS
isu  true/false: file name is UTF8 encoded
Returns:
ODBC error code

Definition at line 9365 of file sqlite3odbc.c.

References DBC_MAGIC, dbloadext(), dbopen(), getbool(), getdsnattr(), dbc::longnames, dbc::magic, min, dbc::nocreat, dbc::nowchar, ODBC_INI, dbc::ov3, setstatd(), dbc::shortnames, dbc::sqlite, dbc::trace, and uc_free().

Referenced by SQLConnectW().

SQLRETURN drvdescribecol SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLCHAR *    name,
SQLSMALLINT    nameMax,
SQLSMALLINT *    nameLen,
SQLSMALLINT *    type,
SQLULEN *    size,
SQLSMALLINT *    digits,
SQLSMALLINT *    nullable
[static]
 

Internal describe column information.

Parameters:
stmt  statement handle
col  column number, starting at 1
name  buffer for column name
nameMax  length of name buffer
nameLen  output length of column name
type  output SQL type
size  output column size
digits  output number of digits
nullable  output NULL allowed indicator
Returns:
ODBC error code

Definition at line 13145 of file sqlite3odbc.c.

References stmt::cols, COL::column, stmt::ncols, stmt::nowchar, stmt::ov3, setstat(), COL::size, SQLULEN, and COL::type.

Referenced by SQLDescribeColW().

SQLRETURN drvdisconnect SQLHDBC    dbc [static]
 

Internal disconnect given HDBC.

Parameters:
dbc  database connection handle
Returns:
ODBC error code

Definition at line 9568 of file sqlite3odbc.c.

References dbc::cur_s3stmt, DBC_MAGIC, dbc::dbname, dbc::dsn, freep(), dbc::intrans, dbc::magic, s3stmt_end(), setstatd(), dbc::sqlite, and dbc::trace.

Referenced by SQLDisconnect().

SQLRETURN drvdriverconnect SQLHDBC    dbc,
SQLHWND    hwnd,
SQLCHAR *    connIn,
SQLSMALLINT    connInLen,
SQLCHAR *    connOut,
SQLSMALLINT    connOutMax,
SQLSMALLINT *    connOutLen,
SQLUSMALLINT    drvcompl
[static]
 

Internal standalone (w/o driver manager) database connect.

Parameters:
dbc  database connection handle
hwnd  dummy window handle or NULL
connIn  driver connect input string
connInLen  length of driver connect input string or SQL_NTS
connOut  driver connect output string
connOutMax  length of driver connect output string
connOutLen  output length of driver connect output string
drvcompl  completion type
Returns:
ODBC error code

Definition at line 9633 of file sqlite3odbc.c.

References dbloadext(), dbopen(), getbool(), getdsnattr(), dbc::longnames, min, dbc::nocreat, dbc::nowchar, ODBC_INI, dbc::ov3, setstatd(), dbc::shortnames, dbc::sqlite, and dbc::trace.

SQLRETURN drvendtran SQLSMALLINT    type,
SQLHANDLE    handle,
SQLSMALLINT    comptype
[static]
 

Internal commit or rollback transaction.

Parameters:
type  type of handle
handle  HDBC, HENV, or HSTMT handle
comptype  SQL_COMMIT or SQL_ROLLBACK
Returns:
ODBC error code

Definition at line 6232 of file sqlite3odbc.c.

References endtran(), ENV_MAGIC, HDBC_LOCK, HDBC_UNLOCK, ENV::magic, and dbc::next.

Referenced by SQLEndTran(), and SQLTransact().

SQLRETURN drvexecute SQLHSTMT    stmt,
int    initial
[static]
 

Referenced by SQLParamData().

SQLRETURN drvfetchscroll SQLHSTMT    stmt,
SQLSMALLINT    orient,
SQLINTEGER    offset
[static]
 

Internal fetch function for SQLFetchScroll() and SQLExtendedFetch().

Parameters:
stmt  statement handle
orient  fetch direction
offset  offset for fetch direction
Returns:
ODBC error code

Definition at line 12821 of file sqlite3odbc.c.

References stmt::bindcols, stmt::bkmrk, stmt::curtype, stmt::dbc, dofetchbind(), stmt::isselect, stmt::max_rows, stmt::nrows, stmt::row_count, stmt::row_count0, stmt::row_status, stmt::row_status0, stmt::rowp, stmt::rows, stmt::rowset_size, stmt::s3stmt, stmt::s3stmt_rownum, s3stmt_step(), and setstat().

Referenced by SQLExtendedFetch(), SQLFetch(), and SQLFetchScroll().

SQLRETURN SQL_API drvforeignkeys SQLHSTMT    stmt,
SQLCHAR *    PKcatalog,
SQLSMALLINT    PKcatalogLen,
SQLCHAR *    PKschema,
SQLSMALLINT    PKschemaLen,
SQLCHAR *    PKtable,
SQLSMALLINT    PKtableLen,
SQLCHAR *    FKcatalog,
SQLSMALLINT    FKcatalogLen,
SQLCHAR *    FKschema,
SQLSMALLINT    FKschemaLen,
SQLCHAR *    FKtable,
SQLSMALLINT    FKtableLen
[static]
 

Internal retrieve information about primary/foreign keys.

Parameters:
stmt  statement handle
PKcatalog  primary key catalog name/pattern or NULL
PKcatalogLen  length of PKcatalog or SQL_NTS
PKschema  primary key schema name/pattern or NULL
PKschemaLen  length of PKschema or SQL_NTS
PKtable  primary key table name/pattern or NULL
PKtableLen  length of PKtable or SQL_NTS
FKcatalog  foreign key catalog name/pattern or NULL
FKcatalogLen  length of FKcatalog or SQL_NTS
FKschema  foreign key schema name/pattern or NULL
FKschemaLen  length of FKschema or SQL_NTS
FKtable  foreign key table name/pattern or NULL
FKtableLen  length of FKtable or SQL_NTS
Returns:
ODBC error code

Definition at line 5675 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), findcol(), freerows(), min, mkresultset(), stmt::ncols, nomem(), stmt::nrows, stmt::ov3, PTRDIFF_T, stmt::rowfree, stmt::rows, setstat(), dbc::sqlite, starttran(), stringify, unquote(), xmalloc, and xstrdup.

Referenced by SQLForeignKeysW().

SQLRETURN drvfreeconnect SQLHDBC    dbc [static]
 

Internal free connection (HDBC).

Parameters:
dbc  database connection handle
Returns:
ODBC error code

Definition at line 8732 of file sqlite3odbc.c.

References DBC_MAGIC, ENV::dbcs, DEAD_MAGIC, drvrelgpps, dbc::env, ENV_MAGIC, freestmt(), ENV::magic, dbc::magic, dbc::next, dbc::ov3, setstatd(), dbc::sqlite, dbc::stmt, dbc::trace, and xfree.

Referenced by SQLFreeConnect(), and SQLFreeHandle().

SQLRETURN drvfreeenv SQLHENV    env [static]
 

Internal free HENV.

Parameters:
env  environment handle
Returns:
ODBC error code

Definition at line 8602 of file sqlite3odbc.c.

References ENV::dbcs, DEAD_MAGIC, ENV_MAGIC, ENV::magic, and xfree.

Referenced by SQLFreeEnv(), and SQLFreeHandle().

SQLRETURN drvfreestmt SQLHSTMT    stmt,
SQLUSMALLINT    opt
[static]
 

Internal function to perform certain kinds of free/close on STMT.

Parameters:
stmt  statement handle
opt  SQL_RESET_PARAMS, SQL_UNBIND, SQL_CLOSE, or SQL_DROP
Returns:
ODBC error code

Definition at line 9963 of file sqlite3odbc.c.

References stmt::dbc, freeparams(), freeresult(), freestmt(), HDBC_UNLOCK, HSTMT_LOCK, stmt::ov3, s3stmt_end_if(), setstat(), and unbindcols().

Referenced by SQLCancel(), SQLCloseCursor(), SQLFreeHandle(), and SQLFreeStmt().

SQLRETURN drvgetconnectattr SQLHDBC    dbc,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    bufmax,
SQLINTEGER *    buflen
[static]
 

Internal get connect attribute of HDBC.

Parameters:
dbc  database connection handle
attr  option to be retrieved
val  output buffer
bufmax  size of output buffer
buflen  output length
Returns:
ODBC error code

Definition at line 8821 of file sqlite3odbc.c.

References dbc::autocommit, dbc::curtype, dbc::ov3, setstatd(), and dbc::sqlite.

Referenced by SQLGetConnectAttrW().

SQLRETURN drvgetconnectoption SQLHDBC    dbc,
SQLUSMALLINT    opt,
SQLPOINTER    param
[static]
 

Internal get connect option of HDBC.

Parameters:
dbc  database connection handle
opt  option to be retrieved
param  output buffer
Returns:
ODBC error code

Definition at line 9103 of file sqlite3odbc.c.

References dbc::autocommit, dbc::curtype, dbc::ov3, and setstatd().

Referenced by SQLGetConnectOptionW().

SQLRETURN drvgetcursorname SQLHSTMT    stmt,
SQLCHAR *    cursor,
SQLSMALLINT    buflen,
SQLSMALLINT *    lenp
[static]
 

Internal function to get cursor name of STMT.

Parameters:
stmt  statement handle
cursor  output buffer
buflen  length of output buffer
lenp  output length
Returns:
ODBC error code

Definition at line 10058 of file sqlite3odbc.c.

References stmt::cursorname, and min.

Referenced by SQLGetCursorNameW().

SQLRETURN drvgetdiagfield SQLSMALLINT    htype,
SQLHANDLE    handle,
SQLSMALLINT    recno,
SQLSMALLINT    id,
SQLPOINTER    info,
SQLSMALLINT    buflen,
SQLSMALLINT *    stringlen
[static]
 

Get error record given handle (HDBC or HSTMT).

Parameters:
htype  handle type
handle  HDBC or HSTMT
recno  diag record number for which info to be retrieved
id  diag id for which info to be retrieved
info  output buffer for error message
buflen  length of output buffer
stringlen  output length
Returns:
ODBC error code

Definition at line 6950 of file sqlite3odbc.c.

References stmt::dbc, dbc::dsn, HDBC_LOCK, HDBC_UNLOCK, HSTMT_LOCK, HSTMT_UNLOCK, stmt::logmsg, dbc::logmsg, stmt::naterr, dbc::naterr, stmt::sqlstate, and dbc::sqlstate.

Referenced by SQLGetDiagFieldW().

SQLRETURN drvgetdiagrec SQLSMALLINT    htype,
SQLHANDLE    handle,
SQLSMALLINT    recno,
SQLCHAR *    sqlstate,
SQLINTEGER *    nativeerr,
SQLCHAR *    msg,
SQLSMALLINT    buflen,
SQLSMALLINT *    msglen
[static]
 

Internal get error message given handle (HENV, HDBC, or HSTMT).

Parameters:
htype  handle type
handle  HENV, HDBC, or HSTMT
recno 
sqlstate  output buffer for SQL state
nativeerr  output buffer of native error code
msg  output buffer for error message
buflen  length of output buffer
msglen  output length
Returns:
ODBC error code

Definition at line 6741 of file sqlite3odbc.c.

References HDBC_LOCK, HDBC_UNLOCK, HSTMT_LOCK, HSTMT_UNLOCK, stmt::logmsg, dbc::logmsg, stmt::naterr, dbc::naterr, stmt::sqlstate, and dbc::sqlstate.

Referenced by SQLGetDiagRecW().

SQLRETURN drvgetinfo SQLHDBC    dbc,
SQLUSMALLINT    type,
SQLPOINTER    val,
SQLSMALLINT    valMax,
SQLSMALLINT *    valLen
[static]
 

Internal return information about what this ODBC driver supports.

Parameters:
dbc  database connection handle
type  type of information to be retrieved
val  output buffer
valMax  length of output buffer
valLen  output length
Returns:
ODBC error code

Definition at line 7803 of file sqlite3odbc.c.

References dbc::dbname, DRIVER_VER_INFO, dbc::dsn, dbc::ov3, setstatd(), and strmak.

Referenced by SQLGetInfoW().

SQLRETURN drvgetstmtattr SQLHSTMT    stmt,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    bufmax,
SQLINTEGER *    buflen
[static]
 

Internal get option of HSTMT.

Parameters:
stmt  statement handle
attr  attribute to be retrieved
val  output buffer
bufmax  length of output buffer
buflen  output length
Returns:
ODBC error code

Definition at line 7187 of file sqlite3odbc.c.

References stmt::bind_offs, stmt::bind_type, stmt::bkmrk, stmt::curtype, DEAD_MAGIC, drvunimplstmt(), stmt::max_rows, stmt::paramset_size, stmt::parm_bind_offs, stmt::parm_bind_type, stmt::parm_oper, stmt::parm_proc, stmt::parm_status, stmt::retr_data, stmt::row_count, stmt::row_status, stmt::rowp, stmt::rowset_size, stmt::s3stmt, and stmt::s3stmt_rownum.

Referenced by SQLGetStmtAttrW().

SQLRETURN drvgetstmtoption SQLHSTMT    stmt,
SQLUSMALLINT    opt,
SQLPOINTER    param
[static]
 

Internal get option of HSTMT.

Parameters:
stmt  statement handle
opt  option to be retrieved
param  output buffer
Returns:
ODBC error code

Definition at line 7521 of file sqlite3odbc.c.

References stmt::curtype, drvunimplstmt(), stmt::max_rows, stmt::retr_data, stmt::rowp, stmt::rowset_size, stmt::s3stmt, and stmt::s3stmt_rownum.

Referenced by SQLGetStmtOption(), and SQLGetStmtOptionW().

int drvgettable STMT   s,
const char *    sql,
char ***    resp,
int *    nrowp,
int *    ncolp,
char **    errp,
int    nparam,
BINDPARM   p
[static]
 

Definition at line 1102 of file sqlite3odbc.c.

References stmt::dbc, dbtraceapi(), drvgettable_row(), tblres::errmsg, freerows(), ISSPACE, stmt::max_rows, tblres::nalloc, tblres::ncol, tblres::ndata, tblres::nres, tblres::nrow, tblres::rc, tblres::resarr, tblres::s, s3bind(), stmt::s3stmt, stmt::s3stmt_noreset, dbc::sqlite, tblres::stmt, and xmalloc.

int drvgettable_row TBLRES   t,
int    ncol,
int    rc
[static]
 

Definition at line 1010 of file sqlite3odbc.c.

References tblres::errmsg, stmt::guessed_types, tblres::nalloc, tblres::ncol, stmt::ncols, tblres::ndata, nomem(), tblres::nrow, tblres::rc, tblres::resarr, tblres::s, setupdyncols(), tblres::stmt, xdigits, xmalloc, xrealloc, and xstrdup.

Referenced by drvgettable().

SQLRETURN drvgettypeinfo SQLHSTMT    stmt,
SQLSMALLINT    sqltype
[static]
 

Internal return data type information.

Parameters:
stmt  statement handle
sqltype  which type to retrieve
Returns:
ODBC error code

Definition at line 12053 of file sqlite3odbc.c.

References array_size, stmt::dbc, mkresultset(), mktypeinfo(), nomem(), stmt::nrows, stmt::ov3, stmt::rowfree, stmt::rows, typeinfosort(), and xmalloc.

Referenced by SQLGetTypeInfoW().

SQLRETURN drvprimarykeys SQLHSTMT    stmt,
SQLCHAR *    cat,
SQLSMALLINT    catLen,
SQLCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLCHAR *    table,
SQLSMALLINT    tableLen
[static]
 

Internal retrieve information about indexed columns.

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
Returns:
ODBC error code

Definition at line 4897 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), findcol(), freerows(), min, mkresultset(), stmt::ncols, nomem(), stmt::nrows, stmt::ov3, PTRDIFF_T, stmt::rowfree, stmt::rows, setstat(), dbc::sqlite, starttran(), unescpat(), xmalloc, and xstrdup.

Referenced by SQLPrimaryKeysW().

SQLRETURN drvputdata SQLHSTMT    stmt,
SQLPOINTER    data,
SQLLEN    len
[static]
 

Internal put (partial) parameter data into executing statement.

Parameters:
stmt  statement handle
data  pointer to data
len  length of data
Returns:
ODBC error code

Definition at line 3728 of file sqlite3odbc.c.

References stmt::bindparms, BINDPARM::coldef, freep(), BINDPARM::len, mapdeftype(), min, BINDPARM::need, nomem(), stmt::nowchar, stmt::nparams, BINDPARM::offs, BINDPARM::param, BINDPARM::parbuf, stmt::query, setstat(), SQLLEN, BINDPARM::stype, BINDPARM::type, uc_free(), uc_to_utf(), and xmalloc.

Referenced by SQLPutData().

SQLRETURN drvsetconnectattr SQLHDBC    dbc,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    len
[static]
 

Internal set connect attribute of HDBC.

Parameters:
dbc  database connection handle
attr  option to be set
val  option value
len  size of option
Returns:
ODBC error code

Definition at line 9005 of file sqlite3odbc.c.

References dbc::autocommit, dbc::cur_s3stmt, endtran(), dbc::intrans, s3stmt_end(), and setstatd().

Referenced by SQLSetConnectAttrW().

SQLRETURN drvsetconnectoption SQLHDBC    dbc,
SQLUSMALLINT    opt,
SQLUINTEGER    param
[static]
 

Internal set option on HDBC.

Parameters:
dbc  database connection handle
opt  option to be set
param  option value
Returns:
ODBC error code

Definition at line 9245 of file sqlite3odbc.c.

References dbc::autocommit, dbc::cur_s3stmt, endtran(), dbc::intrans, s3stmt_end(), and setstatd().

Referenced by SQLSetConnectOptionW().

SQLRETURN drvsetcursorname SQLHSTMT    stmt,
SQLCHAR *    cursor,
SQLSMALLINT    len
[static]
 

Internal function to set cursor name on STMT.

Parameters:
stmt  statement handle
cursor  new cursor name
len  length of cursor name or SQL_NTS
Returns:
ODBC error code

Definition at line 10161 of file sqlite3odbc.c.

References stmt::cursorname, min, stmt::ov3, and setstat().

Referenced by SQLSetCursorNameW().

SQLRETURN drvsetpos SQLHSTMT    stmt,
SQLSETPOSIROW    row,
SQLUSMALLINT    op,
SQLUSMALLINT    lock
[static]
 

Internal set position on result in HSTMT.

Parameters:
stmt  statement handle
row  row to be positioned
op  operation code
lock  locking type
Returns:
ODBC error code

Definition at line 7734 of file sqlite3odbc.c.

References drvunimplstmt(), stmt::nrows, stmt::ov3, stmt::rowp, stmt::rows, setstat(), and SQLSETPOSIROW.

Referenced by SQLSetPos().

SQLRETURN drvsetstmtattr SQLHSTMT    stmt,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    buflen
[static]
 

Internal set option on HSTMT.

Parameters:
stmt  statement handle
attr  attribute to be set
val  input buffer (attribute value)
buflen  length of input buffer
Returns:
ODBC error code

Definition at line 7340 of file sqlite3odbc.c.

References stmt::bind_offs, stmt::bind_type, stmt::bkmrk, stmt::curtype, drvunimplstmt(), freep(), stmt::max_rows, nomem(), stmt::paramset_count, stmt::paramset_size, stmt::parm_bind_offs, stmt::parm_bind_type, stmt::parm_oper, stmt::parm_proc, stmt::parm_status, PTRDIFF_T, stmt::retr_data, stmt::row_count, stmt::row_status, stmt::row_status0, stmt::row_status1, stmt::rowset_size, setstat(), and xmalloc.

Referenced by SQLSetStmtAttrW().

SQLRETURN drvsetstmtoption SQLHSTMT    stmt,
SQLUSMALLINT    opt,
SQLUINTEGER    param
[static]
 

Internal set option on HSTMT.

Parameters:
stmt  statement handle
opt  option to be set
param  input buffer (option value)
Returns:
ODBC error code

Definition at line 7613 of file sqlite3odbc.c.

References stmt::curtype, drvunimplstmt(), freep(), stmt::max_rows, nomem(), stmt::retr_data, stmt::row_status0, stmt::row_status1, stmt::rowset_size, setstat(), and xmalloc.

Referenced by SQLSetStmtOption(), and SQLSetStmtOptionW().

SQLRETURN drvspecialcolumns SQLHSTMT    stmt,
SQLUSMALLINT    id,
SQLCHAR *    cat,
SQLSMALLINT    catLen,
SQLCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLCHAR *    table,
SQLSMALLINT    tableLen,
SQLUSMALLINT    scope,
SQLUSMALLINT    nullable
[static]
 

Internal retrieve information about indexed columns.

Parameters:
stmt  statement handle
id  type of information, e.g. best row id
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
scope 
nullable 
Returns:
ODBC error code

Definition at line 5266 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), findcol(), freep(), freerows(), getmd(), mapsqltype(), min, mkresultset(), stmt::ncols, nomem(), stmt::nowchar, stmt::nrows, stmt::ov3, PTRDIFF_T, stmt::rowfree, stmt::rows, setstat(), dbc::sqlite, starttran(), stringify, unescpat(), xmalloc, and xstrdup.

Referenced by SQLSpecialColumnsW().

SQLRETURN drvstatistics SQLHSTMT    stmt,
SQLCHAR *    cat,
SQLSMALLINT    catLen,
SQLCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLCHAR *    table,
SQLSMALLINT    tableLen,
SQLUSMALLINT    itype,
SQLUSMALLINT    resv
[static]
 

Internal return statistic information on table indices.

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
itype  type of index information
resv  reserved
Returns:
ODBC error code

Definition at line 12336 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), findcol(), freerows(), min, mkresultset(), stmt::ncols, nomem(), stmt::nrows, stmt::ov3, PTRDIFF_T, stmt::rowfree, stmt::rows, setstat(), dbc::sqlite, starttran(), stringify, unescpat(), xmalloc, and xstrdup.

Referenced by SQLStatisticsW().

SQLRETURN drvtables SQLHSTMT    stmt,
SQLCHAR *    cat,
SQLSMALLINT    catLen,
SQLCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLCHAR *    table,
SQLSMALLINT    tableLen,
SQLCHAR *    type,
SQLSMALLINT    typeLen
[static]
 

Retrieve information on tables and/or views.

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
type  types of tables string or NULL
typeLen  length of types of tables string or SQL_NTS
Returns:
ODBC error code

Definition at line 11121 of file sqlite3odbc.c.

References array_size, stmt::dbc, dbtraceapi(), freeresult(), min, mkresultset(), stmt::ncols, nomem(), stmt::nrows, stmt::rowfree, stmt::rowp, stmt::rows, dbc::sqlite, starttran(), TOLOWER(), unescpat(), and xmalloc.

Referenced by SQLTablesW().

SQLRETURN drvunimpldbc HDBC    dbc [static]
 

Report IM001 (not implemented) SQL error code for HDBC.

Parameters:
dbc  database connection handle
Returns:
ODBC error code

Definition at line 1354 of file sqlite3odbc.c.

References setstatd().

Referenced by SQLBrowseConnectW().

SQLRETURN drvunimplstmt HSTMT    stmt [static]
 

Report IM001 (not implemented) SQL error code for HSTMT.

Parameters:
stmt  statement handle
Returns:
ODBC error code

Definition at line 1373 of file sqlite3odbc.c.

References setstat().

Referenced by drvgetstmtattr(), drvgetstmtoption(), drvsetpos(), drvsetstmtattr(), drvsetstmtoption(), SQLBulkOperations(), SQLParamOptions(), and SQLSetScrollOptions().

SQLRETURN endtran DBC   d,
SQLSMALLINT    comptype,
int    force
[static]
 

Internal commit or rollback transaction.

Parameters:
d  database connection pointer
comptype  type of transaction's end, SQL_COMMIT or SQL_ROLLBACK
force  force action regardless of DBC's autocommit state
Returns:
ODBC error code

Definition at line 6164 of file sqlite3odbc.c.

References dbc::autocommit, busy_handler(), dbtracerc(), dbc::intrans, dbc::ov3, setstatd(), and dbc::sqlite.

Referenced by drvendtran(), drvsetconnectattr(), and drvsetconnectoption().

int findcol char **    cols,
int    ncols,
char *    name
[static]
 

Find column given name in string array.

Parameters:
cols  string array
ncols  number of strings
name  column name
Returns:
>= 0 on success, -1 on error

Definition at line 2176 of file sqlite3odbc.c.

Referenced by drvforeignkeys(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), and fixupdyncols().

void fixupdyncols STMT   s,
DBC   d
[static]
 

Fixup column information for a running statement.

Parameters:
s  statement to get fresh column information
d  DBC pointer
The column labels get the table names stripped when there's more than one column and all table names are identical.

The "dyncols" field of STMT is filled with column information obtained by SQLite "PRAGMA table_info" for each column whose table name is known. If the types are already present as with SQLite 2.5.7 this information is used instead.

Definition at line 2207 of file sqlite3odbc.c.

References array_size, COL::autoinc, COL::column, dbtraceapi(), stmt::dcols, stmt::dyncols, findcol(), freep(), getmd(), COL::label, stmt::longnames, mapsqltype(), COL::nosign, COL::notnull, stmt::nowchar, stmt::ov3, COL::size, dbc::sqlite, COL::table, COL::type, COL::typename, xmalloc, and xstrdup.

Referenced by s3stmt_step().

char* fixupsql char *    sql,
int    sqlLen,
int *    nparam,
int *    isselect,
char **    errmsg
[static]
 

Fixup query string with optional parameter markers.

Parameters:
sql  original query string
sqlLen  length of query string or SQL_NTS
nparam  output number of parameters
isselect  output indicator for SELECT statement
errmsg  output error message
Returns:
newly allocated string containing query string for SQLite or NULL

Definition at line 2022 of file sqlite3odbc.c.

References freep(), ISSPACE, and xmalloc.

void freedyncols STMT   s [static]
 

Free dynamically allocated column descriptions of STMT.

Parameters:
s  statement pointer

Definition at line 10311 of file sqlite3odbc.c.

References stmt::cols, stmt::dcols, stmt::dyncols, freep(), stmt::ncols, and COL::typename.

Referenced by freeresult(), and s3stmt_step().

void freep void *    x [static]
 

Free memory given pointer to memory pointer.

Parameters:
x  pointer to pointer to memory to be free'd

Definition at line 1391 of file sqlite3odbc.c.

References xfree.

Referenced by dbopen(), drvbindparam(), drvdisconnect(), drvputdata(), drvsetstmtattr(), drvsetstmtoption(), drvspecialcolumns(), fixupdyncols(), fixupsql(), freedyncols(), freeparams(), freeresult(), freerows(), freestmt(), getrowdata(), and setupparam().

SQLRETURN freeparams STMT   s [static]
 

Clear out parameter bindings, if any.

Parameters:
s  statement pointer

Definition at line 3944 of file sqlite3odbc.c.

References stmt::bindparms, freep(), stmt::nbindparms, and BINDPARM::parbuf.

Referenced by drvfreestmt(), and freestmt().

void freeresult STMT   s,
int    clrcols
[static]
 

Free statement's result.

Parameters:
s  statement pointer
clrcols  flag to clear column information
The result rows are free'd using the rowfree function pointer. If clrcols is greater than zero, then column bindings and dynamic column descriptions are free'd. If clrcols is less than zero, then dynamic column descriptions are free'd.

Definition at line 10340 of file sqlite3odbc.c.

References stmt::bincache, stmt::bincell, stmt::bindcols, stmt::binlen, stmt::cols, freedyncols(), freep(), stmt::nbindcols, stmt::ncols, stmt::nowchar, stmt::nrows, stmt::rowfree, and stmt::rows.

Referenced by drvfreestmt(), drvtables(), freestmt(), mkresultset(), and s3stmt_step().

void freerows char **    rowp [static]
 

Free counted array of char pointers.

Parameters:
rowp  pointer to char pointer array
The -1-th element of the array holds the array size. All non-NULL pointers of the array and then the array itself are free'd.

Definition at line 1718 of file sqlite3odbc.c.

References freep(), and PTRDIFF_T.

Referenced by drvcolumns(), drvforeignkeys(), drvgettable(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), and s3stmt_step().

SQLRETURN freestmt SQLHSTMT    stmt [static]
 

Internal free function for HSTMT.

Parameters:
stmt  statement handle
Returns:
ODBC error code

Definition at line 9833 of file sqlite3odbc.c.

References stmt::bindparms, stmt::dbc, DBC_MAGIC, freep(), freeparams(), freeresult(), dbc::magic, stmt::next, stmt::query, stmt::row_status0, stmt::row_status1, stmt::rowset_size, s3stmt_drop(), dbc::stmt, and xfree.

Referenced by drvfreeconnect(), and drvfreestmt().

SQLRETURN freestmt HSTMT    stmt [static]
 

int getbool char *    string [static]
 

Get boolean flag from string.

Parameters:
string  string to be inspected
Returns:
true or false

Definition at line 2831 of file sqlite3odbc.c.

Referenced by dbopen(), drvconnect(), drvdriverconnect(), and getrowdata().

int getdsnattr char *    dsn,
char *    attr,
char *    out,
int    outLen
[static]
 

Handling of SQLConnect() connection attributes for standalone operation without driver manager.

Parameters:
dsn  DSN/driver connection string
attr  attribute string to be retrieved
out  output buffer
outLen  length of output buffer
Returns:
true or false

Definition at line 9324 of file sqlite3odbc.c.

References min.

Referenced by drvconnect(), and drvdriverconnect().

void getmd const char *    typename,
int    sqltype,
int *    mp,
int *    dp
[static]
 

Get maximum display size and number of digits after decimal point from field type specification.

Parameters:
typename  field type specification
sqltype  target SQL data type
mp  pointer to maximum display size or NULL
dp  pointer to number of digits after decimal point or NULL

Definition at line 1859 of file sqlite3odbc.c.

Referenced by drvcolumns(), drvspecialcolumns(), and fixupdyncols().

int getmdays int    year,
int    month
[static]
 

Return number of month days.

Parameters:
year 
month  1..12
Returns:
number of month days or 0

Definition at line 2384 of file sqlite3odbc.c.

Referenced by str2date(), and str2timestamp().

SQLRETURN getrowdata STMT   s,
SQLUSMALLINT    col,
SQLSMALLINT    otype,
SQLPOINTER    val,
SQLINTEGER    len,
SQLLEN *    lenp,
int    partial
[static]
 

Internal function to retrieve row data, used by SQLFetch() and friends and SQLGetData().

Parameters:
s  statement pointer
col  column number, 0 based
otype  output data type
val  output buffer
len  length of output buffer
lenp  output length
partial  flag for partial data retrieval
Returns:
ODBC error code

Definition at line 10446 of file sqlite3odbc.c.

References stmt::bincache, stmt::bincell, stmt::bindcols, stmt::binlen, stmt::cols, freep(), getbool(), BINDCOL::lenp, ln_strtod(), mapdeftype(), min, stmt::ncols, nomem(), COL::nosign, stmt::nowchar, stmt::nrows, BINDCOL::offs, stmt::ov3, stmt::retr_data, stmt::rowp, stmt::rows, setstat(), SQLLEN, str2date(), str2time(), str2timestamp(), COL::type, uc_free(), uc_from_utf(), uc_strlen(), uc_strncpy(), xdigits, and xmalloc.

Referenced by dofetchbind(), and SQLGetData().

double ln_strtod const char *    data,
char **    endp
[static]
 

Internal locale neutral strtod function.

Parameters:
data  pointer to string
endp  pointer for ending character
Returns:
double value

Definition at line 1433 of file sqlite3odbc.c.

Referenced by getrowdata().

int mapdeftype int    type,
int    stype,
int    nosign,
int    nowchar
[static]
 

Map SQL_C_DEFAULT to proper C type.

Parameters:
type  input C type
stype  input SQL type
nosign  0=signed, 0>unsigned, 0<undefined
nowchar  when compiled with WINTERFACE don't use WCHAR
Returns:
C type

Definition at line 1932 of file sqlite3odbc.c.

Referenced by drvbindcol(), drvputdata(), getrowdata(), and setupparam().

int mapsqltype const char *    typename,
int *    nosign,
int    ov3,
int    nowchar
[static]
 

Map SQL field type from string to ODBC integer type code.

Parameters:
typename  field type string
nosign  pointer to indicator for unsigned field or NULL
ov3  boolean, true for SQL_OV_ODBC3
nowchar  boolean, for WINTERFACE don't use WCHAR
Returns:
SQL data type

Definition at line 1743 of file sqlite3odbc.c.

References TOLOWER(), xfree, and xmalloc.

Referenced by drvcolumns(), drvspecialcolumns(), and fixupdyncols().

SQLRETURN mkbindcols STMT   s,
int    ncols
[static]
 

Reallocate space for bound columns.

Parameters:
s  statement pointer
ncols  number of columns
Returns:
ODBC error code

Definition at line 10399 of file sqlite3odbc.c.

References stmt::bindcols, BINDCOL::index, BINDCOL::lenp, BINDCOL::max, stmt::nbindcols, nomem(), BINDCOL::offs, BINDCOL::type, unbindcols(), BINDCOL::valp, xmalloc, and xrealloc.

Referenced by drvbindcol(), mkresultset(), and s3stmt_step().

SQLRETURN mkresultset HSTMT    stmt,
COL   colspec,
int    ncols,
COL   colspec3,
int    ncols3,
int *    nret
[static]
 

Setup empty result set from constant column specification.

Parameters:
stmt  statement handle
colspec  column specification array (default, ODBC2)
ncols  number of columns (default, ODBC2)
colspec3  column specification array (ODBC3)
ncols3  number of columns (ODBC3)
nret  returns number of columns
Returns:
ODBC error code

Definition at line 4650 of file sqlite3odbc.c.

References stmt::cols, stmt::dbc, freeresult(), stmt::isselect, mkbindcols(), stmt::ncols, noconn(), stmt::nowchar, stmt::nrows, stmt::ov3, stmt::rowp, s3stmt_end_if(), and dbc::sqlite.

Referenced by drvcolumns(), drvforeignkeys(), drvgettypeinfo(), drvprimarykeys(), drvspecialcolumns(), drvstatistics(), drvtables(), SQLColumnPrivilegesW(), SQLProcedureColumnsW(), SQLProceduresW(), and SQLTablePrivilegesW().

void mktypeinfo STMT   s,
int    row,
int    asize,
char *    typename,
int    type,
int    tind
[static]
 

Internal function to build up data type information as row in result set.

Parameters:
s  statement pointer
row  row number
asize  number of items in a row
typename  name of type
type  integer SQL type
tind  type index

Definition at line 11912 of file sqlite3odbc.c.

References stmt::rows, and stringify.

Referenced by drvgettypeinfo().

int namematch char *    str,
char *    pat,
int    esc
[static]
 

SQL LIKE string match with optional backslash escape handling.

Parameters:
str  string
pat  pattern
esc  when true, treat literally "\" as "\", "\?" as "?", "\_" as "_"
Returns:
true when pattern matched

Definition at line 1533 of file sqlite3odbc.c.

References TOLOWER().

Referenced by drvcolumns().

SQLRETURN noconn STMT   s [static]
 

Report S1000 (not connected) SQL error given STMT.

Parameters:
s  statement pointer
Returns:
ODBC error code

Definition at line 1419 of file sqlite3odbc.c.

References stmt::ov3, and setstat().

Referenced by mkresultset().

SQLRETURN nomem STMT   s [static]
 

Report S1000 (out of memory) SQL error given STMT.

Parameters:
s  statement pointer
Returns:
ODBC error code

Definition at line 1406 of file sqlite3odbc.c.

References stmt::ov3, and setstat().

Referenced by drvbindparam(), drvcolumns(), drvforeignkeys(), drvgettable_row(), drvgettypeinfo(), drvprimarykeys(), drvputdata(), drvsetstmtattr(), drvsetstmtoption(), drvspecialcolumns(), drvstatistics(), drvtables(), getrowdata(), mkbindcols(), s3stmt_step(), setupparam(), setupparbuf(), SQLColumnsW(), SQLForeignKeysW(), SQLGetCursorNameW(), SQLPrimaryKeysW(), SQLSetCursorNameW(), SQLSpecialColumnsW(), SQLStatisticsW(), and SQLTablesW().

void s3bind DBC   d,
sqlite3_stmt *    stmt,
int    nparams,
BINDPARM   p
[static]
 

Definition at line 919 of file sqlite3odbc.c.

References BINDPARM::s3dval, BINDPARM::s3ival, BINDPARM::s3lival, BINDPARM::s3size, BINDPARM::s3type, BINDPARM::s3val, and dbc::trace.

Referenced by drvgettable(), and s3stmt_start().

char* s3stmt_coltype sqlite3_stmt *    s3stmt,
int    col,
DBC   d,
int *    guessed_types
[static]
 

Find out column type.

Parameters:
s3stmt  SQLite statement pointer
col  column number
d  DBC pointer (for tracing only)
guessed_types  flag array
Returns:
type name as string

Definition at line 3173 of file sqlite3odbc.c.

References dbc::trace.

Referenced by s3stmt_step().

void s3stmt_drop STMT   s [static]
 

Drop running sqlite statement in STMT.

Parameters:
s  statement pointer

Definition at line 3520 of file sqlite3odbc.c.

References stmt::dbc, dbtraceapi(), stmt::s3stmt, and stmt::s3stmt_rownum.

Referenced by freestmt().

void s3stmt_end STMT   s [static]
 

Stop running sqlite statement.

Parameters:
s  statement pointer

Definition at line 3474 of file sqlite3odbc.c.

References dbc::busyint, dbc::cur_s3stmt, stmt::dbc, dbtraceapi(), stmt::s3stmt, stmt::s3stmt_noreset, and stmt::s3stmt_rownum.

Referenced by drvdisconnect(), drvsetconnectattr(), drvsetconnectoption(), and s3stmt_end_if().

void s3stmt_end_if STMT   s [static]
 

Conditionally stop running sqlite statement.

Parameters:
s  statement pointer

Definition at line 3502 of file sqlite3odbc.c.

References dbc::busyint, dbc::cur_s3stmt, stmt::dbc, and s3stmt_end().

Referenced by drvfreestmt(), and mkresultset().

SQLRETURN s3stmt_start STMT   s [static]
 

Start sqlite statement for execution of SELECT statement.

Parameters:
s  statement pointer
Returns:
ODBC error code

Definition at line 3541 of file sqlite3odbc.c.

References stmt::bindparms, dbc::cur_s3stmt, stmt::dbc, dbtraceapi(), dbtracerc(), stmt::nparams, stmt::ov3, stmt::query, s3bind(), stmt::s3stmt, dbc::s3stmt_needmeta, stmt::s3stmt_noreset, stmt::s3stmt_rownum, setstat(), and dbc::sqlite.

int s3stmt_step STMT   s [static]
 

Do one sqlite statement step gathering one result row.

Parameters:
s  statement pointer
Returns:
ODBC error code

Definition at line 3250 of file sqlite3odbc.c.

References COL::autoinc, stmt::cols, COL::column, dbc::cur_s3stmt, COL::db, stmt::dbc, dbtraceapi(), stmt::dcols, stmt::dyncols, fixupdyncols(), freedyncols(), freeresult(), freerows(), COL::index, COL::label, stmt::longnames, mkbindcols(), stmt::ncols, nomem(), COL::nosign, COL::notnull, stmt::nrows, stmt::ov3, COL::prec, PTRDIFF_T, stmt::rowfree, stmt::rows, stmt::s3stmt, s3stmt_coltype(), dbc::s3stmt_needmeta, stmt::s3stmt_noreset, stmt::s3stmt_rownum, COL::scale, setstat(), COL::size, dbc::sqlite, COL::table, dbc::trace, COL::type, COL::typename, xdigits, xmalloc, and xstrdup.

Referenced by drvfetchscroll().

int setsqliteopts sqlite3 *    x,
DBC   d
[static]
 

Set SQLite options (PRAGMAs) given SQLite handle.

Parameters:
x  SQLite database handle
d  DBC pointer
Returns:
SQLite error code
SQLite < 3.3.x and not shortnames DSN option: "full_column_names" is always turned on and "short_column_names" is always turned off, to get the table names in column labels.

Definition at line 1667 of file sqlite3odbc.c.

References busy_handler(), dbc::longnames, max, and dbc::shortnames.

Referenced by dbopen().

void setstat STMT   s,
int    naterr,
char *    msg,
char *    st,
...   
[static]
 

Set error message and SQL state on statement.

Parameters:
s  statement pointer
naterr  native error code
msg  error message
st  SQL state

Definition at line 1321 of file sqlite3odbc.c.

References stmt::logmsg, stmt::naterr, and stmt::sqlstate.

Referenced by drvbindcol(), drvbindparam(), drvcolattributes(), drvcolumns(), drvdescribecol(), drvfetchscroll(), drvforeignkeys(), drvfreestmt(), drvprimarykeys(), drvputdata(), drvsetcursorname(), drvsetpos(), drvsetstmtattr(), drvsetstmtoption(), drvspecialcolumns(), drvstatistics(), drvunimplstmt(), getrowdata(), noconn(), nomem(), s3stmt_start(), s3stmt_step(), setupparam(), setupparbuf(), SQLDescribeParam(), SQLGetData(), SQLNativeSqlW(), and starttran().

void setstatd DBC   d,
int    naterr,
char *    msg,
char *    st,
...   
[static]
 

Set error message and SQL state on DBC.

Parameters:
d  database connection pointer
naterr  native error code
msg  error message
st  SQL state

Definition at line 1281 of file sqlite3odbc.c.

References dbc::logmsg, dbc::naterr, and dbc::sqlstate.

Referenced by dbopen(), drvconnect(), drvdisconnect(), drvdriverconnect(), drvfreeconnect(), drvgetconnectattr(), drvgetconnectoption(), drvgetinfo(), drvsetconnectattr(), drvsetconnectoption(), drvunimpldbc(), endtran(), and SQLConnectW().

SQLRETURN setupdyncols STMT   s,
sqlite3_stmt *    s3stmt,
int *    ncolsp
[static]
 

Referenced by drvgettable_row().

SQLRETURN setupparam STMT   s,
char *    sql,
int    pnum
[static]
 

Setup SQLite3 parameter for statement parameter.

Parameters:
s  statement pointer
sql  sql string
pnum  parameter number
Returns:
ODBC error code
The parameter is converted within BINDPARM in order to be presented to sqlite3_bind_*() functions.

Definition at line 3969 of file sqlite3odbc.c.

References stmt::bindparms, freep(), BINDPARM::len, BINDPARM::lenp, mapdeftype(), BINDPARM::max, stmt::nbindparms, BINDPARM::need, nomem(), stmt::nowchar, stmt::ov3, BINDPARM::param, BINDPARM::parbuf, BINDPARM::s3dval, BINDPARM::s3ival, BINDPARM::s3lival, BINDPARM::s3size, BINDPARM::s3type, BINDPARM::s3val, setstat(), setupparbuf(), BINDPARM::strbuf, BINDPARM::stype, BINDPARM::type, uc_strlen(), uc_to_utf(), and xmalloc.

SQLRETURN setupparbuf STMT   s,
BINDPARM   p
[static]
 

Setup parameter buffer for deferred parameter.

Parameters:
s  pointer to STMT
p  pointer to BINDPARM
Returns:
ODBC error code (success indicated by SQL_NEED_DATA)

Definition at line 4368 of file sqlite3odbc.c.

References BINDPARM::len, BINDPARM::lenp, nomem(), BINDPARM::param, BINDPARM::parbuf, setstat(), and xmalloc.

Referenced by setupparam(), and SQLParamData().

SQLRETURN SQL_API SQLAllocConnect SQLHENV    env,
SQLHDBC *    dbc
 

Allocate HDBC.

Parameters:
env  environment handle
dbc  pointer to database connection handle
Returns:
ODBC error code

Definition at line 8720 of file sqlite3odbc.c.

References drvallocconnect().

SQLRETURN SQL_API SQLAllocEnv SQLHENV *    env
 

Allocate HENV.

Parameters:
env  pointer to environment handle
Returns:
ODBC error code

Definition at line 8590 of file sqlite3odbc.c.

References drvallocenv().

SQLRETURN SQL_API SQLAllocHandle SQLSMALLINT    type,
SQLHANDLE    input,
SQLHANDLE *    output
 

Allocate a HENV, HDBC, or HSTMT handle.

Parameters:
type  handle type
input  input handle (HENV, HDBC)
output  pointer to output handle (HENV, HDBC, HSTMT)
Returns:
ODBC error code

Definition at line 10258 of file sqlite3odbc.c.

References drvallocconnect(), drvallocenv(), drvallocstmt(), ENV_MAGIC, HDBC_LOCK, HDBC_UNLOCK, ENV::magic, and ENV::ov3.

SQLRETURN SQL_API SQLAllocStmt SQLHDBC    dbc,
SQLHSTMT *    stmt
 

Allocate HSTMT given HDBC.

Parameters:
dbc  database connection handle
stmt  pointer to statement handle
Returns:
ODBC error code

Definition at line 9945 of file sqlite3odbc.c.

References drvallocstmt(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLBindCol SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLSMALLINT    type,
SQLPOINTER    val,
SQLLEN    max,
SQLLEN *    lenp
 

Bind C variable to column of result set.

Parameters:
stmt  statement handle
col  column number, starting at 1
type  output type
val  output buffer
max  length of output buffer
lenp  output length pointer
Returns:
ODBC error code

Definition at line 11075 of file sqlite3odbc.c.

References drvbindcol(), HSTMT_LOCK, HSTMT_UNLOCK, max, and SQLLEN.

SQLRETURN SQL_API SQLBindParam SQLHSTMT    stmt,
SQLUSMALLINT    pnum,
SQLSMALLINT    vtype,
SQLSMALLINT    ptype,
SQLULEN    lenprec,
SQLSMALLINT    scale,
SQLPOINTER    val,
SQLLEN *    lenp
 

Bind parameter on HSTMT.

Parameters:
stmt  statement handle
pnum  parameter number, starting at 1
vtype  input/output type of parameter
ptype 
lenprec 
scale 
val  pointer to host variable
lenp  output length pointer
Returns:
ODBC error code

Definition at line 4320 of file sqlite3odbc.c.

References drvbindparam(), HSTMT_LOCK, HSTMT_UNLOCK, SQLLEN, and SQLULEN.

SQLRETURN SQL_API SQLBindParameter SQLHSTMT    stmt,
SQLUSMALLINT    pnum,
SQLSMALLINT    iotype,
SQLSMALLINT    buftype,
SQLSMALLINT    ptype,
SQLULEN    coldef,
SQLSMALLINT    scale,
SQLPOINTER    data,
SQLLEN    buflen,
SQLLEN *    len
 

Bind parameter on HSTMT.

Parameters:
stmt  statement handle
pnum  parameter number, starting at 1
iotype  input/output type of parameter
buftype  type of host variable
ptype 
coldef 
scale 
data  pointer to host variable
buflen  length of host variable
len  output length pointer
Returns:
ODBC error code

Definition at line 4292 of file sqlite3odbc.c.

References drvbindparam(), HSTMT_LOCK, HSTMT_UNLOCK, SQLLEN, and SQLULEN.

SQLRETURN SQL_API SQLBrowseConnectW SQLHDBC    dbc,
SQLWCHAR *    connin,
SQLSMALLINT    conninLen,
SQLWCHAR *    connout,
SQLSMALLINT    connoutMax,
SQLSMALLINT *    connoutLen
 

Function not implemented.

Definition at line 3706 of file sqlite3odbc.c.

References drvunimpldbc(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLBulkOperations SQLHSTMT    stmt,
SQLSMALLINT    oper
 

Function not implemented.

Definition at line 3603 of file sqlite3odbc.c.

References drvunimplstmt(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLCancel SQLHSTMT    stmt
 

Cancel HSTMT closing cursor.

Parameters:
stmt  statement handle
Returns:
ODBC error code

Definition at line 10019 of file sqlite3odbc.c.

References dbc::busyint, DBC_MAGIC, drvfreestmt(), dbc::env, ENV_MAGIC, ENV::magic, dbc::magic, and dbc::sqlite.

SQLRETURN SQL_API SQLCloseCursor SQLHSTMT    stmt
 

Close open cursor.

Parameters:
stmt  statement handle
Returns:
ODBC error code

Definition at line 10244 of file sqlite3odbc.c.

References drvfreestmt().

SQLRETURN SQL_API SQLColumnPrivilegesW SQLHSTMT    stmt,
SQLWCHAR *    catalog,
SQLSMALLINT    catalogLen,
SQLWCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLWCHAR *    table,
SQLSMALLINT    tableLen,
SQLWCHAR *    column,
SQLSMALLINT    columnLen
 

Retrieve privileges on columns (UNICODE version).

Parameters:
stmt  statement handle
catalog  catalog name/pattern or NULL
catalogLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
column  column name or NULL
columnLen  length of column name or SQL_NTS
Returns:
ODBC error code

Definition at line 4845 of file sqlite3odbc.c.

References array_size, HSTMT_LOCK, HSTMT_UNLOCK, and mkresultset().

SQLRETURN SQL_API SQLColumnsW SQLHSTMT    stmt,
SQLWCHAR *    cat,
SQLSMALLINT    catLen,
SQLWCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLWCHAR *    table,
SQLSMALLINT    tableLen,
SQLWCHAR *    col,
SQLSMALLINT    colLen
 

Retrieve column information on table (UNICODE version).

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
col  column name/pattern or NULL
colLen  length of column name/pattern or SQL_NTS
Returns:
ODBC error code

Definition at line 11806 of file sqlite3odbc.c.

References drvcolumns(), HSTMT_LOCK, HSTMT_UNLOCK, nomem(), uc_free(), and uc_to_utf_c().

SQLRETURN SQL_API SQLConnectW SQLHDBC    dbc,
SQLWCHAR *    dsn,
SQLSMALLINT    dsnLen,
SQLWCHAR *    uid,
SQLSMALLINT    uidLen,
SQLWCHAR *    pass,
SQLSMALLINT    passLen
 

Connect to SQLite database.

Parameters:
dbc  database connection handle
dsn  DSN string
dsnLen  length of DSN string or SQL_NTS
uid  user id string or NULL
uidLen  length of user id string or SQL_NTS
pass  password string or NULL
passLen  length of password string or SQL_NTS
Returns:
ODBC error code

Definition at line 9535 of file sqlite3odbc.c.

References drvconnect(), HDBC_LOCK, HDBC_UNLOCK, dbc::ov3, setstatd(), uc_free(), and uc_to_utf_c().

SQLRETURN SQL_API SQLCopyDesc SQLHDESC    source,
SQLHDESC    target
 

Function not implemented.

Definition at line 6317 of file sqlite3odbc.c.

SQLRETURN SQL_API SQLDataSourcesW SQLHENV    env,
SQLUSMALLINT    dir,
SQLWCHAR *    srvname,
SQLSMALLINT    buflen1,
SQLSMALLINT *    lenp1,
SQLWCHAR *    desc,
SQLSMALLINT    buflen2,
SQLSMALLINT *    lenp2
 

Function not implemented.

Definition at line 3636 of file sqlite3odbc.c.

SQLRETURN SQL_API SQLDescribeColW SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLWCHAR *    name,
SQLSMALLINT    nameMax,
SQLSMALLINT *    nameLen,
SQLSMALLINT *    type,
SQLULEN *    size,
SQLSMALLINT *    digits,
SQLSMALLINT *    nullable
 

Describe column information (UNICODE version).

Parameters:
stmt  statement handle
col  column number, starting at 1
name  buffer for column name
nameMax  length of name buffer
nameLen  output length of column name
type  output SQL type
size  output column size
digits  output number of digits
nullable  output NULL allowed indicator
Returns:
ODBC error code

Definition at line 13258 of file sqlite3odbc.c.

References stmt::cols, COL::column, drvdescribecol(), HSTMT_LOCK, HSTMT_UNLOCK, min, SQLULEN, uc_free(), uc_from_utf(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLDescribeParam SQLHSTMT    stmt,
SQLUSMALLINT    pnum,
SQLSMALLINT *    dtype,
SQLULEN *    size,
SQLSMALLINT *    decdigits,
SQLSMALLINT *    nullable
 

Return information about parameter.

Parameters:
stmt  statement handle
pnum  parameter number, starting at 1
dtype  output type indicator
size  output size indicator
decdigits  output number of digits
nullable  output NULL allowed indicator
Returns:
ODBC error code

Definition at line 4440 of file sqlite3odbc.c.

References HSTMT_LOCK, HSTMT_UNLOCK, stmt::nowchar, stmt::nparams, stmt::ov3, setstat(), and SQLULEN.

SQLRETURN SQL_API SQLDisconnect SQLHDBC    dbc
 

Disconnect given HDBC.

Parameters:
dbc  database connection handle
Returns:
ODBC error code

Definition at line 9607 of file sqlite3odbc.c.

References drvdisconnect(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLDriversW SQLHENV    env,
SQLUSMALLINT    dir,
SQLWCHAR *    drvdesc,
SQLSMALLINT    descmax,
SQLSMALLINT *    desclenp,
SQLWCHAR *    drvattr,
SQLSMALLINT    attrmax,
SQLSMALLINT *    attrlenp
 

Function not implemented.

Definition at line 3670 of file sqlite3odbc.c.

SQLRETURN SQL_API SQLEndTran SQLSMALLINT    type,
SQLHANDLE    handle,
SQLSMALLINT    comptype
 

Commit or rollback transaction.

Parameters:
type  type of handle
handle  HDBC, HENV, or HSTMT handle
comptype  SQL_COMMIT or SQL_ROLLBACK
Returns:
ODBC error code

Definition at line 6290 of file sqlite3odbc.c.

References drvendtran().

SQLRETURN SQL_API SQLExtendedFetch SQLHSTMT    stmt,
SQLUSMALLINT    orient,
SQLROWOFFSET    offset,
SQLROWSETSIZE *    rowcount,
SQLUSMALLINT *    rowstatus
 

Fetch result row with scrolling and row status.

Parameters:
stmt  statement handle
orient  fetch direction
offset  offset for fetch direction
rowcount  output number of fetched rows
rowstatus  array for row stati
Returns:
ODBC error code

Definition at line 13054 of file sqlite3odbc.c.

References drvfetchscroll(), HSTMT_LOCK, HSTMT_UNLOCK, stmt::row_count0, stmt::row_status, stmt::row_status0, stmt::rowset_size, SQLROWOFFSET, and SQLROWSETSIZE.

SQLRETURN SQL_API SQLFetch SQLHSTMT    stmt
 

Fetch next result row.

Parameters:
stmt  statement handle
Returns:
ODBC error code

Definition at line 13014 of file sqlite3odbc.c.

References drvfetchscroll(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLFetchScroll SQLHSTMT    stmt,
SQLSMALLINT    orient,
SQLLEN    offset
 

Fetch result row with scrolling.

Parameters:
stmt  statement handle
orient  fetch direction
offset  offset for fetch direction
Returns:
ODBC error code

Definition at line 13033 of file sqlite3odbc.c.

References drvfetchscroll(), HSTMT_LOCK, HSTMT_UNLOCK, and SQLLEN.

SQLRETURN SQL_API SQLForeignKeysW SQLHSTMT    stmt,
SQLWCHAR *    PKcatalog,
SQLSMALLINT    PKcatalogLen,
SQLWCHAR *    PKschema,
SQLSMALLINT    PKschemaLen,
SQLWCHAR *    PKtable,
SQLSMALLINT    PKtableLen,
SQLWCHAR *    FKcatalog,
SQLSMALLINT    FKcatalogLen,
SQLWCHAR *    FKschema,
SQLSMALLINT    FKschemaLen,
SQLWCHAR *    FKtable,
SQLSMALLINT    FKtableLen
 

Retrieve information about primary/foreign keys (UNICODE version).

Parameters:
stmt  statement handle
PKcatalog  primary key catalog name/pattern or NULL
PKcatalogLen  length of PKcatalog or SQL_NTS
PKschema  primary key schema name/pattern or NULL
PKschemaLen  length of PKschema or SQL_NTS
PKtable  primary key table name/pattern or NULL
PKtableLen  length of PKtable or SQL_NTS
FKcatalog  foreign key catalog name/pattern or NULL
FKcatalogLen  length of FKcatalog or SQL_NTS
FKschema  foreign key schema name/pattern or NULL
FKschemaLen  length of FKschema or SQL_NTS
FKtable  foreign key table name/pattern or NULL
FKtableLen  length of FKtable or SQL_NTS
Returns:
ODBC error code

Definition at line 6043 of file sqlite3odbc.c.

References drvforeignkeys(), HSTMT_LOCK, HSTMT_UNLOCK, nomem(), uc_free(), and uc_to_utf_c().

SQLRETURN SQL_API SQLFreeConnect SQLHDBC    dbc
 

Free connection (HDBC).

Parameters:
dbc  database connection handle
Returns:
ODBC error code

Definition at line 8805 of file sqlite3odbc.c.

References drvfreeconnect().

SQLRETURN SQL_API SQLFreeEnv SQLHENV    env
 

Free HENV.

Parameters:
env  environment handle
Returns:
ODBC error code

Definition at line 8641 of file sqlite3odbc.c.

References drvfreeenv().

SQLRETURN SQL_API SQLFreeHandle SQLSMALLINT    type,
SQLHANDLE    h
 

Free a HENV, HDBC, or HSTMT handle.

Parameters:
type  handle type
h  handle (HENV, HDBC, or HSTMT)
Returns:
ODBC error code

Definition at line 10292 of file sqlite3odbc.c.

References drvfreeconnect(), drvfreeenv(), and drvfreestmt().

SQLRETURN SQL_API SQLFreeStmt SQLHSTMT    stmt,
SQLUSMALLINT    opt
 

Free HSTMT.

Parameters:
stmt  statement handle
opt  SQL_RESET_PARAMS, SQL_UNBIND, SQL_CLOSE, or SQL_DROP
Returns:
ODBC error code

Definition at line 10007 of file sqlite3odbc.c.

References drvfreestmt().

SQLRETURN SQL_API SQLGetConnectAttrW SQLHDBC    dbc,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    bufmax,
SQLINTEGER *    buflen
 

Get connect attribute of HDBC (UNICODE version).

Parameters:
dbc  database connection handle
attr  option to be retrieved
val  output buffer
bufmax  size of output buffer
buflen  output length
Returns:
ODBC error code

Definition at line 8972 of file sqlite3odbc.c.

References drvgetconnectattr(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLGetConnectOptionW SQLHDBC    dbc,
SQLUSMALLINT    opt,
SQLPOINTER    param
 

Get connect option of HDBC (UNICODE version).

Parameters:
dbc  database connection handle
opt  option to be retrieved
param  output buffer
Returns:
ODBC error code

Definition at line 9214 of file sqlite3odbc.c.

References drvgetconnectoption(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLGetCursorNameW SQLHSTMT    stmt,
SQLWCHAR *    cursor,
SQLSMALLINT    buflen,
SQLSMALLINT *    lenp
 

Get cursor name of STMT (UNICODE version).

Parameters:
stmt  statement handle
cursor  output buffer
buflen  length of output buffer
lenp  output length
Returns:
ODBC error code

Definition at line 10117 of file sqlite3odbc.c.

References drvgetcursorname(), HSTMT_LOCK, HSTMT_UNLOCK, min, nomem(), uc_free(), uc_from_utf(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLGetData SQLHSTMT    stmt,
SQLUSMALLINT    col,
SQLSMALLINT    type,
SQLPOINTER    val,
SQLLEN    len,
SQLLEN *    lenp
 

Retrieve row data after fetch.

Parameters:
stmt  statement handle
col  column number, starting at 1
type  output type
val  output buffer
len  length of output buffer
lenp  output length
Returns:
ODBC error code

Definition at line 12695 of file sqlite3odbc.c.

References stmt::bkmrk, getrowdata(), HSTMT_LOCK, HSTMT_UNLOCK, stmt::ncols, stmt::ov3, stmt::rowp, setstat(), and SQLLEN.

SQLRETURN SQL_API SQLGetDescFieldW SQLHDESC    handle,
SQLSMALLINT    recno,
SQLSMALLINT    fieldid,
SQLPOINTER    value,
SQLINTEGER    buflen,
SQLINTEGER *    strlen
 

Function not implemented.

Definition at line 4554 of file sqlite3odbc.c.

SQLRETURN SQL_API SQLGetDescRecW SQLHDESC    handle,
SQLSMALLINT    recno,
SQLWCHAR *    name,
SQLSMALLINT    buflen,
SQLSMALLINT *    strlen,
SQLSMALLINT *    type,
SQLSMALLINT *    subtype,
SQLLEN *    len,
SQLSMALLINT *    prec,
SQLSMALLINT *    scale,
SQLSMALLINT *    nullable
 

Function not implemented.

Definition at line 4613 of file sqlite3odbc.c.

References SQLLEN.

SQLRETURN SQL_API SQLGetDiagFieldW SQLSMALLINT    htype,
SQLHANDLE    handle,
SQLSMALLINT    recno,
SQLSMALLINT    id,
SQLPOINTER    info,
SQLSMALLINT    buflen,
SQLSMALLINT *    stringlen
 

Get error record given handle (HDBC or HSTMT).

Parameters:
htype  handle type
handle  HDBC or HSTMT
recno  diag record number for which info to be retrieved
id  diag id for which info to be retrieved
info  output buffer for error message
buflen  length of output buffer
stringlen  output length
Returns:
ODBC error code

Definition at line 7113 of file sqlite3odbc.c.

References drvgetdiagfield(), min, uc_free(), uc_from_utf(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLGetDiagRecW SQLSMALLINT    htype,
SQLHANDLE    handle,
SQLSMALLINT    recno,
SQLWCHAR *    sqlstate,
SQLINTEGER *    nativeerr,
SQLWCHAR *    msg,
SQLSMALLINT    buflen,
SQLSMALLINT *    msglen
 

Get error message given handle (HENV, HDBC, or HSTMT) (UNICODE version).

Parameters:
htype  handle type
handle  HENV, HDBC, or HSTMT
recno 
sqlstate  output buffer for SQL state
nativeerr  output buffer of native error code
msg  output buffer for error message
buflen  length of output buffer
msglen  output length
Returns:
ODBC error code

Definition at line 6872 of file sqlite3odbc.c.

References drvgetdiagrec(), min, uc_free(), uc_from_utf(), uc_from_utf_buf(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLGetEnvAttr SQLHENV    env,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    len,
SQLINTEGER *    lenp
 

Get information of HENV.

Parameters:
env  environment handle
attr  attribute to be retrieved
val  output buffer
len  length of output buffer
lenp  output length
Returns:
ODBC error code

Definition at line 6618 of file sqlite3odbc.c.

References ENV_MAGIC, ENV::magic, and ENV::ov3.

SQLRETURN SQL_API SQLGetFunctions SQLHDBC    dbc,
SQLUSMALLINT    func,
SQLUSMALLINT *    flags
 

Return information about supported ODBC API functions.

Parameters:
dbc  database connection handle
func  function code to be retrieved
flags  output indicator
Returns:
ODBC error code

Definition at line 8406 of file sqlite3odbc.c.

References array_size.

SQLRETURN SQL_API SQLGetInfoW SQLHDBC    dbc,
SQLUSMALLINT    type,
SQLPOINTER    val,
SQLSMALLINT    valMax,
SQLSMALLINT *    valLen
 

Return information about what this ODBC driver supports.

Parameters:
dbc  database connection handle
type  type of information to be retrieved
val  output buffer
valMax  length of output buffer
valLen  output length
Returns:
ODBC error code

Definition at line 8307 of file sqlite3odbc.c.

References drvgetinfo(), HDBC_LOCK, HDBC_UNLOCK, min, uc_free(), uc_from_utf(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLGetStmtAttrW SQLHSTMT    stmt,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    bufmax,
SQLINTEGER *    buflen
 

Get option of HSTMT (UNICODE version).

Parameters:
stmt  statement handle
attr  attribute to be retrieved
val  output buffer
bufmax  length of output buffer
buflen  output length
Returns:
ODBC error code

Definition at line 7318 of file sqlite3odbc.c.

References drvgetstmtattr(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLGetStmtOption SQLHSTMT    stmt,
SQLUSMALLINT    opt,
SQLPOINTER    param
 

Get option of HSTMT.

Parameters:
stmt  statement handle
opt  option to be retrieved
param  output buffer
Returns:
ODBC error code

Definition at line 7573 of file sqlite3odbc.c.

References drvgetstmtoption(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLGetStmtOptionW SQLHSTMT    stmt,
SQLUSMALLINT    opt,
SQLPOINTER    param
 

Get option of HSTMT (UNICODE version).

Parameters:
stmt  statement handle
opt  option to be retrieved
param  output buffer
Returns:
ODBC error code

Definition at line 7593 of file sqlite3odbc.c.

References drvgetstmtoption(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLGetTypeInfoW SQLHSTMT    stmt,
SQLSMALLINT    sqltype
 

Return data type information (UNICODE version).

Parameters:
stmt  statement handle
sqltype  which type to retrieve
Returns:
ODBC error code

Definition at line 12274 of file sqlite3odbc.c.

References drvgettypeinfo(), HSTMT_LOCK, and HSTMT_UNLOCK.

SQLRETURN SQL_API SQLNativeSqlW SQLHSTMT    stmt,
SQLWCHAR *    sqlin,
SQLINTEGER    sqlinLen,
SQLWCHAR *    sql,
SQLINTEGER    sqlMax,
SQLINTEGER *    sqlLen
 

Translate SQL string (UNICODE version).

Parameters:
stmt  statement handle
sqlin  input string
sqlinLen  length of input string
sql  output string
sqlMax  max space in output string
sqlLen  value return for length of output string
Returns:
ODBC error code

Definition at line 6379 of file sqlite3odbc.c.

References HSTMT_LOCK, HSTMT_UNLOCK, min, setstat(), uc_strlen(), and uc_strncpy().

SQLRETURN SQL_API SQLNumParams SQLHSTMT    stmt,
SQLSMALLINT *    nparam
 

Return number of parameters.

Parameters:
stmt  statement handle
nparam  output parameter count
Returns:
ODBC error code

Definition at line 4342 of file sqlite3odbc.c.

References HSTMT_LOCK, HSTMT_UNLOCK, and stmt::nparams.

SQLRETURN SQL_API SQLNumResultCols SQLHSTMT    stmt,
SQLSMALLINT *    ncols
 

Return number of columns of result set given HSTMT.

Parameters:
stmt  statement handle
ncols  output number of columns
Returns:
ODBC error code

Definition at line 13114 of file sqlite3odbc.c.

References HSTMT_LOCK, HSTMT_UNLOCK, and stmt::ncols.

SQLRETURN SQL_API SQLParamData SQLHSTMT    stmt,
SQLPOINTER *    pind
 

Retrieve next parameter for sending data to executing query.

Parameters:
stmt  statement handle
pind  pointer to output parameter indicator
Returns:
ODBC error code

Definition at line 4398 of file sqlite3odbc.c.

References stmt::bindparms, drvexecute(), HSTMT_LOCK, HSTMT_UNLOCK, BINDPARM::need, stmt::nparams, BINDPARM::param0, and setupparbuf().

SQLRETURN SQL_API SQLParamOptions SQLHSTMT    stmt,
SQLULEN    rows,
SQLULEN *    rowp
 

Function not implemented.

Definition at line 4524 of file sqlite3odbc.c.

References drvunimplstmt(), HSTMT_LOCK, HSTMT_UNLOCK, and SQLULEN.

SQLRETURN SQL_API SQLPrimaryKeysW SQLHSTMT    stmt,
SQLWCHAR *    cat,
SQLSMALLINT    catLen,
SQLWCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLWCHAR *    table,
SQLSMALLINT    tableLen
 

Retrieve information about indexed columns (UNICODE version).

Parameters:
stmt  statement handle
cat  catalog name/pattern or NULL
catLen  length of catalog name/pattern or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema name/pattern or SQL_NTS
table  table name/pattern or NULL
tableLen  length of table name/pattern or SQL_NTS
Returns:
ODBC error code

Definition at line 5181 of file sqlite3odbc.c.

References drvprimarykeys(), HSTMT_LOCK, HSTMT_UNLOCK, nomem(), uc_free(), and uc_to_utf_c().

SQLRETURN SQL_API SQLProcedureColumnsW SQLHSTMT    stmt,
SQLWCHAR *    catalog,
SQLSMALLINT    catalogLen,
SQLWCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLWCHAR *    proc,
SQLSMALLINT    procLen,
SQLWCHAR *    column,
SQLSMALLINT    columnLen
 

Retrieve information about columns in result set of stored procedures (UNICODE version).

Parameters:
stmt  statement handle
catalog  catalog name/pattern or NULL
catalogLen  length of catalog or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema or SQL_NTS
proc  procedure name/pattern or NULL
procLen  length of proc or SQL_NTS
column  column name/pattern or NULL
columnLen  length of column or SQL_NTS
Returns:
ODBC error code

Definition at line 6591 of file sqlite3odbc.c.

References array_size, HSTMT_LOCK, HSTMT_UNLOCK, and mkresultset().

SQLRETURN SQL_API SQLProceduresW SQLHSTMT    stmt,
SQLWCHAR *    catalog,
SQLSMALLINT    catalogLen,
SQLWCHAR *    schema,
SQLSMALLINT    schemaLen,
SQLWCHAR *    proc,
SQLSMALLINT    procLen
 

Retrieve information about stored procedures (UNICODE version).

Parameters:
stmt  statement handle
catalog  catalog name/pattern or NULL
catalogLen  length of catalog or SQL_NTS
schema  schema name/pattern or NULL
schemaLen  length of schema or SQL_NTS
proc  procedure name/pattern or NULL
procLen  length of proc or SQL_NTS
Returns:
ODBC error code

Definition at line 6479 of file sqlite3odbc.c.

References array_size, HSTMT_LOCK, HSTMT_UNLOCK, and mkresultset().

SQLRETURN SQL_API SQLPutData SQLHSTMT    stmt,
SQLPOINTER    data,
SQLLEN    len
 

Put (partial) parameter data into executing statement.

Parameters:
stmt  statement handle
data  pointer to data
len  length of data
Returns:
ODBC error code

Definition at line 3928 of file sqlite3odbc.c.

References drvputdata(), HSTMT_LOCK, HSTMT_UNLOCK, and SQLLEN.

SQLRETURN SQL_API SQLRowCount SQLHSTMT    stmt,
SQLLEN *    nrows
 

Return number of affected rows of HSTMT.

Parameters:
stmt  statement handle
nrows  output number of rows
Returns:
ODBC error code

Definition at line 13090 of file sqlite3odbc.c.

References HSTMT_LOCK, HSTMT_UNLOCK, stmt::nrows, and SQLLEN.

SQLRETURN SQL_API SQLSetConnectAttrW SQLHDBC    dbc,
SQLINTEGER    attr,
SQLPOINTER    val,
SQLINTEGER    len
 

Set connect attribute of HDBC (UNICODE version).

Parameters:
dbc  database connection handle
attr  option to be set
val  option value
len  size of option
Returns:
ODBC error code

Definition at line 9082 of file sqlite3odbc.c.

References drvsetconnectattr(), HDBC_LOCK, and HDBC_UNLOCK.

SQLRETURN SQL_API SQLSetConnectOptionW SQLHDBC    dbc,
SQLUSMALLINT    opt,
SQLULEN    param
 

Set option on HDBC (UNICODE version).

Parameters:
dbc  database connection handle
opt  option to be set
param  option value
Returns:
ODBC error code

Definition at line 9300 of file sqlite3odbc.c.

References drvsetconnectoption(), HDBC_LOCK, HDBC_UNLOCK, and SQLULEN.

SQLRETURN SQL_API SQLSetCursorNameW SQLHSTMT    stmt,
SQLWCHAR *    cursor,
SQLSMALLINT    len
 

Set cursor name on STMT (UNICODE version).

Parameters:
stmt  statement handle
cursor  new cursor name
len  length of cursor name or SQL_NTS
Returns:
ODBC error code

Definition at line 10216 of file sqlite3odbc.c.

References drvsetcursorname(), HSTMT_LOCK, HSTMT_UNLOCK, nomem(), uc_free(), and uc_to_utf_c().

SQLRETURN SQL_API SQLSetDescFieldW SQLHDESC    handle,
SQLSMALLINT    recno,
SQLSMALLINT    fieldid,
SQLPOINTER    value,
SQLINTEGER    buflen
 

Function not implemented.

Definition at line 4582 of file sqlite3odbc.c.

SQLRETURN SQL_API SQLSetDescRec SQLHDESC    handle,
SQLSMALLINT    recno,
SQLSMALLINT    type,
SQLSMALLINT    subtype,
SQLLEN    len,
SQLSMALLINT    prec,
SQLSMALLINT    scale,
SQLPOINTER    data,