繁体   English   中英

从数据集中检索带有单引号的数据(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;

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

使用var S:= '6x8''''时出现的错误在此处输入图像描述
源代码

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

似乎 TFDLocalSQL 的解析器(我认为)在尝试解析 ON 子句并且涉及 ASCII 单引号时存在错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM