国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Oracle OCCI的一個簡單的包裝類的實現

瀏覽:124日期:2023-11-29 19:22:44

注意:如果需要在vs2005中鏈接,需要到Oracle網站上下載最新的vs2005的occi庫文件。

TOcci.h #ifndef _OCCIDATABASE_H_ #define _OCCIDATABASE_H_ #include; #include; #include; using namespace oracle::occi; using namespace std; namespace happyever { class TOcciDatabase { public: static TOcciDatabase* getInstance(string usr, string passwd, string db); int getConnectCount(){ return _Instance->count; }; Connection* getConnect(){ count++;return _Instance->conn; }; ~TOcciDatabase(); protected: TOcciDatabase(){}; TOcciDatabase(string usr, string passwd, string db); private: static TOcciDatabase* _Instance; static int count; Environment *env; Connection *conn; }; int TOcciDatabase::count = 0; TOcciDatabase* TOcciDatabase::_Instance = 0; TOcciDatabase::TOcciDatabase(string usr, string passwd, string db) { try { env = Environment::createEnvironment (Environment::DEFAULT); conn = env->createConnection (usr, passwd, db); } catch(SQLException ex) { cout<<'Exception thrown for getConnect'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; TOcciDatabase::~TOcciDatabase() { try { env->terminateConnection (conn); Environment::terminateEnvironment (env); } catch(SQLException ex) { cout<<'Exception thrown for getConnect'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; TOcciDatabase* TOcciDatabase::getInstance(string usr, string passwd, string db) { if(_Instance == 0) { _Instance = new TOcciDatabase(usr,passwd,db); } return _Instance; }; class TOcciQuery { private: Connection *conn; Statement *stmt; bool isAutoCommit; TOcciQuery(){}; public : TOcciQuery(Connection *connect){ conn = connect; }; void beginTrans(); void commit(); void roolback(); boolean getAutoCommit(); ResultSet* executeQuery(string sql) ; void executeUpdate(string sql) ; void close() { if(stmt != NULL) conn->terminateStatement (stmt); }; void close(ResultSet* rs); }; void TOcciQuery::close(ResultSet* rs) { if(rs != NULL) stmt->closeResultSet (rs); if(stmt != NULL) conn->terminateStatement (stmt); }; void TOcciQuery::beginTrans() { try { isAutoCommit = stmt->getAutoCommit(); stmt->setAutoCommit(false); } catch(SQLException ex) { cout<<'Exception thrown for beginTrans'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; void TOcciQuery::commit() { try { conn->commit(); stmt->setAutoCommit(isAutoCommit); } catch(SQLException ex) { cout<<'Exception thrown for commit'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; void TOcciQuery::roolback() { try { conn->rollback(); stmt->setAutoCommit(isAutoCommit); } catch(SQLException ex) { cout<<'Exception thrown for roolback'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; boolean TOcciQuery::getAutoCommit() { boolean result = false; try { result = stmt->getAutoCommit(); } catch(SQLException ex) { cout<<'Exception thrown for getAutoCommit'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } return result; }; ResultSet* TOcciQuery::executeQuery(string sql) { ResultSet*rs = NULL; try { stmt = conn->createStatement(); rs = stmt->executeQuery(sql); } catch (SQLException ex) { cout<<'Exception thrown for executeQuery'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } return rs; }; void TOcciQuery::executeUpdate(string sql) { try { stmt = conn->createStatement(); stmt->executeUpdate(sql); } catch (SQLException ex) { cout<<'Exception thrown for executeUpdate'<cout<<'Error number: '<< ex.getErrorCode() << endl; cout<throw ex; } }; } #endif /*_OCCIDATABASE_H_*/ 測試程序main.cpp源碼如下: // occi.cpp : 定義控制臺應用程序的入口點。 // #include 'stdafx.h' #include 'TOcci.h' int _tmain(int argc, _TCHAR* argv[]) { using namespace happyever; TOcciQuery *query = new TOcciQuery(TOcciDatabase::getInstance('cal','cal','v2b76')->getConnect()); string strSQL = 'select count(*) from serv_value_total'; ResultSet* rs = query->executeQuery(strSQL); while(rs->next()) { std::cout<<'count = '<getInt(1)<} query->close(rs); delete(query); return 1; }

標簽: Oracle 數據庫
相關文章:
主站蜘蛛池模板: 国产成人综合亚洲亚洲欧美 | 日韩欧美毛片免费观看视频 | 夜精品a一区二区三区 | 9久久免费国产精品特黄 | 欧美日韩一区二区综合在线视频 | 九九视频在线观看6 | 免费观看a级网站 | 亚洲综合国产一区二区三区 | 看久久 | 一本色道久久爱88av | 久久精品成人国产午夜 | 成人在线免费视频 | 久久国产精品免费一区二区三区 | 亚洲国产精品自在现线让你爽 | 男人扒开双腿女人爽视频免费 | 黄网站色成年小说系列 | 亚洲欧美日韩在线不卡中文 | 最近韩国日本免费免费版 | 国产欧美日韩免费一区二区 | 欧美日韩在线观看区一二 | 日韩免费观看的一级毛片 | 欧洲色老头 | 9191精品国产费久久 | 一级做a爱过程免费视频时看 | 欧美最刺激好看的一级毛片 | 国产欧美成人免费观看视频 | 一个色综合久久 | 免费视频成人国产精品网站 | 欧美同性videos在线可播放 | 亚洲综合国产一区二区三区 | 欧美综合自拍亚洲综合百度 | 亚洲国产一区二区三区四区 | 欧美三级 欧美一级 | 亚洲国产第一区二区三区 | 一级毛片在线观看视频 | 久久99一区 | 特级毛片永久久免费观看 | 韩国免费a级毛片 | 最新国产精品自拍 | 台湾黄三级高清在线观看播放 | 香蕉久久夜色精品国产尤物 |