
仕事でASPを使用してWeb画面を開発してます。
環境は、Windows2000+IIS5.0+Oracle8i です。
先日、他の処理と同じようにデータベースを検索し、
条件に一致したデータを抽出したところ、
「ASP 0240 スクリプト エンジンの例外が発生しました 」という
エラーが生じてしまいました。
やっている処理内容は、以下の通りです。
1:objCon.Open
2:
3:strSQL = "select xxx,yyy from ABC"
4:
5:objRS.Open strSQL, objCon, 3, 3
6:If objRS.EOF = True Then
7:a = objRS("xxx").value
8:b = objRS("yyy").value
9:end if
上の7行目を実行すると、エラーが発生してしまいます。
もちろん、ここで実行されるSQL文は正しい構文です。
マイクロソフトでこの「スクリプト エンジンの例外が発生しました 」の
エラーの生じた原因と対処方法を調べようとしたのですが、よくわかりませんでした。
このエラーはどのような原因で起こり、どのように対処すればよろしいのでしょうか?
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
こんにちは。
「ASP 0240 スクリプト エンジンの例外が発生しました」というエラーはあまり見ないですね。
ネットで検索しても、使える情報が見つかりませんし。
よほど深刻なエラーか、よほど初歩的なエラーの可能性があります^^;
まず、サーバには最新のパッチが当てられていますよね?
あと、Oracleには何接続なのでしょうか。
ODBCですか?oo4oですか?ADOですか?
> 先日、他の処理と同じようにデータベースを検索し、
> 条件に一致したデータを抽出したところ、
他の処理では、うまく動作しているんですよね?
SQLを実行して、検索結果を取得できているんですよね?
正常に動作する場合と、正常に動作しない場合の違いはなんでしょうか。
例に記されているSQLと違って、難しいSQLを実行している、ということはありますか?
または、同一ソース内でobjRSをCloseしないで再びOpenしている、ということはありますか?
この回答への補足
返事が遅くなってすみません。
オラクルへの接続は、MicrosoftODBCDriverforOracleを使用しています。
>正常に動作する場合と、正常に動作しない場合の違いはなんでしょうか。
参照している列が違うのみで、SQL文は至って普通のselect文を発行しています。
なんかお気づきの点ありましたら、ご指摘下さい。
宜しくお願い致します。
No.5
- 回答日時:
OLE DBプロバイダーはOracleのものですか?マイクロソフトのものですか?
この2つのフィールドの中身が全てスペースということはありませんか?
どちらがどちらだったか忘れましたが、どちらかのプロバイダはNet上に送信されるデータ量を減らすために、文字項目にはTrimがかけられ、後ろについているスペースが削除される仕様になっているはず。なので項目の中身が全てスペースだとNULLになってしまいます。
NOT NULLに設定されている項目にNULLがセットされて返ってきたみたいな感じでプロバイダー内でエラーになります。
1つラッピングを増やして、DSNを作成しODBC OLE DBプロバイダーを使用してみると解決するかも。
この回答への補足
問題の生じる環境では、マイクロソフトの方を使用しています。
>1つラッピングを増やして、DSNを作成しODBC OLE DBプロバイダーを使用してみると解決するかも。
情報ありがとうございます。
早速やってみたいと思います。
No.3
- 回答日時:
値がNULLなんてことは?
この回答への補足
アドバイスありがとうございます。
NULLというのはDBから抽出される値の事でしょうか?
たしかにNULLという事もあり得ると思いますが、
試しにNULL以外のデータを入れてもダメでした。
どうぞ、よろしくお願いします。
No.1
- 回答日時:
>6:If objRS.EOF = True Then
>7: a = objRS("xxx").value
レコードセットに結果がなかったらxxxの値を取得しています。
そりゃ結果ないですよね。
If objRS.EOF = False Then
では?
この回答への補足
すみません。提示したサンプルが間違ってました。
1:objCon.Open
2:
3:strSQL = "select xxx,yyy from ABC"
4:
5:objRS.Open strSQL, objCon, 3, 3
6:If objRS.EOF = false Then
7: a = objRS("xxx").value
8: b = objRS("yyy").value
9:end if
正確には上の通りです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数式は残し値をクリアするマク...
-
UserForm1.Showでエラーになり...
-
HTMLソースが表示のページのも...
-
ACCESS VBAのSplit()関数の使用...
-
mailstorehomeのエクスポートで...
-
objectタグを使用してEXCEL出力
-
ISNAとISERRORの使い方の違い
-
コンボボックスの特定項目だけ...
-
LaTeXのエラーについて(コンパ...
-
VBAのエラーについて
-
CSV出力時、件数によりエラーと...
-
スクリプト エンジンの例外が発...
-
MDBへレコード挿入中にエラーが...
-
教えて下さい
-
配列数式の解除
-
Libre office マクロ
-
マクロを組んで作業するのは実...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
【マクロ】【画像あり】4つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
On ErrorでエラーNoが0
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
マクロで"#N/A"のエラー行を削...
-
VBAのリストボックスで、横スク...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
Filter関数を用いた結果、何も...
-
文字列内で括弧を使うには
-
【VB.NET】 パワポ操作を非表示で
-
レコード登録時に「演算子があ...
おすすめ情報