DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 7
在线用户: 23
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 phper2000 (phper2000) ▲▲▲▲△ -
普通会员
2017/4/26 15:14:13
标题:
FireDAC增加字符串,数据不对,请指教! 浏览:1799
加入我的收藏
楼主: Delphi 10.1 Berlin环境下使用FireDAC

插入数据,普通的数据都没有问题,但插入带有"&"符号的url时就出错了

插入前的值:
http://www.baidu.com/p/1/?aaa=111&bbb=222&ccc=333

插入后在数据库里变成了:
http://www.baidu.com/p/1/?aaa=111=222=333

也就是&bbb, &ccc都被过滤掉了,这是什么原因呢?谢谢!
----------------------------------------------
-
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2017/4/26 15:47:20
1楼: 确实如此。。。

恭喜楼主,发现 fdac 的 bug,,,请到 emb 官网 提交。。。


老猫现身吧,提交bug了!!!
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
作者:
男 phper2000 (phper2000) ▲▲▲▲△ -
普通会员
2017/4/26 16:07:38
3楼: @wang_80919
修改成:
update t_user set user_name = 'aaa&bbb' where user_code = '12'

再试试呢?
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/4/26 16:14:51
4楼: http://docwiki.embarcadero.com/RADStudio/XE7/en/Preprocessing_Command_Text_(FireDAC)

参考
Special Character Processing
项目。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 phper2000 (phper2000) ▲▲▲▲△ -
普通会员
2017/4/26 16:38:33
5楼: 在stackoverflow上问了下,有个老外解决了

FDQuery1.SQL.Text :='insert into ttb (x) values(:TestData)';
FDQuery1.Params.ParamByName('TestData').AsString :='aaa=111&bbb=222&ccc=333';
FDQuery1.ExecSQL;

这样写就没有问题
----------------------------------------------
-
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2017/4/26 16:40:36
6楼: o,直接拼字符串的不行啊...

'insert into ttb (x) values('+'Edit1.text'+')';

麻烦了,几乎全部是这种...
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/4/26 16:48:52
7楼: 你自己去看 4 楼吧。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2017/4/26 16:58:57
8楼: 这不是BUG,设置几个属性就可以了。
  FDQuery1.ResourceOptions.MacroCreate := False;
  FDQuery1.ResourceOptions.MacroExpand := False;
  FDQuery1.ResourceOptions.EscapeExpand := False;
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 phper2000 (phper2000) ▲▲▲▲△ -
普通会员
2017/4/26 17:03:23
9楼: @earthsbest 

太感谢了!

总觉得在哪里可以设置,哈哈
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2017/4/26 18:55:52
10楼: 楼主你自己在5楼发出来的就是正解

一般来说所有插入数据的SQL语句都推荐按5楼风格书写, 不管用什么连接控件或后端数据库, 这样可以最大限度保证兼容性和防止注入式攻击
----------------------------------------------
-
作者:
女 zqznew (zqznew) ★☆☆☆☆ -
普通会员
2017/4/26 19:00:25
11楼: FireDAC source for xe10.2  down????
----------------------------------------------
-
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2017/4/26 22:19:31
12楼: 四楼和八楼说明了问题的根本原因。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
作者:
男 homejun (homejun) ★☆☆☆☆ -
盒子活跃会员
2017/4/26 22:20:31
13楼: 前几天刚遇到这个问题,自己费了好几天劲才查到是怎么回事儿,在csdn上刚回复了解决方法,没想到今天就有朋友遇到了,而且解决方法也出现了。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
作者:
男 jikoy123 (jikoy) ★☆☆☆☆ -
普通会员
2017/4/27 15:43:03
14楼: 严重支持全能大牛!!!!
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS