00001
00037 #ifndef SQLDBC_H
00038 #define SQLDBC_H
00039
00040 #include "SQLDBC_Types.h"
00041
00042 class IFR_Environment;
00043 class IFR_Connection;
00044 class IFR_ConnectProperties;
00045 class IFR_ConnectionItem;
00046 class IFR_ErrorHndl;
00047 class IFR_Statement;
00048 class IFR_PreparedStmt;
00049 class IFR_SQLWarning;
00050 class IFR_ResultSet;
00051 class IFR_RowSet;
00052 class IFR_ParameterMetaData;
00053 class IFR_ResultSetMetaData;
00054
00055 class SQLDBC_IRuntime;
00056 class SAPDBMem_IRawAllocator;
00057
00058
00062 static const char* SQLDBCHeaderVersion = "SQLDBC.H 7.4.4 BUILD 003-000-000-000";
00063
00064 #ifdef WIN32
00065 #define SQLDBC_DLLEXPORT __declspec(dllexport)
00066 #else
00067 #define SQLDBC_DLLEXPORT
00068 #endif
00069
00070 namespace SQLDBC {
00071
00072 class SQLDBC_Statement;
00073
00077 class SQLDBC_ErrorHndl
00078 {
00079 public:
00085 SQLDBC_DLLEXPORT
00086 SQLDBC_ErrorHndl();
00087
00091 SQLDBC_DLLEXPORT
00092 const SQLDBC_Int4 getErrorCode() const;
00093
00097 SQLDBC_DLLEXPORT
00098 const char* getSQLState() const;
00099
00104 SQLDBC_DLLEXPORT
00105 const char *getErrorText() const;
00106
00114 SQLDBC_DLLEXPORT
00115 operator SQLDBC_Bool () const;
00116
00117 private:
00118 friend class SQLDBC_ConnectionItem;
00119 friend struct SQLDBC_ConnectionItemStorage;
00125 SQLDBC_ErrorHndl(IFR_ErrorHndl* error);
00126
00130 IFR_ErrorHndl *m_error;
00131 };
00132
00141 class SQLDBC_SQLWarning
00142 {
00143 public:
00148 SQLDBC_DLLEXPORT
00149 SQLDBC_SQLWarning* getNextWarning() const;
00150
00154 SQLDBC_DLLEXPORT
00155 SQLDBC_SQLWarningCode getWarningCode() const;
00156
00157 private:
00158 friend class SQLDBC_ConnectionItem;
00159 friend struct SQLDBC_ConnectionItemStorage;
00165 SQLDBC_SQLWarning(IFR_SQLWarning* warning);
00166 IFR_SQLWarning *m_warning;
00167 };
00168
00169 struct SQLDBC_ConnectionItemStorage;
00170
00181 class SQLDBC_ConnectionItem
00182 {
00183 public:
00184
00189 SQLDBC_DLLEXPORT
00190 SQLDBC_ErrorHndl &error();
00191
00195 SQLDBC_DLLEXPORT
00196 void clearError();
00197
00203 SQLDBC_DLLEXPORT
00204 SQLDBC_SQLWarning* warning();
00205
00209 SQLDBC_DLLEXPORT
00210 void clearWarnings();
00211
00212 private:
00213 friend class SQLDBC_Environment;
00214 friend class SQLDBC_Connection;
00215 friend class SQLDBC_Statement;
00216 friend class SQLDBC_PreparedStatement;
00217 friend class SQLDBC_ResultSet;
00218 friend class SQLDBC_RowSet;
00219
00220 SQLDBC_ConnectionItem(IFR_ConnectionItem *item);
00221
00222 ~SQLDBC_ConnectionItem();
00223
00224 SQLDBC_ConnectionItemStorage *m_citem;
00225 };
00226
00231 class SQLDBC_ParameterMetaData
00232 {
00233 public:
00234
00235 enum ParameterNullBehavior {
00239 parameterNoNulls = 0,
00240
00244 parameterNullable = 1,
00245
00249 parameterNullableUnknown = 2
00250 };
00251
00252 enum ParameterMode {
00253
00257 parameterModeUnknown = 0,
00258
00262 parameterModeIn = 1,
00263
00267 parameterModeInOut = 2,
00268
00272 parameterModeOut = 4
00273 };
00274
00281 SQLDBC_DLLEXPORT
00282 SQLDBC_Int2 getParameterCount();
00283
00301 SQLDBC_DLLEXPORT
00302 SQLDBC_Retcode getParameterName(SQLDBC_Int2 param,
00303 char *buffer,
00304 const SQLDBC_StringEncoding encoding,
00305 const SQLDBC_Length bufferSize,
00306 SQLDBC_Length *bufferLength) const;
00307
00314 SQLDBC_DLLEXPORT
00315 SQLDBC_SQLType getParameterType(SQLDBC_Int2 param);
00316
00327 SQLDBC_DLLEXPORT
00328 ParameterMode getParameterMode(SQLDBC_Int2 param);
00329
00340 SQLDBC_DLLEXPORT
00341 SQLDBC_Int4 getParameterLength(SQLDBC_Int2 param);
00342
00357 SQLDBC_DLLEXPORT
00358 SQLDBC_Int4 getPrecision(SQLDBC_Int2 param);
00359
00372 SQLDBC_DLLEXPORT
00373 SQLDBC_Int4 getScale(SQLDBC_Int2 param);
00374
00385 SQLDBC_DLLEXPORT
00386 SQLDBC_Int4 getPhysicalLength(SQLDBC_Int2 param);
00387
00399 SQLDBC_DLLEXPORT
00400 ParameterNullBehavior isNullable(SQLDBC_Int2 param);
00401
00402 private:
00403 friend class SQLDBC_PreparedStatement;
00404 friend struct SQLDBC_PreparedStatementStorage;
00405 SQLDBC_ParameterMetaData(IFR_ParameterMetaData *metadata);
00406 IFR_ParameterMetaData *m_metadata;
00407 };
00408
00413 class SQLDBC_ResultSetMetaData
00414 {
00415 public:
00416 enum ColumnNullBehavior {
00420 columnNoNulls = 0,
00421
00425 columnNullable = 1,
00426
00430 columnNullableUnknown = 2
00431 };
00437 SQLDBC_DLLEXPORT
00438 SQLDBC_Int2 getColumnCount();
00439
00459 SQLDBC_DLLEXPORT
00460 SQLDBC_Retcode getColumnName(SQLDBC_Int2 column,
00461 char *buffer,
00462 const SQLDBC_StringEncoding encoding,
00463 const SQLDBC_Length bufferSize,
00464 SQLDBC_Length *bufferLength) const;
00465
00474 SQLDBC_DLLEXPORT
00475 SQLDBC_SQLType getColumnType(SQLDBC_Int2 column);
00476
00485 SQLDBC_DLLEXPORT
00486 SQLDBC_Int4 getColumnLength(SQLDBC_Int2 column);
00487
00501 SQLDBC_DLLEXPORT
00502 SQLDBC_Int4 getPrecision(SQLDBC_Int2 column);
00503
00516 SQLDBC_DLLEXPORT
00517 SQLDBC_Int4 getScale(SQLDBC_Int2 column);
00518
00529 SQLDBC_DLLEXPORT
00530 SQLDBC_Int4 getPhysicalLength(SQLDBC_Int2 column);
00531
00543 SQLDBC_DLLEXPORT
00544 ColumnNullBehavior isNullable(SQLDBC_Int2 column);
00545
00555 SQLDBC_DLLEXPORT
00556 SQLDBC_Bool isWritable(SQLDBC_Int2 column);
00557
00558 private:
00559 friend class SQLDBC_PreparedStatement;
00560 friend class SQLDBC_ResultSet;
00561 friend struct SQLDBC_ResultSetStorage;
00562 friend struct SQLDBC_PreparedStatementStorage;
00563 SQLDBC_ResultSetMetaData(IFR_ResultSetMetaData *metadata);
00564 IFR_ResultSetMetaData *m_metadata;
00565 };
00566
00578 class SQLDBC_RowSet
00579 : public SQLDBC_ConnectionItem
00580 {
00581 public:
00582
00592 SQLDBC_DLLEXPORT
00593 SQLDBC_Retcode setPos(SQLDBC_UInt4 pos);
00594
00601 SQLDBC_DLLEXPORT
00602 SQLDBC_Retcode fetch();
00603
00610 SQLDBC_DLLEXPORT
00611 const SQLDBC_Int4 getRowsAffected() const;
00612
00657 SQLDBC_DLLEXPORT
00658 SQLDBC_Retcode getObject(const SQLDBC_Int4 Index,
00659 const SQLDBC_HostType Type,
00660 void *paramAddr,
00661 SQLDBC_Length *LengthIndicator,
00662 const SQLDBC_Length Size,
00663 const SQLDBC_Bool Terminate=SQLDBC_TRUE);
00664
00665 private:
00666 friend class SQLDBC_ResultSet;
00667 friend struct SQLDBC_ResultSetStorage;
00668 SQLDBC_RowSet(IFR_ResultSet *resultset);
00669 };
00670
00671 struct SQLDBC_ResultSetStorage;
00672
00755 class SQLDBC_ResultSet
00756 : public SQLDBC_ConnectionItem
00757 {
00758 public:
00759
00768 SQLDBC_DLLEXPORT
00769 SQLDBC_ResultSetMetaData* getResultSetMetaData();
00770
00775 SQLDBC_DLLEXPORT
00776 const SQLDBC_UInt4 getResultCount () const;
00777
00816 SQLDBC_DLLEXPORT
00817 SQLDBC_Retcode bindColumn (const SQLDBC_UInt4 Index,
00818 const SQLDBC_HostType Type,
00819 void *paramAddr,
00820 SQLDBC_Length *LengthIndicator,
00821 const SQLDBC_Length Size,
00822 const SQLDBC_Bool Terminate=SQLDBC_TRUE);
00823
00833 SQLDBC_DLLEXPORT
00834 void setFetchSize(SQLDBC_Int2 fetchsize);
00835
00841 SQLDBC_DLLEXPORT
00842 void setRowSetSize (SQLDBC_UInt4 rowsetsize);
00843
00849 SQLDBC_DLLEXPORT
00850 const SQLDBC_UInt4 getRowSetSize () const;
00851
00858 SQLDBC_DLLEXPORT
00859 SQLDBC_RowSet *getRowSet ();
00860
00866 SQLDBC_DLLEXPORT
00867 SQLDBC_Statement *getStatement();
00868
00869
00880 SQLDBC_DLLEXPORT
00881 SQLDBC_Retcode first();
00882
00898 SQLDBC_DLLEXPORT
00899 SQLDBC_Retcode next();
00900
00910 SQLDBC_DLLEXPORT
00911 SQLDBC_Retcode previous();
00912
00922 SQLDBC_DLLEXPORT
00923 SQLDBC_Retcode last();
00924
00953 SQLDBC_DLLEXPORT
00954 SQLDBC_Retcode absolute (int row);
00955
00977 SQLDBC_DLLEXPORT
00978 SQLDBC_Retcode relative(int relativePos);
00979
00983 SQLDBC_DLLEXPORT
00984 void close();
00985
00992 SQLDBC_DLLEXPORT
00993 const SQLDBC_UInt4 getRowNumber() const;
00994
01035 SQLDBC_DLLEXPORT
01036 SQLDBC_Retcode getObject(const SQLDBC_Int4 Index,
01037 const SQLDBC_HostType Type,
01038 void *paramAddr,
01039 SQLDBC_Length *LengthIndicator,
01040 const SQLDBC_Length Size,
01041 const SQLDBC_Bool Terminate=SQLDBC_TRUE);
01042
01043 private:
01044 friend class SQLDBC_Statement;
01045 friend struct SQLDBC_StatementStorage;
01046
01050 SQLDBC_ResultSet(SQLDBC_Statement* statement,
01051 IFR_ResultSet *resultset);
01055 ~SQLDBC_ResultSet();
01056
01057 SQLDBC_ResultSetStorage *m_cresult;
01058 };
01059
01060 struct SQLDBC_StatementStorage;
01061
01137 class SQLDBC_Statement
01138 : public SQLDBC_ConnectionItem
01139 {
01140 public:
01157 SQLDBC_DLLEXPORT
01158 SQLDBC_Retcode execute(const char *sql,
01159 const SQLDBC_Length sqlLength,
01160 const SQLDBC_StringEncoding encoding);
01161
01177 SQLDBC_DLLEXPORT
01178 SQLDBC_Retcode execute(const char *sql,
01179 const SQLDBC_StringEncoding encoding);
01180
01193 SQLDBC_DLLEXPORT
01194 SQLDBC_Retcode execute(const char *sql);
01195
01209 SQLDBC_DLLEXPORT
01210 void setResultSetFetchSize(SQLDBC_Int2 rows);
01211
01224 SQLDBC_DLLEXPORT
01225 void setMaxRows(SQLDBC_UInt4 rows);
01226
01235 SQLDBC_DLLEXPORT
01236 const SQLDBC_UInt4 getMaxRows() const;
01244 SQLDBC_DLLEXPORT
01245 SQLDBC_ResultSet *getResultSet();
01246
01260 SQLDBC_DLLEXPORT
01261 void setCursorName(const char *buffer,
01262 SQLDBC_Length bufferLength,
01263 const SQLDBC_StringEncoding encoding);
01264
01287 SQLDBC_DLLEXPORT
01288 SQLDBC_Retcode getCursorName(char *buffer,
01289 const SQLDBC_StringEncoding encoding,
01290 const SQLDBC_Length bufferSize,
01291 SQLDBC_Length *bufferLength) const;
01292
01308 SQLDBC_DLLEXPORT
01309 SQLDBC_Retcode getTableName(char *buffer,
01310 const SQLDBC_StringEncoding encoding,
01311 const SQLDBC_Length bufferSize,
01312 SQLDBC_Length *bufferLength) const;
01313
01327 SQLDBC_DLLEXPORT
01328 void setQueryTimeout(int seconds);
01329
01343 SQLDBC_DLLEXPORT
01344 SQLDBC_Bool isQuery() const;
01345
01355 SQLDBC_DLLEXPORT
01356 const SQLDBC_Int4 getRowsAffected() const;
01357
01358 enum ResultSetType {
01359 FORWARD_ONLY = 1,
01360 SCROLL_SENSITIVE = 2,
01361 SCROLL_INSENSITIVE = 3
01362 };
01363
01382 SQLDBC_DLLEXPORT
01383 void setResultSetType (ResultSetType type );
01384
01395 SQLDBC_DLLEXPORT
01396 const ResultSetType getResultSetType() const;
01397
01398 enum ConcurrencyType {
01399 CONCUR_UPDATABLE = 10,
01400 CONCUR_READ_ONLY = 11
01401 };
01402
01416 SQLDBC_DLLEXPORT
01417 void setResultSetConcurrencyType (ConcurrencyType type);
01418
01419 enum HoldabilityType {
01420 CURSOR_HOLD_OVER_COMMIT = 20,
01421 CURSOR_CLOSE_ON_COMMIT = 21
01422 };
01423
01424
01433 SQLDBC_DLLEXPORT
01434 const SQLDBC_Int4 *getRowStatus() const;
01435
01441 SQLDBC_DLLEXPORT
01442 const SQLDBC_UInt4 getBatchSize() const;
01443
01454 SQLDBC_DLLEXPORT
01455 const SQLDBC_Retcode addBatch(const char *sql,
01456 SQLDBC_Length sqlLength,
01457 SQLDBC_StringEncoding encoding);
01458
01465 SQLDBC_DLLEXPORT
01466 const SQLDBC_Retcode addBatch(const char *sql,
01467 SQLDBC_StringEncoding encoding);
01474 SQLDBC_DLLEXPORT
01475 const SQLDBC_Retcode addBatch(const char *sql);
01476
01481 SQLDBC_DLLEXPORT
01482 const SQLDBC_Retcode executeBatch();
01483
01487 SQLDBC_DLLEXPORT
01488 void clearBatch();
01489
01490 protected:
01494 void clearResultSet();
01495
01496 private:
01497 friend class SQLDBC_Connection;
01498 friend class SQLDBC_PreparedStatement;
01504 SQLDBC_Statement(IFR_Statement *stmt);
01505 ~SQLDBC_Statement();
01506 SQLDBC_StatementStorage *m_cstmt;
01507 };
01508
01509 struct SQLDBC_PreparedStatementStorage;
01510
01577 class SQLDBC_PreparedStatement
01578 : public SQLDBC_Statement
01579 {
01580 public:
01589 SQLDBC_DLLEXPORT
01590 SQLDBC_Retcode prepare(const char *sql,
01591 const SQLDBC_Length sqlLength,
01592 const SQLDBC_StringEncoding encoding);
01593
01605 SQLDBC_DLLEXPORT
01606 SQLDBC_Retcode prepare(const char *sql,
01607 const SQLDBC_StringEncoding encoding);
01608
01617 SQLDBC_DLLEXPORT
01618 SQLDBC_Retcode prepare(const char *sql);
01619
01632 SQLDBC_DLLEXPORT
01633 SQLDBC_Retcode execute();
01634
01644 SQLDBC_DLLEXPORT
01645 SQLDBC_ParameterMetaData* getParameterMetaData();
01646
01668 SQLDBC_DLLEXPORT
01669 SQLDBC_ResultSetMetaData* getResultSetMetaData();
01670
01677 SQLDBC_DLLEXPORT
01678 SQLDBC_Retcode setBatchSize(SQLDBC_UInt4 rowarraysize);
01679
01718 SQLDBC_DLLEXPORT
01719 SQLDBC_Retcode bindParameter (const SQLDBC_UInt2 Index,
01720 const SQLDBC_HostType Type,
01721 void *paramAddr,
01722 SQLDBC_Length *LengthIndicator,
01723 const SQLDBC_Length Size,
01724 const SQLDBC_Bool Terminate=SQLDBC_TRUE);
01725
01768 SQLDBC_DLLEXPORT
01769 SQLDBC_Retcode bindParameterAddr(const SQLDBC_UInt2 Index,
01770 const SQLDBC_HostType Type,
01771 void *paramAddr,
01772 SQLDBC_Length *LengthIndicator,
01773 const SQLDBC_Length Size,
01774 const SQLDBC_Bool Terminate=SQLDBC_TRUE);
01775
01792 SQLDBC_DLLEXPORT
01793 SQLDBC_Retcode setBindingType(SQLDBC_size_t size);
01794
01812 SQLDBC_DLLEXPORT
01813 SQLDBC_Retcode nextParameter(SQLDBC_Int2& paramIndex, void*& paramAddr);
01814
01827 SQLDBC_DLLEXPORT
01828 SQLDBC_Retcode putData(void *paramAddr, SQLDBC_Length *paramLengthIndicator);
01829
01830 private:
01831 friend class SQLDBC_Connection;
01840 SQLDBC_PreparedStatement(IFR_PreparedStmt *stmt);
01841 ~SQLDBC_PreparedStatement();
01842 SQLDBC_PreparedStatementStorage *m_cstmt;
01843 };
01844
01917 class SQLDBC_ConnectProperties
01918 {
01919 public:
01924 SQLDBC_DLLEXPORT
01925 SQLDBC_ConnectProperties();
01926
01931 SQLDBC_DLLEXPORT
01932 SQLDBC_ConnectProperties(const SQLDBC_ConnectProperties& copy);
01933
01937 SQLDBC_DLLEXPORT
01938 ~SQLDBC_ConnectProperties();
01939
01945 SQLDBC_DLLEXPORT
01946 void setProperty(const char *key, const char *value);
01947
01954 SQLDBC_DLLEXPORT
01955 const char *getProperty(const char *key, const char *defaultvalue=0) const;
01956
01957 private:
01958 friend class SQLDBC_Connection;
01959 IFR_ConnectProperties *m_prop;
01960 };
01961
01962
01973 class SQLDBC_Connection
01974 : public SQLDBC_ConnectionItem
01975 {
01976 public:
02000 SQLDBC_DLLEXPORT
02001 SQLDBC_Retcode connect(const char *connectURL,
02002 SQLDBC_Length connectURLLength,
02003 const char *connectCommand,
02004 SQLDBC_Length connectCommandLength,
02005 SQLDBC_StringEncoding connectCommandEncoding,
02006 SQLDBC_ConnectProperties& connectProperties);
02007
02029 SQLDBC_DLLEXPORT
02030 SQLDBC_Retcode connect(const char *servernode,
02031 SQLDBC_Length servernodeLength,
02032 const char *serverdb,
02033 SQLDBC_Length serverdbLength,
02034 const char *username,
02035 SQLDBC_Length usernameLength,
02036 const char *password,
02037 SQLDBC_Length passwordLength,
02038 const SQLDBC_StringEncoding userpwdEncoding);
02039
02060 SQLDBC_DLLEXPORT
02061 SQLDBC_Retcode connect(const char *servernode,
02062 const char *serverdb,
02063 const char *username,
02064 const char *password,
02065 const SQLDBC_StringEncoding userpwdEncoding);
02066
02081 SQLDBC_DLLEXPORT
02082 SQLDBC_Retcode connect(const char *servernode,
02083 const char *serverdb,
02084 const char *username,
02085 const char *password);
02086
02118 SQLDBC_DLLEXPORT
02119 SQLDBC_Retcode connect(const char* servernode,
02120 SQLDBC_Length servernodeLength,
02121 const char* serverdb,
02122 SQLDBC_Length serverdbLength,
02123 const char* username,
02124 SQLDBC_Length usernameLength,
02125 const char* password,
02126 SQLDBC_Length passwordLength,
02127 const SQLDBC_StringEncoding userpwdEncoding,
02128 const SQLDBC_ConnectProperties& properties);
02129
02151 SQLDBC_DLLEXPORT
02152 SQLDBC_Retcode connect(const char* servernode,
02153 const char* serverdb,
02154 const char* username,
02155 const char* password,
02156 const SQLDBC_StringEncoding userpwdEncoding,
02157 const SQLDBC_ConnectProperties& properties);
02158
02174 SQLDBC_DLLEXPORT
02175 SQLDBC_Retcode connect(const char* servernode,
02176 const char* serverdb,
02177 const char* username,
02178 const char* password,
02179 const SQLDBC_ConnectProperties& properties);
02180
02192 SQLDBC_DLLEXPORT
02193 SQLDBC_Retcode connect();
02194
02207 SQLDBC_DLLEXPORT
02208 SQLDBC_Statement *createStatement();
02209
02218 SQLDBC_DLLEXPORT
02219 SQLDBC_PreparedStatement *createPreparedStatement();
02220
02230 SQLDBC_DLLEXPORT
02231 SQLDBC_Retcode commit();
02232
02237 SQLDBC_DLLEXPORT
02238 SQLDBC_Retcode rollback();
02239
02244 SQLDBC_DLLEXPORT
02245 void releaseStatement(SQLDBC_Statement *stmt);
02246
02251 SQLDBC_DLLEXPORT
02252 void releaseStatement(SQLDBC_PreparedStatement *stmt);
02253
02260 SQLDBC_DLLEXPORT
02261 SQLDBC_Retcode cancel();
02262
02270 SQLDBC_DLLEXPORT
02271 void close();
02272
02278 SQLDBC_DLLEXPORT
02279 void setAutoCommit(SQLDBC_Bool autocommit);
02280
02287 SQLDBC_DLLEXPORT
02288 SQLDBC_Bool getAutoCommit() const;
02289
02299 SQLDBC_DLLEXPORT
02300 void setSQLMode(SQLDBC_SQLMode sqlmode);
02301
02312 SQLDBC_DLLEXPORT
02313 SQLDBC_Retcode setTransactionIsolation(SQLDBC_Int4 isolationlevel);
02314
02321 SQLDBC_DLLEXPORT
02322 SQLDBC_Int4 getTransactionIsolation() const;
02323
02331 SQLDBC_DLLEXPORT
02332 SQLDBC_Bool isConnected() const;
02333
02346 SQLDBC_DLLEXPORT
02347 SQLDBC_Int4 getKernelVersion() const;
02348
02354 SQLDBC_DLLEXPORT
02355 SQLDBC_Bool isUnicodeDatabase() const;
02356
02361 SQLDBC_DLLEXPORT
02362 SQLDBC_DateTimeFormat::Format getDateTimeFormat() const;
02363
02364 private:
02365 friend class SQLDBC_Environment;
02372 SQLDBC_Connection(IFR_Connection *conn);
02373 };
02374
02379 class SQLDBC_Environment
02380 {
02381 public:
02389 SQLDBC_DLLEXPORT SQLDBC_Environment(SQLDBC_IRuntime* runtime);
02390
02394 SQLDBC_DLLEXPORT
02395 ~SQLDBC_Environment();
02396
02402 SQLDBC_DLLEXPORT
02403 SQLDBC_Connection *createConnection() const;
02404
02410 SQLDBC_DLLEXPORT
02411 SQLDBC_Connection *createConnection(SAPDBMem_IRawAllocator& allocator) const;
02412
02418 SQLDBC_DLLEXPORT
02419 void releaseConnection(SQLDBC_Connection *connection) const;
02420
02434 SQLDBC_DLLEXPORT
02435 const char *getLibraryVersion();
02436
02446 SQLDBC_DLLEXPORT
02447 const char *getSDKVersion() const {
02448 return SQLDBCHeaderVersion;
02449 };
02450
02454 SQLDBC_DLLEXPORT SAPDBMem_IRawAllocator& getAllocator();
02455
02456 private:
02457 IFR_Environment *m_env;
02458 };
02459
02469 SQLDBC_DLLEXPORT SQLDBC_IRuntime *GetClientRuntime(char *errorText, const SQLDBC_Int4 errorTextSize);
02470
02471 }
02472
02473 #endif //SQLDBC_H