在 Delphi 中使用 TFDQuery 删除记录

Delete records using TFDQuery in Delphi

帮我解决这个问题,删除 TFDQuery 的记录。

当我用 Edit.TextDBEdit.Text 选择记录的这个值时,我这样尝试但它不起作用:

FDQuery.SQL.Text := 'delete * FROM MyTable column_name =:KEY1 ';
FDQuery.ParamByName('KEY1').AsString = 'dbedit.text';
FDQuery.Open;
  fdquery.SQL.Text := 'DELETE FROM MyTable WHERE column_name = :KEY1';
  fdquery.ParamByName('KEY1').AsString := dbedit.Text;
  fdquery.Execute();

您也可以使用 TFDCommand 而不是 TFDQuery,因为您不希望读取结果:

  fdcommand.CommandText := 'DELETE FROM MyTable WHERE column_name = :KEY1';
  fdcommand.ParamByName('KEY1').AsString := dbedit.Text;
  fdcommand.Execute();

如果这是您希望 re-use 执行的命令,您可以在设计时将 SQL 语句与参数名称一起放入命令中,然后在 运行 时您只需要做:

  fdcommand.ParamByName('KEY1').AsString := dbedit.Text;
  fdcommand.Execute();

根据您使用的底层数据库,命令 pre-populated 可以允许提前准备查询。对于复杂的查询(不同于这个查询),这意味着执行计划只构建一次。