#ifndef _SQL_SQLSTATEMENT_HPP_ #define _SQL_SQLSTATEMENT_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _COMMON_ASSERT_HPP_ #include #endif #ifndef _SQL_SQLDATA_HPP_ #include #endif #ifndef _SQL_SQLDB_HPP_ #include #endif #ifndef _SQL_SQL_HPP_ #include #endif class SQLBind; class SQLStatement { friend class SQLErr; public: class SQLColumnNotFound{}; SQLStatement(void); SQLStatement(SQLDb &someSQLDb,SQLBind &sqlBind); SQLStatement(SQLDb &someSQLDb); virtual ~SQLStatement(); SQLStatement &operator=(const SQLDb &someSQLDb); SQLData &operator[](int colIndex); SQLData &operator[](const String &strNameData); DWORD size(void)const; BOOL executeDirect(const String &sqlStatementString); BOOL executeDirect(const String &sqlStatementString,String &strResult); BOOL call(const String &procName); WORD sqlResults(void); WORD tables(String database,String owner,String name,String type); WORD tables(void); void close(void); WORD open(void); WORD commit(void); WORD fetch(bool silent=false)const; WORD cancel(void)const; int rowCount(void)const; WORD isOkay(void)const; private: enum {MaxColName=255,MaxImageLength=768000}; operator HSTMT(void)const; WORD mIsOkay; HSTMT mhStatement; Block mSQLColumnData; SQLDb mSQLDb; }; inline SQLData &SQLStatement::operator[](int colIndex) { assert(colIndex