mysql - 尝试执行更新查询,其中行是来自 TEdit 的变量
问题描述
我有一个表,其中包含需要更新的值。过去有很多错别字,因为不同的人添加了项目,所以我不得不使用'like'
尽管一切。
我创建了一个包含所有需要更新的必要字段的表单。我用了简单TEdit
和一个TLabel
. 计划是从编辑框中选择一种类型的项目并使用TListBox
.
然后将要更新的信息添加到每个TEdit
.
我创建一个更新过程如下:
MyQuery1.SQL.Text := ' UPDATE TheTable SET iName = edtName.text WHERE iType like "%edtType.text%" ';
MyQuery1.SQL.Text := ' UPDATE TheTable SET iPart = edtPart.text WHERE iType like "%edtType.text%" ';
...
MyQuery.ExecSQL;
我的问题是以正确的格式传递edtVariables
。如何添加"%
之前和%"
之后edtVariable
?
我试过'"%'+edtPart.text+'%"'
等等,但我以前从来没有在运行时这样做过。
解决方案
在参数化查询中使用 FireDAC,您在参数名称前使用 ':':
MyQuery1.SQL.Text := 'UPDATE TheTable SET iName = :NameText WHERE iType like :TheValue';
然后在执行请求之前设置参数值:
MyQuery1.ParamByName('TheValue').AsString := EdtType.Text;
MyQuery1.ParamByName('NameText').AsString := EdtName.Text;
MyQuery1.ExecSQL;
推荐阅读
- npm - 同一个 npm 包的两个不同版本
- angular - 安装 ag-grid 失败
- php - 我正在寻找用于 PHP 库存更新的 Amazon SP-API
- python - AttributeError:导入 Keras 时,模块“tensorflow.compat.v2”没有属性“__internal__”
- c++ - wxWidgets:使工具提示不那么烦人,
- python - 在 pytorch 中将 pycocotools 用于 Scaled Yolo v4 的问题:numpy 版本困境
- javascript - HTML/CSS 中的 3D 模型;计算三角形的欧拉旋转
- reactjs - 被 CORS 政策阻止 - React - MangoPay
- c++ - CodeSignal isLucky task c++
- openstack - 如何知道 Openstack 3.18 Stein 版本中包含了哪个版本的 Neutron?