*-- To Tell The Truth --*
Cruz
MAIL
HOME
|
|
2003年08月26日(火) ■ |
|
接続完了 |
|
懸案であったホスト文字列のなぞが解けたので、無事DBに接続する事ができた。 ふぅ〜、やれやれ。 あとは作りこめばいいだけだ。
ひさびさのソース覚書き公開(笑)
class COCCIConnect{ public: COCCIConnect(); virtual ~COCCIConnect(); BOOL LoginCheck(HWND); // 接続チェック
private: Environment *occi_env; Connection *occi_con; Statement *occi_st; ResultSet *occi_rs;
void login_com_error(SQLException &, HWND); // DB接続エラー void dump_com_error(exception &, HWND); // DB接続以外のエラー
};
COCCIConnect::COCCIConnect() { occi_rs = NULL; occi_env= Environment::createEnvironment(Environment::DEFAULT); }
COCCIConnect::~COCCIConnect() { occi_env->terminateConnection(occi_con); }
BOOL COCCIConnect::LoginCheck(HWND hWnd) { try{ occi_con = occi_env->createConnection(gDB.cpUserID, gDB.cpPassword, gDB.cpServerName); } catch(SQLException &se){ login_com_error(se, hWnd); return FALSE; } catch(exception &e){ dump_com_error(e, hWnd); return FALSE; }
return TRUE; }
void COCCIConnect::login_com_error(SQLException &se, HWND hWnd) { char cpMsg[CHAR_MAX * 3];
sprintf(cpMsg, "ログインに失敗しました。\n\nCode[%08lx] Code meaning[%s]\n", se.getErrorCode(), se.getMessage());
MessageBox(hWnd, cpMsg, "DB CONNECT ERROR", MB_OK | MB_ICONSTOP); }
void COCCIConnect::dump_com_error(exception &e, HWND hWnd) { char cpMsg[CHAR_MAX * 3];
sprintf(cpMsg, "データベース接続に失敗しました。\n\n%s\n", e.what());
MessageBox(hWnd, cpMsg, "DB CONNECT ERROR", MB_OK | MB_ICONSTOP); }
|
gDB.cpServerNameってとこがホスト文字列。 oraocci9.libとoci.libのリンクを忘れずに。 occi関連のヘッダファイルのインクルードも。
あと、なんかエラーが出てOCCIが組み込めないって人。 あたまで#define WIN32COMMONしてやってください。 おそらくそれをすることによって、windows用のC++になるのだろう。 OCCIは、win専用ってものじゃないからね。
|
|