- ベストアンサー
DBの接続について
昨日も同じ質問したのですが また、助けてください DBの接続状態がしりたいのですが DBの接続状態を認識させるために If OraDatabase.State = adStateClosed Then DB_Connect End If ってコーディングいたしました が、一行目でエラー発生でその後の処理が 通りません DB接続部はこんな感じです。 Private Sub DB_Connect() On Error GoTo ERR Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.OpenDatabase("ALARM", "ALARM/SHINKO", 0&) End Sub どうか助けてください お願いします 開発環境VB6.0 DBはオラクル9iです
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
昨日回答したものです。 ADOと言われていましたが、oo4oですね。 動かないのは当然です。 ステータスを確認できるプロパティはないので、 エラーコードで判定することになります。 以下の様にしてDB_Connectを呼べば、接続しているいないに関係なく接続できます。 Private Sub DB_Connect() Set OraDatabase = Nothing Set OraSession = Nothing Set OraSession = CreateObject("OracleInProcServer.XOraSession") if err <> 0 then MsgBox "データベースに接続出来ません。" end end if Set OraDatabase = OraSession.OpenDatabase("ALARM", "ALARM/SHINKO", 0&) if err <> 0 then MsgBox "データベースに接続出来ません。" end if End Sub
その他の回答 (3)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
#1です 失礼しました。 文法間違いとは・・・ #1の発言は無視してください。
- Azzuri
- ベストアンサー率68% (34/50)
#2ですが、いちいち接続しているか確認するよりも、 最初に接続しておいて、アプリケーション終了時に 接続を解除する方法が普通だと思います。負荷も かかりませんし。 データの取得・更新時に失敗した場合、ネットワークか DBに問題があるわけで、プログラムからすれば ロールバックなどでデータを保護する以外に手立ては ありません。
お礼
ありがとうございます 現状の流れを変えたくなかったため 接続の確認をしたかったのですが 素直に接続を切って再接続という流れに 変えようと思います。 またなにかあったらよろしくお願いします ほんとありがとうございました
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
msgbox OraDatabase is Nothing If OraDatabase.State = adStateClosed Then DB_Connect End If として、メッセージボックスに"True"が表示されませんか?
補足
何度もすみません 違うプログラムと 勘違いをしておりました この場合DBの方にセッションがたまりませんか? 大丈夫であればこれで再チャレンジを してみようと思います