/home/dmuse/src/sqlrelay/src/api/c++/include/sqlrelay/sqlrclient.h

    00001 // Copyright (c) 1999-2001  David Muse
    00002 // See the file COPYING for more information.
    00003
    00004 #ifndef SQLRCLIENT_H
    00005 #define SQLRCLIENT_H
    00006
    00007 #include <sqlrelay/private/sqlrincludes.h>
    00008
    00009 #ifdef RUDIMENTS_NAMESPACE
    00010 using namespace rudiments;
    00011 #endif
    00012
    00013 class sqlrconnection {
    00014         public:
    00030                         sqlrconnection(const char *server, uint16_t port,
    00031                                         const char *socket,
    00032                                         const char *user, const char *password,
    00033                                         int32_t retrytime, int32_t tries);
    00034
    00035
    00038                         ~sqlrconnection();
    00039
    00040
    00041
    00045                 void    setTimeout(int32_t timeoutsec, int32_t timeoutusec);
    00046
    00048                 void    endSession();
    00049
    00054                 bool    suspendSession();
    00055
    00062                 uint16_t        getConnectionPort();
    00063
    00070                 const char      *getConnectionSocket();
    00071
    00075                 bool    resumeSession(uint16_t port, const char *socket);
    00076
    00077
    00078
    00081                 bool            ping();
    00082
    00085                 const char      *identify();
    00086
    00088                 const char      *dbVersion();
    00089
    00091                 const char      *serverVersion();
    00092
    00094                 const char      *clientVersion();
    00095
    00098                 const char      *bindFormat();
    00099
    00100
    00101
    00103                 bool    selectDatabase(const char *database);
    00104
    00106                 const char      *getCurrentDatabase();
    00107
    00108
    00109
    00112                 uint64_t        getLastInsertId();
    00113
    00114
    00115
    00118                 bool    autoCommitOn();
    00119
    00122                 bool    autoCommitOff();
    00123
    00124
    00125
    00128                 bool    commit();
    00129
    00132                 bool    rollback();
    00133
    00134
    00135
    00140                 const char      *errorMessage();
    00141
    00142
    00143
    00149                 void    debugOn();
    00150
    00152                 void    debugOff();
    00153
    00156                 bool    getDebug();
    00157
    00158
    00159
    00164                 void    debugPrintFunction(int (*printfunction)
    00165                                                         (const char *,...));
    00166
    00167         #include <sqlrelay/private/sqlrconnection.h>
    00168 };
    00169
    00170
    00171 class sqlrcursor {
    00172         public:
    00175                         sqlrcursor(sqlrconnection *sqlrc);
    00176
    00179                         ~sqlrcursor();
    00180
    00181
    00182
    00186                 void    setResultSetBufferSize(uint64_t rows);
    00187
    00191                 uint64_t        getResultSetBufferSize();
    00192
    00193
    00194
    00199                 void    dontGetColumnInfo();
    00200
    00202                 void    getColumnInfo();
    00203
    00204
    00208                 void    mixedCaseColumnNames();
    00209
    00211                 void    upperCaseColumnNames();
    00212
    00214                 void    lowerCaseColumnNames();
    00215
    00216
    00217
    00230                 void    cacheToFile(const char *filename);
    00231
    00237                 void    setCacheTtl(uint32_t ttl);
    00238
    00241                 const char      *getCacheFileName();
    00242
    00244                 void    cacheOff();
    00245
    00246
    00247
    00252                 bool    getDatabaseList(const char *wild);
    00253
    00257                 bool    getTableList(const char *wild);
    00258
    00263                 bool    getColumnList(const char *table, const char *wild);
    00264
    00265
    00266
    00268                 bool    sendQuery(const char *query);
    00269
    00273                 bool    sendQuery(const char *query, uint32_t length);
    00274
    00277                 bool    sendFileQuery(const char *path, const char *filename);
    00278
    00279
    00280
    00282                 void    prepareQuery(const char *query);
    00283
    00287                 void    prepareQuery(const char *query, uint32_t length);
    00288
    00292                 bool    prepareFileQuery(const char *path,
    00293                                                 const char *filename);
    00294
    00295
    00296
    00298                 void    substitution(const char *variable, const char *value);
    00299
    00301                 void    substitution(const char *variable, int64_t value);
    00302
    00304                 void    substitution(const char *variable, double value,
    00305                                                         uint32_t precision,
    00306                                                         uint32_t scale);
    00307
    00309                 void    substitutions(const char **variables,
    00310                                                 const char **values);
    00311
    00313                 void    substitutions(const char **variables,
    00314                                                 const int64_t *values);
    00315
    00317                 void    substitutions(const char **variables,
    00318                                         const double *values,
    00319                                         const uint32_t *precisions,
    00320                                         const uint32_t *scales);
    00321
    00322
    00323
    00325                 void    inputBind(const char *variable, const char *value);
    00326
    00328                 void    inputBind(const char *variable, const char *value,
    00329                                                         uint32_t valuelength);
    00330
    00332                 void    inputBind(const char *variable, int64_t value);
    00333
    00339                 void    inputBind(const char *variable, double value,
    00340                                                         uint32_t precision,
    00341                                                         uint32_t scale);
    00342
    00344                 void    inputBindBlob(const char *variable,
    00345                                                 const char *value,
    00346                                                 uint32_t size);
    00347
    00349                 void    inputBindClob(const char *variable,
    00350                                                 const char *value,
    00351                                                 uint32_t size);
    00352
    00354                 void    inputBinds(const char **variables, const char **values);
    00355
    00357                 void    inputBinds(const char **variables,
    00358                                         const int64_t *values);
    00359
    00361                 void    inputBinds(const char **variables,
    00362                                         const double *values,
    00363                                         const uint32_t *precisions,
    00364                                         const uint32_t *scales);
    00365
    00366
    00367
    00371                 void    defineOutputBindString(const char *variable,
    00372                                                 uint32_t bufferlength);
    00373
    00375                 void    defineOutputBindInteger(const char *variable);
    00376
    00378                 void    defineOutputBindDouble(const char *variable);
    00379
    00381                 void    defineOutputBindBlob(const char *variable);
    00382
    00384                 void    defineOutputBindClob(const char *variable);
    00385
    00387                 void    defineOutputBindCursor(const char *variable);
    00388
    00389
    00390
    00392                 void    clearBinds();
    00393
    00397                 uint16_t        countBindVariables() const;
    00398
    00405                 void    validateBinds();
    00406
    00409                 bool    validBind(const char *variable);
    00410
    00411
    00412
    00415                 bool    executeQuery();
    00416
    00419                 bool    fetchFromBindCursor();
    00420
    00421
    00422
    00425                 const char      *getOutputBindString(const char *variable);
    00426
    00429                 int64_t         getOutputBindInteger(const char *variable);
    00430
    00433                 double          getOutputBindDouble(const char *variable);
    00434
    00437                 const char      *getOutputBindBlob(const char *variable);
    00438
    00441                 const char      *getOutputBindClob(const char *variable);
    00442
    00445                 uint32_t        getOutputBindLength(const char *variable);
    00446
    00449                 sqlrcursor      *getOutputBindCursor(const char *variable);
    00450
    00451
    00452
    00455                 bool            openCachedResultSet(const char *filename);
    00456
    00457
    00458
    00461                 uint32_t        colCount();
    00462
    00467                 uint64_t        rowCount();
    00468
    00475                 uint64_t        totalRows();
    00476
    00484                 uint64_t        affectedRows();
    00485
    00489                 uint64_t        firstRowIndex();
    00490
    00496                 bool            endOfResultSet();
    00497
    00498
    00499
    00504                 const char      *errorMessage();
    00505
    00506
    00507
    00511                 void    getNullsAsEmptyStrings();
    00512
    00516                 void    getNullsAsNulls();
    00517
    00518
    00519
    00521                 const char      *getField(uint64_t row, uint32_t col);
    00522
    00524                 const char      *getField(uint64_t row, const char *col);
    00525
    00527                 int64_t getFieldAsInteger(uint64_t row, uint32_t col);
    00528
    00530                 int64_t getFieldAsInteger(uint64_t row, const char *col);
    00531
    00533                 double  getFieldAsDouble(uint64_t row, uint32_t col);
    00534
    00536                 double  getFieldAsDouble(uint64_t row, const char *col);
    00537
    00538
    00539
    00541                 uint32_t        getFieldLength(uint64_t row, uint32_t col);
    00542
    00544                 uint32_t        getFieldLength(uint64_t row, const char *col);
    00545
    00546
    00547
    00550                 const char * const *getRow(uint64_t row);
    00551
    00554                 uint32_t        *getRowLengths(uint64_t row);
    00555
    00558                 const char * const *getColumnNames();
    00559
    00561                 const char      *getColumnName(uint32_t col);
    00562
    00564                 const char      *getColumnType(uint32_t col);
    00565
    00567                 const char      *getColumnType(const char *col);
    00568
    00571                 uint32_t        getColumnLength(uint32_t col);
    00572
    00575                 uint32_t        getColumnLength(const char *col);
    00576
    00583                 uint32_t        getColumnPrecision(uint32_t col);
    00584
    00591                 uint32_t        getColumnPrecision(const char *col);
    00592
    00597                 uint32_t        getColumnScale(uint32_t col);
    00598
    00603                 uint32_t        getColumnScale(const char *col);
    00604
    00607                 bool            getColumnIsNullable(uint32_t col);
    00608
    00611                 bool            getColumnIsNullable(const char *col);
    00612
    00615                 bool            getColumnIsPrimaryKey(uint32_t col);
    00616
    00619                 bool            getColumnIsPrimaryKey(const char *col);
    00620
    00623                 bool            getColumnIsUnique(uint32_t col);
    00624
    00627                 bool            getColumnIsUnique(const char *col);
    00628
    00631                 bool            getColumnIsPartOfKey(uint32_t col);
    00632
    00635                 bool            getColumnIsPartOfKey(const char *col);
    00636
    00639                 bool            getColumnIsUnsigned(uint32_t col);
    00640
    00643                 bool            getColumnIsUnsigned(const char *col);
    00644
    00648                 bool            getColumnIsZeroFilled(uint32_t col);
    00649
    00653                 bool            getColumnIsZeroFilled(const char *col);
    00654
    00658                 bool            getColumnIsBinary(uint32_t col);
    00659
    00663                 bool            getColumnIsBinary(const char *col);
    00664
    00667                 bool            getColumnIsAutoIncrement(uint32_t col);
    00668
    00671                 bool            getColumnIsAutoIncrement(const char *col);
    00672
    00675                 uint32_t        getLongest(uint32_t col);
    00676
    00679                 uint32_t        getLongest(const char *col);
    00680
    00681
    00682
    00688                 void    suspendResultSet();
    00689
    00696                 uint16_t        getResultSetId();
    00697
    00701                 bool    resumeResultSet(uint16_t id);
    00702
    00707                 bool    resumeCachedResultSet(uint16_t id,
    00708                                                 const char *filename);
    00709
    00710         #include <sqlrelay/private/sqlrcursor.h>
    00711 };
    00712
    00713 #endif