• 締切済み

ASPエラー時の内容を任意で画面表示

DBテーブルへの登録において、複数のテーブルに登録する為、 トランザクションを使用しているのですが、 この際、処理はじめにon error resume next を 記述しています。 通常はASPでエラーが発生した時点で、 エラー行とその内容を表示しますが、 これらをロールバックが終わった時点で表示したいのですが表示できません。 ちなみにErr.Lineを取得しても値なしです。 どなたか助けてください!!! よろしくお願いします。

みんなの回答

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.1

参考意見として聞いて下さい。 DB関連などの主要なロジックはASP上でゴリゴリ書かず VB6などを使ったActiveX.DLLに移してしまいます。 VB6(VisualBasic6.0)はもう新規購入ができないので、 お持ち合わせがあれば、ということになりますが。 (OfficeのDeveloperEdisionでも可能かも知れませんが こちらは未確認です。) 私はこの方法でFunctionプロシージャばかりの クラスモジュールを作成してASPとは配列受け渡しで 処理しています。 クラスモジュールのFunctionプロシージャ内は、 普通のVB記述なので、On Error Goto HOGEHOGEで 記述できるので、エラーコメントをASPに返すことも 可能です。(戻り値のIsArrayがFalseならエラーとか) これでASP側は<% %>タグ内は簡略化されるので、 開発効率もかなり上げられるはずです。 クラスモジュール側の開発は、標準EXEのプロジェクトと プロジェクトグループを作ってテストするとか、 出力系だとExcel内でクラスモジュール部分だけ 組み込んで作成や検証ができます。

関連するQ&A

  • エラー行の表示

    入力フォーム登録時に複数のテーブルを更新する為、エラーに備えトランザクション処理を入れています。 エラーが出た場合、任意にerr.number,err.escriptionを表示していますが、err.lineがでません!!! エラー内容だけではどこなのかわかりかねますので、非常に困っています。 WebサーバのOSは2000SERVERです。IISのバージョンは・・・どうやってみるかわかりません。。。使用しているDBはSQL-SERVER2000です。 よろしくおねがいします!!!!

  • エラー処理

    環境:IIS,ASP(VBScript) サーバー Windows2000Server ASP超初心者です。 処理の途中でエラーになっても On Error Resume Next と If Err.Number then ........ を組み合わせればうまく逃げられるのはわかるの ですが、On Error Resume Nextを書いてもエラー が表示されて落ちます。 #include file の中についてはOn Error Resume Nextは無効なのでしょうか?

  • ASPでトランザクションをかけるとエラーする「ファイアーホースモード」

    ASPでSQLserverに接続し、レコードの更新をかける際に、 BeginTrans---CommitTrans と記述すると、 「ファイアーホースモードの場合はトランザクションがかけられない」という 主旨のエラーが出ます。 このファイル内でトランザクションをかけている場面はここのみです。 (複数書いていてCursorTypeを設定しないとエラーするのは既に 解決済みです。) そもそも、「ファイアーホースモード」とはどんなモードなのでしょうか?

  • asp+dllでのcommitの有効範囲

    aspでトランザクション(BeginTrans、CommitTrans)を定義し、 そのトランザクション内でDB更新機能を持ったdllを使用したとします。 この時、dllでDB更新エラー時DBに対しロールバッグはかけることは可能 でしょうか  asp  BeginTrans  dllを呼ぶ  dllが不正終了時、aspを終了する  CommitTrans  dll   DBを更新(DLL内ではbegintran、committranはしない) もちろんDLLはサーバー内で動かします。 DBはsql server、DLLはvb6.0で作成します。 どうかお力添えを、、、

  • commitがうまくできません

    PHP4でDBへのトランザクション処理を行いたいと思うのですが、commitがうまく動いてくれません。 うまくいかないのはエラーがあったのにロールバックを行ってくれません。 私の見たところ20行程度までなら動いてくれるのですが、それ以上になると動作してくれません。 このような事があった方、何か間違っているところなどがありますでしょうか?

    • 締切済み
    • PHP
  • VBScriptでレコードがない場合エラーになる

    VBScriptを使ってHTAを作っています。 ちょっと疑問なのですが、以下のようなコードでレコードがないと 「カレントレコードがありません」というエラーになってしまいます。 txtSQL = "SELECT * FROM test" Set rs = db.OpenRecordSet(txtSQL) ' dbはDAOのデータベースオブジェクト プロシージャで On Error Resume Nextすればエラーになりませんが、 そうなるとありえる全エラーをErrオブジェクトを使ってcatchしないと いけなくなり面倒です。 On Error Resume Nextなしで、ありえるエラーの中で特定のものを (今回は「カレントレコードがない」エラーです)エラーでなくす ことはできないのでしょうか? または プロシージャの中で On Error Resume Nextを使って、 プロシージャの途中でまたエラーで停止するような命令はない のでしょうか? 教えていただけると幸いです。

  • ASPでDB接続エラー非表示方法

    業務で久しぶりにASP(.Netではありません)をいじっています。 お客様よりの要望でDB障害時などで自動的に表示されるDB接続エラーを他の画面に置き換えたいとの要望を頂いたのですが、 回避の仕方が今ひとつわかりません。 (global.asa内でAplication_ON_STARTにDBとの接続確認を行えばよいのではないかと思っているのですが) 基本的な内容で申し訳ございませんが、知識をお持ちの方お教えいただけないでしょうか。

  • ASP エラーチェック VBScript

    プログラミング初心者です。 現在ASPの勉強のために簡単な検索、登録システムを作っています。 検索でも登録でもそうなのですが、入力内容にエラーがあった場合にASP側でチェックをしてHTML内にエラーメッセージを表示させるという仕様にしているのですが… エラーメッセージを表示させる際にHTMLを再読込するので入力した内容がクリアされてしまい困っています。 エラーを含む入力した内容はクリアせずにエラーメッセージを表示させるにはどうしたらよいのでしょうか?? 非常に基本的なことなのかもしれませんが…どなたかご教授よろしくお願いします。

  • 【2005】トリガエラー時の呼び出し元のコミット

    はじめまして。 現在、SQLServer2005を利用したアプリケーションのメンテナンスを行っています。 今回、あるテーブルに変更があった際に、その内容を他テーブルに登録するという内容のプログラムを作成しています。 本来であれば、アプリケーション側にてそのテーブルに対する変更時に、併せてもう一つのテーブルに内容を書き込めばいいのですが、現状のアプリケーションが全体の仕様書がなく、該当テーブルに変更を行う部分を全て洗い出すことが難しい状況となっています。 そのためにトリガにて処理を行おうと考えています。 ここで、質問です。 トリガ内でエラーが発生した時、通常であれば呼び出し元のクエリまでロールバックされてしまいますが、トリガでの処理のみロールバックを行い、呼び出し元の処理はコミットしたいと考えています。 トリガ内にて例外をcatchして、その部分でraiserrorを発行しなければ 可能かと思い、そういう実装を行ったのですが、やはり呼び出し元のクエリまでロールバックされてしまいます。 トリガでの処理のみロールバックし、呼び出し元のクエリはコミットするような方法をご存知でしたらご教示ください。 よろしくお願いします。

  • インポート時のエラーについて

    新サーバーのOracleにTABLESPACEを作成したのですが、旧サーバーで保管したデータをインポートしようとすると一部件数の多いテーブルでエラーが発生します。内容は IMP-00003:Oracleエラー:1562が発生しました。 ORA-01562:ロールバックセグメント番号:2を拡張できません。 ORA-01628:最大エクステント:121に達しました(ロールバックセグメント:RB1)。 IMP-00028:前の表の部分インポートがロールバックされました(XXXXX行)。 データ用TABLESPACEはサイズ5GBで DEFAULT STORAGE(INITIAL 1024K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50) TEMP用とROLLBACK用TABLESPACEはそれぞれサイズ500MBで DEFAULT STORAGE(INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 512 PCTINCREASE 50) ロールバックセグメントは3つ作成し、それぞれ initial 3M next 3M optimal 50 M  で作成しました。 Oracleは7.3です。設定の間違いや、対策はないでしょうか?