You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi中使用FireDAC插入SQLite数据时出现语法错误怎么办?

问题原因与解决方法
  • 语法错误根源:SQL语句中使用了SQLite的保留关键字Group和Keys作为字段名,直接使用会导致SQL解析失败。
  • 解决方法:用反引号(`)包裹关键字字段名,让SQLite将其识别为普通字段名。

修改后的代码如下:

procedure TForm1.Button4Click(Sender: TObject);
begin
  if (cxRichEdit2.Text <> '') and (cxTextEdit2.Text <> '') and (cxTextEdit3.Text <> '') then
  begin
    // 注意:Group和Keys字段名用反引号包裹
    FDQuery1.SQL.Text := 'INSERT INTO tblTags (`Group`, Title, `Keys`, AllKeys) VALUES (:group, :title, :keys, :allkeys)';
    FDQuery1.ParamByName('group').AsString := ComboBox1.Text;
    FDQuery1.ParamByName('title').AsString := cxTextEdit2.Text;
    FDQuery1.ParamByName('keys').AsString := cxTextEdit3.Text;
    FDQuery1.ParamByName('allkeys').AsString := cxRichEdit2.Text;
    FDQuery1.ExecSQL;
  end
  else
    ShowMessage('请填写所有必填字段!');
end;

补充说明:参数名:group、:keys无需修改,参数名与字段名是独立的,不会被SQL解析器当作关键字处理。

内容的提问来源于stack exchange,提问作者Dusko Jovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:32:08