sqlite - 如何在sQlite.sdb(FireDac)中插入字符串?

标签 sqlite delphi delphi-xe5

我正在尝试将一些文本插入sqlite数据库。

我正在使用FireDac连接和FireDac Query(FDQuery1)连接到sqLite数据库。
这是代码。

FDQuery1.SQL.Text := 'select * from Invoice where Name = :Name';
FDQuery1.ParamByName('Name').AsString := '123';
FDQuery1.Open;
LinkListControlToField1.BindLink.FillList


我似乎在数据库中插入了一条新记录,但所有字段都为空。
可能是什么问题呢 ?

现在我正在使用

NEW_NAME:='dfddf';

  SQL :='INSERT INTO INVOICE (Name) VALUES (:NEW_NAME)';
  fdquery1.Close;
  fdquery1.SQL.Text:= SQL;
  FdQuery1.Open();
  FDQuery1.Insert;
  //Fdquery1.ParamByName('New_Name').AsString := NEW_NAME;
  //fdquery1.SQL.Text:='INSERT INTO INVOICE (Name) VALUES (:NEW_NAME)';
  fdquery1.FieldByName('Name').AsString := quotedstr(NEW_NAME);
  //fdquery1.ExecSQL();
  fdquery1.Post;


我收到错误消息。
FireDac,Phys,Sqlite-308无法打开/定义命令,不会返回结果集。提示使用Execute吗?非Select命令的ExecSql方法。

从注释代码中可以看到,我正在尝试执行ExecSql,但存在相同的错误。

最佳答案

虽然SELECT sql语句无法将数据插入表中,但是可以通过通过SELECT sql语句连接到表的TDataset后代插入/追加记录。

例如:

FDQuery1.SQL.Text := 'select * from Invoice';
FDQuery1.Open;

NEW_NAME:='dfddf';
FDQuery1.Append;  // or FDQuery1.Insert;
FDQuery1.FieldByName('Name').AsString := NEW_NAME;
// set other column values as needed
FDQuery1.Post;


如果您更喜欢使用INSERT:

FDQuery1.SQL.Text := 'INSERT INTO INVOICE (Name) VALUES (:NEW_NAME)';

NEW_NAME := 'dfddf';
FDQuery1.ParamByName('NEW_NAME').AsString := NEW_NAME;
// you will have to define parameters for each column
FDQuery1.ExecSQL;

关于sqlite - 如何在sQlite.sdb(FireDac)中插入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18950263/

相关文章:

Delphi无法识别俄语字符

delphi - Delphi 中枚举的所有项均为常量

xcode - 在 delphi XE5 中使用 XCode5 在 iOS 上添加配置文件

delphi - 如何在jenkins节点上设置多个delphi版本?

sql - 从两个表中选择-按外键和主键对结果进行排序

android - 从 Android 访问 iOS 核心数据

android - 删除sqlite数据库android中的旧记录

android - SQLiteDatabase的插入方法

delphi - Delphi-为初学者使用dll

android - 使用 Delphi 访问 Android 日历