SQL Relay C API
/home/dmuse/src/sqlrelay/src/api/c/include/sqlrelay/sqlrclientwrapper.h
00001 /* Copyright (c) 2000-2001  David Muse
00002  See the file COPYING for more information */
00003 
00004 #ifndef SQLRCLIENTWRAPPER_H
00005 #define SQLRCLIENTWRAPPER_H
00006 
00007 #include <rudiments/private/inttypes.h>
00008 
00012 typedef struct sqlrconnection *sqlrcon;
00013 typedef struct sqlrcursor *sqlrcur;
00014 
00025 sqlrcon sqlrcon_alloc(const char *server, uint16_t port, const char *socket,
00026                                         const char *user, const char *password, 
00027                                         int32_t retrytime, int32_t tries);
00028 
00031 void    sqlrcon_free(sqlrcon sqlrconref);
00032 
00033 
00034 
00038 void    sqlrcon_setTimeout(sqlrcon sqlrconref,
00039                         int32_t timeoutsec, int32_t timeoutusec);
00040 
00043 void    sqlrcon_endSession(sqlrcon sqlrconref);
00044 
00049 int     sqlrcon_suspendSession(sqlrcon sqlrconref);
00050 
00056 uint16_t        sqlrcon_getConnectionPort(sqlrcon sqlrconref);
00057 
00063 const char      *sqlrcon_getConnectionSocket(sqlrcon sqlrconref);
00064 
00068 int     sqlrcon_resumeSession(sqlrcon sqlrconref, uint16_t port,
00069                                                         const char *socket);
00070 
00071 
00072 
00075 int     sqlrcon_ping(sqlrcon sqlrconref);
00076 
00079 const char      *sqlrcon_identify(sqlrcon sqlrconref);
00080 
00083 const char      *sqlrcon_dbVersion(sqlrcon sqlrconref);
00084 
00087 const char      *sqlrcon_serverVersion(sqlrcon sqlrconref);
00088 
00091 const char      *sqlrcon_clientVersion(sqlrcon sqlrconref);
00092 
00096 const char      *sqlrcon_bindFormat(sqlrcon sqlrconref);
00097 
00098 
00099 
00102 int     sqlrcon_selectDatabase(sqlrcon sqlrconref, const char *database);
00103 
00106 const char      *sqlrcon_getCurrentDatabase(sqlrcon sqlrconref);
00107 
00108 
00109 
00112 uint64_t        sqlrcon_getLastInsertId(sqlrcon sqlrconref);
00113 
00114 
00115 
00118 int     sqlrcon_autoCommitOn(sqlrcon sqlrconref);
00119 
00122 int     sqlrcon_autoCommitOff(sqlrcon sqlrconref);
00123 
00124 
00125 
00129 int     sqlrcon_commit(sqlrcon sqlrconref);
00130 
00134 int     sqlrcon_rollback(sqlrcon sqlrconref);
00135 
00136 
00137 
00141 const char      *sqlrcon_errorMessage(sqlrcon sqlrconref);
00142 
00143 
00144 
00149 void    sqlrcon_debugOn(sqlrcon sqlrconref);
00150 
00153 void    sqlrcon_debugOff(sqlrcon sqlrconref);
00154 
00157 int     sqlrcon_getDebug(sqlrcon sqlrconref);
00158 
00159 
00160 
00164 void    sqlrcon_debugPrintFunction(sqlrcon sqlrconref, 
00165                                         int (*printfunction)(const char *,...));
00166 
00167 
00168 
00172 sqlrcur sqlrcur_alloc(sqlrcon sqlrconref);
00173 
00176 void    sqlrcur_free(sqlrcur sqlrcurref);
00177 
00178 
00179 
00183 void    sqlrcur_setResultSetBufferSize(sqlrcur sqlrcurref, uint64_t rows);
00184 
00188 uint64_t        sqlrcur_getResultSetBufferSize(sqlrcur sqlrcurref);
00189 
00190 
00191 
00196 void    sqlrcur_dontGetColumnInfo(sqlrcur sqlrcurref);
00197 
00200 void    sqlrcur_getColumnInfo(sqlrcur sqlrcurref);
00201 
00202 
00203 
00207 void    sqlrcur_mixedCaseColumnNames(sqlrcur sqlrcurref);
00208 
00211 void    sqlrcur_upperCaseColumnNames(sqlrcur sqlrcurref);
00212 
00215 void    sqlrcur_lowerCaseColumnNames(sqlrcur sqlrcurref);
00216 
00217 
00218 
00229 void    sqlrcur_cacheToFile(sqlrcur sqlrcurref, const char *filename);
00230 
00235 void    sqlrcur_setCacheTtl(sqlrcur sqlrcurref, uint32_t ttl);
00236 
00240 const char      *sqlrcur_getCacheFileName(sqlrcur sqlrcurref);
00241 
00244 void    sqlrcur_cacheOff(sqlrcur sqlrcurref);
00245 
00246 
00247 
00252 int     sqlrcur_getDatabaseList(sqlrcur sqlrcurref, const char *wild);
00253 
00257 int     sqlrcur_getTableList(sqlrcur sqlrcurref, const char *wild);
00258 
00263 int     sqlrcur_getColumnList(sqlrcur sqlrcurref,
00264                                 const char *table, const char *wild);
00265 
00266 
00267 
00270 int     sqlrcur_sendQuery(sqlrcur sqlrcurref, const char *query);
00271 
00275 int     sqlrcur_sendQueryWithLength(sqlrcur sqlrcurref, const char *query,
00276                                                         uint32_t length);
00277 
00280 int     sqlrcur_sendFileQuery(sqlrcur sqlrcurref,
00281                                 const char *path, const char *filename);
00282 
00283 
00284 
00287 void    sqlrcur_prepareQuery(sqlrcur sqlrcurref, const char *query);
00288 
00292 void    sqlrcur_prepareQueryWithLength(sqlrcur sqlrcurref,
00293                                                 const char *query,
00294                                                 uint32_t length);
00295 
00298 void    sqlrcur_prepareFileQuery(sqlrcur sqlrcurref, 
00299                                         const char *path, const char *filename);
00300 
00301 
00302 
00305 void    sqlrcur_subString(sqlrcur sqlrcurref,
00306                                 const char *variable, const char *value);
00307 
00310 void    sqlrcur_subLong(sqlrcur sqlrcurref,
00311                                 const char *variable, int64_t value);
00312 
00315 void    sqlrcur_subDouble(sqlrcur sqlrcurref,
00316                                 const char *variable, double value,
00317                                 uint32_t precision, uint32_t scale);
00318 
00321 void    sqlrcur_subStrings(sqlrcur sqlrcurref,
00322                                 const char **variables, const char **values);
00323 
00326 void    sqlrcur_subLongs(sqlrcur sqlrcurref,
00327                                 const char **variables, const int64_t *values);
00328 
00331 void    sqlrcur_subDoubles(sqlrcur sqlrcurref,
00332                                 const char **variables, const double *values,
00333                                 const uint32_t *precisions,
00334                                 const uint32_t *scales);
00335 
00336 
00337 
00340 void    sqlrcur_inputBindString(sqlrcur sqlrcurref, 
00341                                 const char *variable, const char *value);
00342 
00345 void    sqlrcur_inputBindStringWithLength(sqlrcur sqlrcurref, 
00346                                 const char *variable,
00347                                 const char *value, uint32_t valuelength);
00348 
00351 void    sqlrcur_inputBindLong(sqlrcur sqlrcurref, const char *variable, 
00352                                                         int64_t value);
00353 
00360 void    sqlrcur_inputBindDouble(sqlrcur sqlrcurref, 
00361                                         const char *variable, double value,
00362                                         uint32_t precision, 
00363                                         uint32_t scale);
00364 
00367 void    sqlrcur_inputBindBlob(sqlrcur sqlrcurref, 
00368                                         const char *variable, const char *value,
00369                                         uint32_t size);
00370 
00373 void    sqlrcur_inputBindClob(sqlrcur sqlrcurref, 
00374                                         const char *variable, const char *value,
00375                                         uint32_t size);
00376 
00379 void    sqlrcur_inputBindStrings(sqlrcur sqlrcurref, 
00380                                         const char **variables,
00381                                         const char **values);
00382 
00385 void    sqlrcur_inputBindLongs(sqlrcur sqlrcurref, 
00386                                         const char **variables, 
00387                                         const int64_t *values);
00388 
00391 void    sqlrcur_inputBindDoubles(sqlrcur sqlrcurref, 
00392                                         const char **variables,
00393                                         const double *values,
00394                                         const uint32_t *precisions, 
00395                                         const uint32_t *scales);
00396 
00397 
00398 
00402 void    sqlrcur_defineOutputBindString(sqlrcur sqlrcurref,
00403                                         const char *variable, uint32_t length);
00404 
00407 void    sqlrcur_defineOutputBindInteger(sqlrcur sqlrcurref,
00408                                         const char *variable);
00409 
00412 void    sqlrcur_defineOutputBindDouble(sqlrcur sqlrcurref,
00413                                         const char *variable);
00414 
00417 void    sqlrcur_defineOutputBindBlob(sqlrcur sqlrcurref,
00418                                         const char *variable);
00419 
00422 void    sqlrcur_defineOutputBindClob(sqlrcur sqlrcurref,
00423                                         const char *variable);
00424 
00427 void    sqlrcur_defineOutputBindCursor(sqlrcur sqlrcurref,
00428                                         const char *variable);
00429 
00430 
00431 
00434 void    sqlrcur_clearBinds(sqlrcur sqlrcurref);
00435 
00439 uint16_t        sqlrcur_countBindVariables(sqlrcur sqlrcurref);
00440 
00446 void    sqlrcur_validateBinds(sqlrcur sqlrcurref);
00447 
00450 int     sqlrcur_validBind(sqlrcur sqlrcurref, const char *variable);
00451 
00452 
00453 
00456 int     sqlrcur_executeQuery(sqlrcur sqlrcurref);
00457 
00460 int     sqlrcur_fetchFromBindCursor(sqlrcur sqlrcurref);
00461 
00462 
00463 
00467 const char      *sqlrcur_getOutputBindString(sqlrcur sqlrcurref,
00468                                                 const char *variable);
00469 
00473 int64_t sqlrcur_getOutputBindInteger(sqlrcur sqlrcurref,
00474                                                 const char *variable);
00475 
00479 double  sqlrcur_getOutputBindDouble(sqlrcur sqlrcurref,
00480                                                 const char *variable);
00481 
00485 const char      *sqlrcur_getOutputBindBlob(sqlrcur sqlrcurref,
00486                                                 const char *variable);
00487 
00491 const char      *sqlrcur_getOutputBindClob(sqlrcur sqlrcurref,
00492                                                 const char *variable);
00493 
00497 uint32_t        sqlrcur_getOutputBindLength(sqlrcur sqlrcurref,
00498                                                 const char *variable);
00499 
00502 sqlrcur sqlrcur_getOutputBindCursor(sqlrcur sqlrcurref, const char *variable);
00503 
00504 
00505 
00508 int     sqlrcur_openCachedResultSet(sqlrcur sqlrcurref, const char *filename);
00509 
00510 
00511 
00514 uint32_t        sqlrcur_colCount(sqlrcur sqlrcurref);
00515 
00518 uint64_t        sqlrcur_rowCount(sqlrcur sqlrcurref);
00519 
00525 uint64_t        sqlrcur_totalRows(sqlrcur sqlrcurref);
00526 
00532 uint64_t        sqlrcur_affectedRows(sqlrcur sqlrcurref);
00533 
00537 uint64_t        sqlrcur_firstRowIndex(sqlrcur sqlrcurref);
00538 
00543 int     sqlrcur_endOfResultSet(sqlrcur sqlrcurref);
00544 
00545 
00546 
00550 const char      *sqlrcur_errorMessage(sqlrcur sqlrcurref);
00551 
00552 
00553 
00557 void    sqlrcur_getNullsAsEmptyStrings(sqlrcur sqlrcurref);
00558 
00562 void    sqlrcur_getNullsAsNulls(sqlrcur sqlrcurref);
00563 
00564 
00565 
00568 const char      *sqlrcur_getFieldByIndex(sqlrcur sqlrcurref,
00569                                                 uint64_t row, uint32_t col);
00570 
00573 const char      *sqlrcur_getFieldByName(sqlrcur sqlrcurref,
00574                                                 uint64_t row, const char *col);
00575 
00578 int64_t sqlrcur_getFieldAsIntegerByIndex(sqlrcur sqlrcurref,
00579                                                 uint64_t row, uint32_t col);
00580 
00583 int64_t sqlrcur_getFieldAsIntegerByName(sqlrcur sqlrcurref,
00584                                                 uint64_t row, const char *col);
00585 
00588 double  sqlrcur_getFieldAsDoubleByIndex(sqlrcur sqlrcurref,
00589                                                 uint64_t row, uint32_t col);
00590 
00593 double  sqlrcur_getFieldAsDoubleByName(sqlrcur sqlrcurref,
00594                                                 uint64_t row, const char *col);
00595 
00596 
00597 
00600 uint32_t        sqlrcur_getFieldLengthByIndex(sqlrcur sqlrcurref,
00601                                                 uint64_t row, uint32_t col);
00602 
00605 uint32_t        sqlrcur_getFieldLengthByName(sqlrcur sqlrcurref,
00606                                                 uint64_t row, const char *col);
00607 
00608 
00609 
00613 const char * const *sqlrcur_getRow(sqlrcur sqlrcurref, uint64_t row);
00614 
00618 uint32_t        *sqlrcur_getRowLengths(sqlrcur sqlrcurref, uint64_t row);
00619 
00623 const char * const *sqlrcur_getColumnNames(sqlrcur sqlrcurref);
00624 
00627 const char      *sqlrcur_getColumnName(sqlrcur sqlrcurref, uint32_t col);
00628 
00631 const char      *sqlrcur_getColumnTypeByIndex(sqlrcur sqlrcurref, uint32_t col);
00632 
00635 const char      *sqlrcur_getColumnTypeByName(sqlrcur sqlrcurref,
00636                                                         const char *col);
00637 
00640 uint32_t        sqlrcur_getColumnLengthByIndex(sqlrcur sqlrcurref,
00641                                                         uint32_t col);
00642 
00645 uint32_t        sqlrcur_getColumnLengthByName(sqlrcur sqlrcurref,
00646                                                         const char *col);
00647 
00652 uint32_t        sqlrcur_getColumnPrecisionByIndex(sqlrcur sqlrcurref,
00653                                                         uint32_t col);
00654 
00659 uint32_t        sqlrcur_getColumnPrecisionByName(sqlrcur sqlrcurref,
00660                                                         const char *col);
00661 
00666 uint32_t        sqlrcur_getColumnScaleByIndex(sqlrcur sqlrcurref,
00667                                                         uint32_t col);
00668 
00673 uint32_t        sqlrcur_getColumnScaleByName(sqlrcur sqlrcurref,
00674                                                         const char *col);
00675 
00680 int             sqlrcur_getColumnIsNullableByIndex(sqlrcur sqlrcurref,
00681                                                         uint32_t col);
00682 
00685 int             sqlrcur_getColumnIsNullableByName(sqlrcur sqlrcurref,
00686                                                         const char *col);
00687 
00690 int             sqlrcur_getColumnIsPrimaryKeyByIndex(sqlrcur sqlrcurref,
00691                                                         uint32_t col);
00692 
00695 int             sqlrcur_getColumnIsPrimaryKeyByName(sqlrcur sqlrcurref,
00696                                                         const char *col);
00697 
00700 int             sqlrcur_getColumnIsUniqueByIndex(sqlrcur sqlrcurref,
00701                                                         uint32_t col);
00702 
00705 int             sqlrcur_getColumnIsUniqueByName(sqlrcur sqlrcurref,
00706                                                         const char *col);
00707 
00711 int             sqlrcur_getColumnIsPartOfKeyByIndex(sqlrcur sqlrcurref,
00712                                                         uint32_t col);
00713 
00717 int             sqlrcur_getColumnIsPartOfKeyByName(sqlrcur sqlrcurref,
00718                                                         const char *col);
00719 
00722 int             sqlrcur_getColumnIsUnsignedByIndex(sqlrcur sqlrcurref,
00723                                                         uint32_t col);
00724 
00727 int             sqlrcur_getColumnIsUnsignedByName(sqlrcur sqlrcurref,
00728                                                         const char *col);
00729 
00733 int             sqlrcur_getColumnIsZeroFilledByIndex(sqlrcur sqlrcurref,
00734                                                         uint32_t col);
00735 
00739 int             sqlrcur_getColumnIsZeroFilledByName(sqlrcur sqlrcurref,
00740                                                         const char *col);
00741 
00744 int             sqlrcur_getColumnIsBinaryByIndex(sqlrcur sqlrcurref,
00745                                                         uint32_t col);
00746 
00749 int             sqlrcur_getColumnIsBinaryByName(sqlrcur sqlrcurref,
00750                                                         const char *col);
00751 
00754 int             sqlrcur_getColumnIsAutoIncrementByIndex(sqlrcur sqlrcurref,
00755                                                         uint32_t col);
00756 
00759 int             sqlrcur_getColumnIsAutoIncrementByName(sqlrcur sqlrcurref,
00760                                                         const char *col);
00761 
00764 uint32_t        sqlrcur_getLongestByIndex(sqlrcur sqlrcurref, uint32_t col);
00765 
00768 uint32_t        sqlrcur_getLongestByName(sqlrcur sqlrcurref, const char *col);
00769 
00770 
00771 
00776 void    sqlrcur_suspendResultSet(sqlrcur sqlrcurref);
00777 
00783 uint16_t        sqlrcur_getResultSetId(sqlrcur sqlrcurref);
00784 
00788 int     sqlrcur_resumeResultSet(sqlrcur sqlrcurref, uint16_t id);
00789 
00794 int     sqlrcur_resumeCachedResultSet(sqlrcur sqlrcurref, 
00795                                         uint16_t id, const char *filename);
00796 
00797 #endif