diff --git a/uppsrc/ODBC/ODBC.cpp b/uppsrc/ODBC/ODBC.cpp index e253cad40..1e20991f1 100644 --- a/uppsrc/ODBC/ODBC.cpp +++ b/uppsrc/ODBC/ODBC.cpp @@ -2,13 +2,63 @@ NAMESPACE_UPP +class ODBCConnection : public SqlConnection +{ +public: + ODBCConnection(ODBCSession *session); + virtual ~ODBCConnection(); + + void Clear(); + + virtual void SetParam(int i, const Value& r); + virtual bool Execute(); + virtual int GetRowsProcessed() const; + virtual bool Fetch(); + virtual void GetColumn(int i, Ref r) const; + virtual void Cancel(); + virtual SqlSession& GetSession() const { ASSERT(session); return *session; } + virtual String GetUser() const { ASSERT(session); return session->user; } + virtual String ToString() const; + virtual Value GetInsertedId() const; + +private: + friend class ODBCSession; + + ODBCSession *session; + struct Param { + int ctype; + int sqltype; + String data; + SQLLEN li; + }; + Array param, bparam; + String last_insert_table; + + int rowsprocessed; + Vector< Vector > number; + Vector< Vector > text; + Vector< Vector