diff --git a/uppsrc/ODBC/ODBC.h b/uppsrc/ODBC/ODBC.h index cfb365fe0..1bf604450 100644 --- a/uppsrc/ODBC/ODBC.h +++ b/uppsrc/ODBC/ODBC.h @@ -1,59 +1,61 @@ -#ifndef _ODBC_ODBC_h -#define _ODBC_ODBC_h - -#include -#include -#include - -NAMESPACE_UPP - -bool ODBCPerformScript(const String& text, StatementExecutor& executor, Gate2 progress_canceled = false); -String MSSQLTextType(int width); - -class ODBCSession : public SqlSession { -public: - virtual void Begin(); - virtual void Commit(); - virtual void Rollback(); - - virtual String Savepoint(); - virtual void RollbackTo(const String& savepoint); - - virtual bool IsOpen() const; - - virtual Vector EnumUsers(); - virtual Vector EnumDatabases(); - virtual Vector EnumTables(String database); - virtual Vector EnumViews(String database); - virtual Vector EnumSequences(String database); - virtual Vector EnumPrimaryKeys(String database, String table); - virtual String EnumRowID(String database, String table); - - virtual RunScript GetRunScript() const { return &ODBCPerformScript; } - -protected: - virtual SqlConnection *CreateConnection(); - -private: - friend class ODBCConnection; - HENV henv; - HDBC hdbc; - HSTMT hstmt; - String user; - int tlevel; - ODBCConnection *current; - - void FlushConnections(); - bool IsOk(SQLRETURN ret); - -public: - bool Connect(const char *cs); - void Close(); - - ODBCSession(); - ~ODBCSession(); -}; - -END_UPP_NAMESPACE - -#endif +#ifndef _ODBC_ODBC_h +#define _ODBC_ODBC_h + +#include +#include +#include + +NAMESPACE_UPP + +bool ODBCPerformScript(const String& text, StatementExecutor& executor, Gate2 progress_canceled = false); +String MSSQLTextType(int width); + +class ODBCConnection; + +class ODBCSession : public SqlSession { +public: + virtual void Begin(); + virtual void Commit(); + virtual void Rollback(); + + virtual String Savepoint(); + virtual void RollbackTo(const String& savepoint); + + virtual bool IsOpen() const; + + virtual Vector EnumUsers(); + virtual Vector EnumDatabases(); + virtual Vector EnumTables(String database); + virtual Vector EnumViews(String database); + virtual Vector EnumSequences(String database); + virtual Vector EnumPrimaryKeys(String database, String table); + virtual String EnumRowID(String database, String table); + + virtual RunScript GetRunScript() const { return &ODBCPerformScript; } + +protected: + virtual SqlConnection *CreateConnection(); + +private: + friend class ODBCConnection; + HENV henv; + HDBC hdbc; + HSTMT hstmt; + String user; + int tlevel; + ODBCConnection *current; + + void FlushConnections(); + bool IsOk(SQLRETURN ret); + +public: + bool Connect(const char *cs); + void Close(); + + ODBCSession(); + ~ODBCSession(); +}; + +END_UPP_NAMESPACE + +#endif diff --git a/uppsrc/ODBC/ODBC.upp b/uppsrc/ODBC/ODBC.upp index b4a8eea35..8d9c887b5 100644 --- a/uppsrc/ODBC/ODBC.upp +++ b/uppsrc/ODBC/ODBC.upp @@ -3,6 +3,8 @@ uses library(WIN32) odbc32; +library(!WIN32) odbc; + file ODBC.h, ODBC.cpp;