- - PR -
VBScriptエラー プロシージャの呼び出し、または引数が不正です。に関して
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-27 15:27
一つ質問させてください。
ASP(.netではなく)で業務用アプリを作成しています。 機能の一つに、SQLのSelect文の結果をファイルに書き出して、 ダウンロードするという処理があるのですが、テキストファイルに 書き出している途中に、VBScriptのエラーで 'プロシージャの呼び出し、または引数が不正です。'というエラー表示が されます。 ちなみに、ASP上の画面でコードによる検索ができ、それにヒットした件数分だけ テキストに書き出すとしていますが、その検索条件によってエラーが出たり出なかったり しています。 また、この現象については、テスト環境では発生していなくて、本番環境で起きました。 同じようなことが発生したという方、もしくは心当たりある方、アドバイスをお願いします。 <環境> Windows2000 Pro IE6.0 Oracle8i --> Database Oracle8.1.6 --> Client | ||||
|
投稿日時: 2006-01-27 16:03
Mooです。
エラー発生に起因するコードを提示できませんか? プロシジャのパラメータが正しくない場合にこのエラーは発生します。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vterrinvalidprocedurecallorargument.asp エラー表示例: Microsoft VBScript 実行時エラー エラー '800a0005' プロシージャの呼び出し、または引数が不正です。: 'mid' /err5.asp, 行 8 エラーの発生するコード例 <%'エラー発生のサンプル ERR=5 dim x,y x=0 y=0 %> <%= mid(x,y) %><% 'ここでエラーが出る %> _________________ ASP++ by Moo http://moo-asp.net/ ASP/ASP.NETだいすき。 [ メッセージ編集済み 編集者: Moo 編集日時 2006-01-27 16:09 ] [ メッセージ編集済み 編集者: Moo 編集日時 2006-01-27 16:11 ] [ メッセージ編集済み 編集者: Moo 編集日時 2006-01-27 16:13 ] | ||||
|
投稿日時: 2006-01-27 16:15
Mooさん、
返答に感謝します。 IE上でのエラー表示は、 Microsoft VBScript実行時エラー (0x800A0005) プロシージャの呼び出し、または引数が不正です。 /lipperapp/Result_obj.asp line154 です。 ちなみに、この154行目は、 テキストファイルにデータを書き込んでいる箇所です。 ->objListData.Write strData & " " (最後の空白はタブ区切りの記号としています。) | ||||
|
投稿日時: 2006-01-27 16:51
vbTab を使うべきなのでは? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-01-27 17:20
||| objListData.Write strData & " "
うーん、さすがに1行からでは情報が少なくて判断できません。 この行より前に実行されるコードには問題は無いのですか? たとえば... ・これはFSOですか? ・objListDataが正しいか確認してください ・strData のデータが正しいか確認してください 一応検証コードを貼っておきます <% call CreateFile 'TODO:後始末が不十分 Sub CreateFile() Dim Moo Moo="FSO!FSO!FSO!" Dim fso, objListData Set fso = CreateObject("Scripting.FileSystemObject") 'TODO:書き込み権の確認 Set objListData = fso.CreateTextFile("c:\tmp\testfile.txt", True) '1 行書き込みます。 objListData.Write Moo & " " objListData.Close End Sub %> _________________ ASP++ by Moo http://moo-asp.net/ ASP/ASP.NETだいすき。 [ メッセージ編集済み 編集者: Moo 編集日時 2006-01-27 17:30 ] | ||||
|
投稿日時: 2006-01-27 17:25
じゃんぬねっとさん、
返信、感謝いたします。 実際は、sakura editorで作成しており、そこではTabキー を押したときに、記号を入れて分かるようにしています。 でも、ご指摘通り、vbTabとしてみました。 | ||||
|
投稿日時: 2006-01-27 17:45
MOOさん、
お付き合い頂いて感謝します。 FSOを使用しております。 また、現状、データは出力されているのですが、なぜか途中まで しか書き出されていません。(例えば、件数が100件なら20件目の4番目のフィールドまで しか書き出されていない。) oo4oのバージョンとか関係していますでしょうか? テスト機のクライアントは、8iですが、本番は9iです。 念のため、プログラムを提示しますので、よろしければ参照ください。 <プログラム一部抜粋> <%@ language="vbscript" %> <% Option Explicit %> 'FileSystemObjectの生成 Const ForReading = 1, ForWriting = 2, ForAppending = 8 set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists("C:\Inetpub\wwwroot\LipperApp\obj_data.tsv") = false Then objFSO.CreateTextFile("C:\Inetpub\wwwroot\LipperApp\obj_data.tsv") Else objFSO.DeleteFile("C:\Inetpub\wwwroot\LipperApp\obj_data.tsv") objFSO.CreateTextFile("C:\Inetpub\wwwroot\LipperApp\obj_data.tsv") End If 'Basp21オブジェクト作成 Set boji = Server.CreateObject("BASP21") 'Get the form value strF_code = Request.Form("f_code") strF_code = UCASE(strF_code) strF_code = boji.StrConv(strF_code, strF_code = replace(replace(strF_code," ","")," ","") <% Set objListData = objFSO.OpenTextFile("C:\Inetpub\wwwroot\LipperApp\obj_data.tsv",2,True) For intCount_i = 0 to OraDS.Fields.count - 1 strTitle = OraDS(intCount_i).Name If intCount_i = OraDS.Fields.Count - 1 Then objListdata.WriteLine strTitle Else objListData.Write strTitle & vbtab End If Next strData = "" Do Until OraDS.EOF For intCount_i = 0 to OraDS.Fields.count - 1 strData = OraDS.Fields(intCount_i) If intCount_i = OraDS.Fields.count - 1 Then If IsNull(strData) Then objListData.WriteLine " " Else objListdata.WriteLine strData End If Else objListdata.Write strData & vbTab ←ここでエラーがでます。 End If strData = "" Next OraDS.MoveNext Loop objListData.Close Set OraDS = Nothing Set OraDB = Nothing Set objFSO = Nothing Set objListData = Nothing Set boji = Nothing %> <% End If %> | ||||
|
投稿日時: 2006-01-27 18:14
エラー発生箇所にもNULLチェックが必要かと思うのですが、どうでしょう?
|