• ベストアンサー

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です

質問者が選んだベストアンサー

  • ベストアンサー
  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.2

昨日回答したものです。 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

bell9
質問者

補足

何度もすみません 違うプログラムと 勘違いをしておりました この場合DBの方にセッションがたまりませんか? 大丈夫であればこれで再チャレンジを してみようと思います

その他の回答 (3)

回答No.4

#1です 失礼しました。 文法間違いとは・・・ #1の発言は無視してください。

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.3

#2ですが、いちいち接続しているか確認するよりも、 最初に接続しておいて、アプリケーション終了時に 接続を解除する方法が普通だと思います。負荷も かかりませんし。 データの取得・更新時に失敗した場合、ネットワークか DBに問題があるわけで、プログラムからすれば ロールバックなどでデータを保護する以外に手立ては ありません。

bell9
質問者

お礼

ありがとうございます 現状の流れを変えたくなかったため 接続の確認をしたかったのですが 素直に接続を切って再接続という流れに 変えようと思います。 またなにかあったらよろしくお願いします ほんとありがとうございました

回答No.1

msgbox OraDatabase is Nothing If OraDatabase.State = adStateClosed Then   DB_Connect End If として、メッセージボックスに"True"が表示されませんか?