- PR -

DB 切断方法について

1
投稿者投稿内容
小僧
大ベテラン
会議室デビュー日: 2005/06/24
投稿数: 122
投稿日時: 2005-08-22 18:02
こんばんは。

ちょっと気になってしまい、本日午後一杯使って調べたのですが、
中々有意義な情報が得られなかったのでお聞きしたいと思います。

OS HP-UNIX
DB Oracle 9i
Server C 言語
Client VB 6.0 SP 5
で開発を行っています ( C/S システムです )。

C で DB に接続する際は
「EXEC SQL CONNECT :UserId IDENTIFIED BY assWord;」で接続しています。

気になっているのは切断なのですが、
前のプロジェクトでは「Commit」した後、
「EXEC SQL CONNECT RESET;」としていました。

が、今のプロジェクトだと
「EXEC SQL COMMIT RELEASE;」を使っています。
これだと、「コミットしつつ DB 切断を行う」という命令文だと思うのですが、
なんか違和感を感じます。
( 一つの命令で 2 つの作業を行うように見えてしまうので )

多分、どちらも切断に関しては問題ないと思うのですが、
皆様はどちらを使っていますでしょうか?
また、その際のメリットなどがあれば合わせて
ご意見を聞かせて頂きたいと思います。

宜しくお願いいたします。
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-08-22 18:36
引用:

小僧さんの書き込み (2005-08-22 18:02) より:
OS HP-UNIX
DB Oracle 9i
Server C 言語
Client VB 6.0 SP 5
で開発を行っています ( C/S システムです )。


ということはC言語はPro*Cです?


引用:

C で DB に接続する際は
「EXEC SQL CONNECT :UserId IDENTIFIED BY assWord;」で接続しています。

気になっているのは切断なのですが、
前のプロジェクトでは「Commit」した後、
「EXEC SQL CONNECT RESET;」としていました。

が、今のプロジェクトだと
「EXEC SQL COMMIT RELEASE;」を使っています。
これだと、「コミットしつつ DB 切断を行う」という命令文だと思うのですが、
なんか違和感を感じます。
( 一つの命令で 2 つの作業を行うように見えてしまうので )

多分、どちらも切断に関しては問題ないと思うのですが、
皆様はどちらを使っていますでしょうか?
また、その際のメリットなどがあれば合わせて
ご意見を聞かせて頂きたいと思います。

宜しくお願いいたします。



Pro*Cだとしての話ですが、
Oracle9iR2のPro*C/C++のドキュメントに
「EXEC SQL CONNECT RESET;」がありませんでした。

ググって見たらDB2の情報ばかり出てくるのですが・・・(^^;
#なので利点などのお話は私には分かりませんでした。


で、私のPro*C経験ではCommit(もしくはRollback)Releaseしかないです。
Disconnectし忘れないように書きなさいって
規約になっていたので・・・。
小僧
大ベテラン
会議室デビュー日: 2005/06/24
投稿数: 122
投稿日時: 2005-08-22 19:07
こんばんは。

返信ありがとうございます。

>ということはC言語はPro*Cです?
そうです。
これもきちんと書かないで申し訳ないです。

今思い出しましたが、前のプロジェクトは DB2 でした。
なので、これは DB2 か Oracle かの違いなのでしょうか。
だとしたら、かなり恥ずかしいです。。。
しかし、すっきりしたので良かったです。

ちなみに、その時は
Commit 実行時の SQL コードを取得して
0 以外だったら Rollback 、という処理を行うのが一般的なのでしょうか?

前のプロジェクトだと、 Commit か Rollback を行って
そのまま終了していましたが、現在はきちんと SQL コード判定を行っているので。。。
初歩的な質問ですいませんが、皆様のコーディングポリシーなどを
聞かせて頂ければうれしく思います。
1

スキルアップ/キャリアアップ(JOB@IT)