- - PR -
エラー '80040e21'
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-30 09:45
従前NT4.0Serverで動かしていたASPを2003Serverに移行しているのですが
エラーが出て動かない部分があるので教えて下さい。
この行で「エラー '80040e21'」が発生します。 対象となるSQL文を
とかのシンプルなものにしても同じエラーになります。 対象となるSQL文を
としてパラメータの数を減らしたら Microsoft OLE DB Provider for ODBC Drivers エラー '80040e21' 複数ステップの OLE DB の操作でエラーが発生しました。各 OLE DB の状態の値を確認してください。作業は終了しませんでした。 となりエラーメッセージが変わりました。 本来の「エラー '80040e21'」には他の詳細メッセージが出ていません。 どこを見直したらよいのかアドバイスいただけるようお願い致します。 | ||||||||||||
|
投稿日時: 2007-01-30 10:12
http://www.google.co.jp/search?hl=ja&q=80040e21 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-30 10:26
select ? from dual の ? ってなんですか?
_________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-01-30 10:51
>じゃんぬねっとさん
googleでは該当しそうなものが見つかりませんでした。 (他の詳細メッセージが出ていないからわからないんですよ) >かるあさん 普通なら select * from table1 where column1 = ? とでも書くのでしょうが oracleの場合、dual表は単一行の戻り値を持つ関数に使用したりします。 例えば select sysdate from dual とか select 2 * 3 from dual とかです select 1 from dual でもOKなのでテスト的にパラメータを戻り値に設定してみました。 | ||||||||||||
|
投稿日時: 2007-01-30 11:05
こんにちは。
パラメータなしでレコードセットを読めますか? # 例えばselect * from dualとか 読めたなら、パラメータの指定方法がNGだと推測して そのあたりを調査されてはいかがでしょうか。 # type=20ってなんでしたっけ。。。 | ||||||||||||
|
投稿日時: 2007-01-30 11:06
かるあさんは ? と YYYYMM1がスペースで分かれていたので、
その部分を指摘するため、たずねたのではないでしょうか? 書き間違えかもしれませんが、実際は ? と YYYYMM1はスペースで 分かれていますか? パラメータを指定せずに select 1 from dual にした場合は正常に動作するのでしょうか? パラメータを指定するとエラーになるのか、パラメータを指定しなくてもエラー になるのか切り分けをしてみてはどうでしょう? [ メッセージ編集済み 編集者: Katze 編集日時 2007-01-30 11:07 ] | ||||||||||||
|
投稿日時: 2007-01-30 11:41
解決しました。
ゆいたんさん と Katzeさん のアドバイスに従い select sysdate YYYYMM1 , sysdate YYYYMM2 from dual として実行しエラーが出ないことを確認しました。 次にCreateParameter("YYYYMM1",20,1,6,wYYYYMM)を CreateParameter("YYYYMM1",3,1,6,wYYYYMM)にしたら正常に表示されました。 ちなみに20:asBigint、3:adIntegerです。元々が何故20を指定していたのかは不明ですが 年月日8桁しか入らないので"3"で問題はありませんね。 ありがとうございました。 |
1