在 Delphi 中使用 TFDQuery 删除记录
Delete records using TFDQuery in Delphi
帮我解决这个问题,删除 TFDQuery
的记录。
当我用 Edit.Text
或 DBEdit.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 可以允许提前准备查询。对于复杂的查询(不同于这个查询),这意味着执行计划只构建一次。
帮我解决这个问题,删除 TFDQuery
的记录。
当我用 Edit.Text
或 DBEdit.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 可以允许提前准备查询。对于复杂的查询(不同于这个查询),这意味着执行计划只构建一次。