delphi query的delete方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi query的delete方法相关的知识,希望对你有一定的参考价值。

procedure TForm9.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select * from password where 用户名='+''''+edit1.text+''''+'and 密码='+''''+edit2.text+'''');
query1.Open;
if query1.RecordCount<>0 then
begin
query1.delete;
showmessage('删除成功');
end
else
begin
application.MessageBox('密码错误,请重新输入','提示',mb_ok);
edit1.SetFocus;
end;
end;

主要功能是实现用户名的删除
运行后提示错误:invalid use of keywords

query1.SQL.add('select * from [password] where [用户名]=''' +edit1.text+'''and [密码]='''+ edit2.text+'''');

初步估计是你的表名或字段用到了关键字,应该是你的用户名字段为user吧,两边要加上中括号
所有表名和字段都加上中括号就万无一失了
参考技术A procedure TForm9.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select * from password where 用户名='+''''+edit1.text+''''+'and 密码='+''''+edit2.text+'''');
query1.Open;
if query1.RecordCount<>0 then
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.add('DELETE from password where 用户名='+''''+edit1.text+''''+'and 密码='+''''+edit2.text+'''');
query1.EXECSQL;
showmessage('删除成功');
end
else
begin
application.MessageBox('密码错误,请重新输入','提示',mb_ok);
edit1.SetFocus;
end;
end;

ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)

        在工作中,我们通常会使用查询条件来过滤出满足要求的数据,然后再删除它,这样的用法比较多,ES提供了delete_by_query方法实现这种场景,特此记录便于日后查阅。

        1、删除符合条件的记录

        delete_by_query方法会删除符合条件的记录,命令如下:

POST company01/_delete_by_query
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

       注:如果需要删除的数据量巨大,需要通过控制删除批次数来防止ES假死无响应,通过以下参数控制分为100个批次,每秒删除100条(根据业务需要进行调整),命令如下:

POST company01/_delete_by_query?scroll_size=100&requests_per_second=100
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

        2、任务模式

        可以查看正在执行的异步任务,命令如下:

GET _tasks?detailed=true&actions=*/delete/byquery

        也可以直接查看异步任务的信息,命令如下:

GET /_tasks/{task id}

        如果需要取消这个异步任务,命令如下:

POST _tasks/{task id}/_cancel

        到此查询并删除匹配文档(delete_by_query)介绍完成。

以上是关于delphi query的delete方法的主要内容,如果未能解决你的问题,请参考以下文章

delphi TAdoQuery组件的close方法可能导致”列名无效“错误

delphi中 ExecSQL 与 open

ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)

ElasticSearch实战(二十二)-查询并删除匹配文档(delete_by_query)

delphi TreeView 从数据库添加节点的四种方法

delphi TreeView 从数据库添加节点的四种方法