- - PR -
ASPよりC#COMの呼び出しについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-01-16 12:12
お世話になっております。
ASPよりC#COMを呼び出していますが、 COMからのバリアント配列の受け取りが上手く行きません。 処理としてstrSQLに指定されたクエリ実行SQLを実行し、結果を 配列にセットして返却します。(最終的には2次元配列にしたい。) 実行すると、次のエラーが表示されます。 ------------------------------------------------------------- ●エラー タイプ Microsoft VBScript 実行時エラー (0x800A0005) プロシージャの呼び出し、または引数が不正です。: 'ExecQuery' /test.asp, line 34 ←'クエリ実行の行を示します。 ------------------------------------------------------------- なんとなくマーシャリングがあやしい?と思っているのですが・・。 サポートされていないのでしょうか? また、VB上ではきちんと動いているのですが、ASP上からの動作が エラーになります。 ソースを下に載せておきました。 もし、ご存じの方いましたら、ご教示頂けないでしょうか? 以上、宜しくお願い致します。 #WindowsXP(SP1),2000(SP4) + IIS #VisualSutdio .NET2003 #VisualSutdio6.0(SP5) ////////////// //添付ソース ////////////// 【C#COMのI/F:ProgID=Test.ExecCommand】 //------------------------------------------------------------------ //クエリ実行I/F //------------------------------------------------------------------ int test( [In]string strSQL, //SQL文 [Out,MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] out object[] objResult); //結果セット 【ASP側のコード:test.asp】 Dim obj Dim Result Dim rows Dim cols Dim row Dim col Dim ret dim sql 'COMインスタンス生成 set obj = CreateObject("Test.ExecCommand") 'SQL文作成 sql = "select * from test" 'クエリ実行 ret = obj.ExecQuery(sql, Result) '件数取得 rows = UBound(Result, 1) '列数取得(とりあえず、コメント) 'cols = UBound(Result, 2) '結果表示 For row = 0 To rows Response.Write(Result(row)) Next |
1