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;
> WherePartString := 'and MakerName =' + '"' + Edit1.Text + '"'+ 'and PopularName =' + '"' + Edit4.Text + '"' + 'and Grade =' + '"' + Edit5.Text + '"';
ダブルクォーテーションの部分をシングルクォーテーションにしたらどうなります?
'"' ==> ''''
igyさんありがとうございました。シングルクォーテーションに変更するkとにより期待通りの結果が得られました。
また、お願いします。
ツイート | ![]() |