• 締切済み

VBとSQLServerのセッションが切れる時のイベント

お世話になっております。 VB6.0、SQLServerを利用して開発を行っています。 セッションが切れてしまうことで不具合が生じていて現在対応のため調査しているのですが・・・ VBのイベントでセッションが切れる瞬間のイベントというのは存在するのでしょうか?

みんなの回答

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.5

ミドルウェアは? ADO?RDO? 下記で取れませんか? ADOの場合。 Dim WithEvents adocon As ADODB.Connection Private Sub adocon_Disconnect(adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection) '処理を記述 End Sub RDOの場合。 Dim WithEvents rdocon As RDO.rdoConnection Private Sub rdocon_Disconnect() '処理を記述 End Sub なんとなく、無理そうですが。

rokiko_d-_-b
質問者

お礼

ADOです。 やってみます! ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.4

自分のDBアプリの作るときのやり方ですが 接続しっぱなしではなくて必要なときに接続して 必要なくなったらすぐに閉じます。 画面にDBの情報を出したいときに接続して 表示したら接続を切りデータをいじりたいときや 追加したいときに接続してその処理が終了したら すぐに切ります。 ですからフォームを閉じる時って状態まで 接続しっぱなしにはしないですね。

すると、全ての回答が全文表示されます。
回答No.3

>ある画面のフォームを閉じたときにDBのワークを削除する処理が unloadイベントでその処理をやっていると言うことですか? とりあえずのその処理周りをワンステップずつ確認しながら 実行してみるのは?

rokiko_d-_-b
質問者

補足

unloadイベントでワークを削除しています。 ただ、(メタフレームを利用しているため)セッションが切れてしまうとUnloadイベントは処理されないのです。 なのでDBとの接続のセッションが切れるタイミングをなんとか取りたいと考えています。ただ、そのイベントを取得してワークを削除する処理を実行したらまたセッションが維持されますね。。。

すると、全ての回答が全文表示されます。
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>セッションが切れる瞬間のイベント 切れる時のイベントはないと思うのですが 例えば Dim rcd As Long On Local Error Resume Next ・・処理・・ rcd = Err On Local Error GoTo 0 If rcd <> 0 Then ・・・ end のようにエラーをトラップするとか ADOのエラーコレクションを使ってado宣言名.errors.countでエラーの数を参照するとか。

rokiko_d-_-b
質問者

補足

やはりセッションが切れるタイミングのイベントってないんですね・・・。 困りました… 状況としましては、プログラム的には問題なく動いていて、エラーとラップを利用して回避できるような状況ではないんです。 セッションが切れる瞬間にDBのワークを削除してからセッションが切れるというのが理想なんです。でも実現したとしても、DB削除が実行されたらセッションは持続されますね・・・仕様的に問題なのか疑問もありますが。

すると、全ての回答が全文表示されます。
noname#187541
noname#187541
回答No.1

こんにちは。 どんな不具合か分かりませんが、エラーになるのなら On Error Resumn Next や On Error Goto 等でエラー処理をすればいいのでは?

rokiko_d-_-b
質問者

補足

記述が少なくてすみません。 システムエラーなどの不具合ではないんです。 これはシステムの構造的な問題なのですが、 ある画面のフォームを閉じたときにDBのワークを削除する処理が 実行されているのですが、その処理が実行されずに セッションが切れてしまうと次回起動時にワークにデータが 残っているため起動できないという現象が発生してしまうんです。 ただ、起動時に削除するわけにはいかない仕様が盛り込まれているため、 セッションタイムアウト時のイベントがどうしても取得したいのです。

すると、全ての回答が全文表示されます。

関連するQ&A