ADOQueryで、以下のSQLを記述しているのですが、ActiveをTrueにすると、『ORA-01036 変数の名前/数が無効です』とエラーが表示されてしまいます。
ObjectBrowser上でこのSQLを実行すると、正常に動きます。またパラメータを指定せずに、値を直接記述しても正常に動きます。
また、自分のテーブル(TEST.がつかない場合)を指定すると正常に動きます。
初心者なので、説明が不十分かと思いますが、原因をご存知の方がいらっしゃいましたら、教えてください。宜しくお願いいたします<(_ _)>
<バージョン>
Delphi7
Oracle9i Release 2 Provider for OLE DB Version 9.2.0.2.0
MDAC 2.8
Oracle9.2.0.1.0
です。
<SQL>
select
*
from
TEST.コードマスタ
where
ID = :no
:noがパラメターになっていますので、これに値を入れないと変数に値が入っていません。
queryを開く前に
ADOQuery1.ParamByName('no').AsString := marumaru;
などとセットします。
HOtaさん、お返事ありがとうございます<(_ _)>
(昨日はお休みしてしまってお返事が遅くなって申し訳ございません...)
説明不足でごめんなさい。
フォームの画面で、SQLの結果をグリッド上に表示するため、オブジェクトインスペクタでプロパティのActiveの値をTrueにすると、『ORA-01036 変数の名前/数が無効です』が出てしまうのです。
プロパティのParametersにパラメータを設定し、任意の値を指定して実行しています。
自分のテーブルのものだとパラメータがあっても、ちゃんとグリッド上に表示されるのですが...
また、HOtaさんがおっしゃられるようにプログラム内でパラメータをセットして、queryを実行しても同じエラーが出てしまいます...
他の人のパソコンからだとうまく動くので、なんか壊れちゃったんでしょうか...?
MDACとOLE DB はインストールしなおしたんですが...
DataBaseに接続できていないのでは無いでしょうか?
TDataBaseの設定はどのようになってますか?
サーバーからエラーが返っているのでデータベースには接続できてると
思いますけど。
サーバーからエラーが返っているのでデータベースには接続できてると
思いますけど。
HOtaさん、この場合さん ありがとうございます。
パラメータを指定せずに、値を直接記述(ID='300')すると正常に動作するのでデータベースには接続できていると思います。
パラメータがあることと、別?のテーブルをみているのが気にいらないようです。パラメータをなしにするか、自分のテーブルにすると正常に動くんです...
別のパソコン(WinXP、Oracle9.2、Delphiなし)で同じExeを実行すると
同じエラー『変数の名前/数が無効です』が表示されました。
WinXpでOracle9の環境だと動かないのでしょうか...
同じ環境(WinXp,Oracle9.2,Delphi7)の方で、試していただける方がいらっしゃいましたら結果を教えていただけないでしょうか?
宜しくお願いいたします <(_ _)>
WHERE句を下記に変えてみたらどうですか?
select
*
from
TEST.コードマスタ
where
TEST.コードマスタ.ID = :no
オラクルの環境がないので分かりませんが さん ありがとうございます。
TEST.コードマスタ.ID = :no に変えてみましたが、同じエラー『変数の名前/数が無効です』が表示されました...
ツイート | ![]() |