SQL Relay C API
|
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