从数据集中检索带单引号的数据 (Delphi)

Retrieving data with single quote from dataset (Delphi)

目前我有类似的东西,但是当数据中有单引号时我无法从数据集中检索我的数据

procedure TForm1.AfterConstruction;
begin
  inherited;
  cdsMain.FieldDefs.Add('ItemCode', ftWideString, 20);
  cdsMain.CreateDataSet;

  cdsDetail.FieldDefs.Add('ItemCode', ftWideString, 20);
  cdsDetail.FieldDefs.Add('Project', ftWideString, 20);
  cdsDetail.CreateDataSet;

  var S := '6x8''''';
  cdsMain.AppendRecord([S]);
  cdsDetail.AppendRecord([S, 'P01']);
  cdsDetail.AppendRecord([S, 'P02']);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if FDConnection1.Connected then
    FDConnection1.Close;
  if FDLocalSQL1.Active then
    FDLocalSQL1.Active := False;

  FDLocalSQL1.Active := True;
  FDQuery1.Open('SELECT A.ItemCode, B.Project FROM Main A INNER JOIN Detail B ON (A.ItemCode=B.ItemCode)');
end;

我的预期结果是
ItemCode 项目
6x8' P01
6x8' P02

我在使用 var S := '6x8'''' 时遇到的错误
Source code

根据我可以从源文件中推断出的情况,在这种情况下 FireDAC 中存在一个错误。如果我删除 SQL 中的 ON 子句,即使使用 ASCII Single-Quote (#39),它也能工作。如果我用 UNICODE Single-Quote (#8216) 替换 ASCII Single-Quote (#39) 或完全删除它,它就可以工作。

似乎 TFDLocalSQL 的解析器(我认为)在尝试解析 ON 子句时有一个错误并且涉及 ASCII Single-Quote。

您应该在 https://quality.embarcadero.com 向 Embarcadero 报告错误,包括您的源代码和解释。