dポイントプレゼントキャンペーン実施中!

お世話になっております。

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

A 回答 (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

なんとなく、無理そうですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/10 14:06

自分のDBアプリの作るときのやり方ですが


接続しっぱなしではなくて必要なときに接続して
必要なくなったらすぐに閉じます。

画面にDBの情報を出したいときに接続して
表示したら接続を切りデータをいじりたいときや
追加したいときに接続してその処理が終了したら
すぐに切ります。

ですからフォームを閉じる時って状態まで
接続しっぱなしにはしないですね。
    • good
    • 0

>ある画面のフォームを閉じたときにDBのワークを削除する処理が


unloadイベントでその処理をやっていると言うことですか?
とりあえずのその処理周りをワンステップずつ確認しながら
実行してみるのは?

この回答への補足

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

補足日時:2006/05/09 10:12
    • good
    • 0

>セッションが切れる瞬間のイベント


切れる時のイベントはないと思うのですが
例えば
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でエラーの数を参照するとか。

この回答への補足

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

補足日時:2006/05/08 14:02
    • good
    • 0

こんにちは。



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

この回答への補足

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

ただ、起動時に削除するわけにはいかない仕様が盛り込まれているため、
セッションタイムアウト時のイベントがどうしても取得したいのです。

補足日時:2006/05/08 13:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!