mdbに対してのクエリー

解決


岸田光明  2004-12-29 04:10:18  No: 12520  IP: 192.*.*.*

おせわになります。

今回、Delphi7で、DBExpress等を使い下記のSQL文を実行してみたた際に

-----------------------------------------------------------
Query1.SQL.Add('SELECT * FROM fuji_tb where name="高島彩"');
-----------------------------------------------------------

MYSQLだと、きちんと処理がされるのに、ACCESS2003のMDBファイルだと
-----------------------------------------------------------
ODBC  Microsoft Access Driver パラメーターが少なすぎます。1を指定してください。
-----------------------------------------------------------
と、エラーが出てしまいます。

そこで、下記のようにabcと入れた場合はだいじょうぶようなので
-----------------------------------------------------------
Query1.SQL.Add('SELECT * FROM fuji_tb where name=abc');
-----------------------------------------------------------
たぶん全角が使えないのだと思うのですが、対処方をおしりになりましたら
是非教えていただきたいのですが

よろしくおねがいいたします。

編集 削除
HOta  2004-12-29 12:00:11  No: 12521  IP: 192.*.*.*

これは、ACCESS2003側で、SELECT * FROM fuji_tb where name="高島彩"が正常に動作するかどうかの問題でしょう。
ただ、SELECT * FROM fuji_tb where name=abcが通るのが解せません。

編集 削除
@っしー  2004-12-29 12:21:24  No: 12522  IP: 192.*.*.*

Access2003 は持ってないので、未確認なんですが。

Where句をパラメータ渡しで処理すると、どうなりますか?

編集 削除
通りすがり  2004-12-29 12:53:26  No: 12523  IP: 192.*.*.*

Query1.SQL.Add('SELECT * FROM fuji_tv where name="高島彩"');
でなくて
こんな気がしますが。。。
Query1.SQL.Add('SELECT * FROM fuji_tv where name=''高島彩''');
勘違いでしたらごめんなさい。

編集 削除
岸田光明  2004-12-29 13:48:41  No: 12524  IP: 192.*.*.*

HOtaさん、@っしー さん、通りすがりさんありがとうございます。

原因は、通りすがりさんの指摘通り”ではなく''でした。
MYSQLでは通っているのに違ったんですね

@っしー さんの言っていました、パラメーター渡しとは
オブジェクトインスペクターのSQLにSQLを書いて
変数で渡すやつだと思うのですが、やりかたが判らず
これから勉強したいと思います。

今回はどうもありがとうございました。
今後とも宜しくおねがいいたします。

編集 削除