ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Visual Basic User's ClubコミュのASPで、DB接続に失敗したときの処理

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして、こんばんわ。
いきなり質問ですいません。
Dim con
Dim rs
Dim strSQL
Dim rcnt

On Error Resume Next
Set con = Server.CreateObject("ADODB.Connection")
con.ConnectionString = "Provider=SQLOLEDB;User ID=****;Password=****;
 Data Source=****;Initial Catalog=****"
con.Open
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, con, 3
rcnt = rs.RecordCount
〜加工処理〜
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing
〜HTML〜
<% If Err.Number <> 0 Then %>
〜DB接続エラーなどの画面〜
<% ElseIf rcnt>0 Then %>
〜通常画面〜
<% ElseIf rcnt = 0 %>
〜DataNotFound画面〜
<% End If %>

なカンジで画面を作っているのですが、
On Error Resume Nextが実行時エラーしかトラップしてくれないので、
DB接続エラー時の処理が上手くいきません。
ConnectionオブジェクトのErrorsも使ってみたのですが、
どうも上手くいきませんでした。
「エラー タイプ
Microsoft OLE DB Provider for SQL Server (0x80004005)
SQL Server は一時停止しています。新たに接続することはできません。
/jmdbase_new/test_old.asp, line 49

こんな画面を出さずに、こちらの用意した画面を出したいのですが
どうすれば良いでしょうか?

何か足りない情報とかありましたらよろしくお願いします。

コメント(2)

ASPの実行環境が手元にないので推測ですが、
オブジェクト生成時か、Openをかけたところで
Err.Numberが0以外になってませんか?

具体的には
|con.Open
の次の行に
if Err.Number<>0 Then ・・・
が必要かな?と・・・
お返事が遅れました。
ありがとうございます。
Error発生時の仕組みをよく理解してませんでした。

|con.Open
の次の行に
if Err.Number<>0 Then ・・・

おかげさまで無事に解決できました。
どうもです☆

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Visual Basic User's Club 更新情報

Visual Basic User's Clubのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング