建议使用参数化查询: ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'Update Project Set XSNAME = :日期 where 内部编号 = :内部编号'; ADOQuery1.Parameters.ParamByName('日期').Value := DBEdit1.Text; ADOQuery1.Parameters.ParamByName('内部编号').Value := DBEdit2.Text; ADOQuery1.ExecSQL; 早在很多多多年以前(可能我还在上高中的时候 :),Borland就有人写文章建议尽量使用参数化查询,不要自己拼接SQL字符串,参数化查询有很多优点: 1. 结构清晰,不容易出错,自己拼接SQL串,尤其涉及很多字符型数据带引号的,很容易出错,也不好修改 2. 同样的SQL多次执行,只是查询数据不一样,参数化查询只需要每次重新设置参数即可,不用重写SQL,因此不需要每次prepare,性能会提升 3. 参数化查询中的字符型参数,会根据目标数据库的字符集设置进行正确转换,而硬编码到SQL中的字符型数据则不会进行转换,这一点非常重要,一些D7时代的数据库软件,升级到高版本,查询结果出错、数据乱码,很多是因为自行拼接SQL的原因 4. 参数化查询能读写BLOB字段,自行拼接SQL则不行 5. ... (可能还有,我忘记了)
2,497
社区成员
88,445
社区内容
加载中
试试用AI创作助手写篇文章吧