IBQueryの動的SQL発行について

解決


サンプー  2006-06-24 05:13:41  No: 22274

DL6Pro,XPにてデータベースを作成しています。以前使用していたデータベースparadoxをインターベースへ拡張しようとしています。paradoxの時には、うまく動作していたのですが、IBにすると以下のエラーメッセージが出ます。多分、トークンの使い方がおかしいのが原因と思いますが、よくわかりません。どなたかご教示下さい。
IBQueryのデフォルトのSQL
select * from PARTMAS
where MakerName is not null

動的SQLの発行コード
データモジュールのpublic部に以下を定義

procedure TDM009.SetSQLQueryPartMas(WherePartString: String);
begin
 with IBQueryPartsMas do
 begin
  Close;
  SQL.Assign(DefaultPartMasSQL);
  SQL.Text := IBQueryPartsMas.SQL.Text + WherePartString;
  Open;
 end;
end;

エラーメッセージ
'dynamic SQL Error
SQL Error Code = -206
Column Unknown
スズキ'

作成したコード
begin
    DM009.IBQueryPartsMas.Close;//DBGrid2をメーカー名、一般名、グレードで絞込み
    DM009.IBQueryPartsMas.SQL.Delete(DM009.IBQueryPartsMas.SQL.Count-1);
    WherePartString := 'and MakerName =' + '"' + Edit1.Text + '"'+ 'and PopularName =' + '"' + Edit4.Text + '"' + 'and Grade =' + '"' + Edit5.Text + '"';
    DM009.SetSQLQueryPartMas(WherePartString);
    DM009.IBQueryPartsMas.Open;
end;


igy  2006-06-24 06:01:44  No: 22275

>    WherePartString := 'and MakerName =' + '"' + Edit1.Text + '"'+ 'and PopularName =' + '"' + Edit4.Text + '"' + 'and Grade =' + '"' + Edit5.Text + '"';

ダブルクォーテーションの部分をシングルクォーテーションにしたらどうなります?

'"'  ==> ''''


サンプー  2006-06-24 18:46:06  No: 22276

igyさんありがとうございました。シングルクォーテーションに変更するkとにより期待通りの結果が得られました。
また、お願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加