|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
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都被过滤掉了,这是什么原因呢?谢谢!
----------------------------------------------
- |
作者: |
|
2017/4/26 15:47:20 |
1楼: |
确实如此。。。
恭喜楼主,发现 fdac 的 bug,,,请到 emb 官网 提交。。。
老猫现身吧,提交bug了!!!
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
|
作者: |
|
2017/4/26 16:07:38 |
3楼: |
@wang_80919 修改成: update t_user set user_name = 'aaa&bbb' where user_code = '12'
再试试呢?
----------------------------------------------
-
|
作者: |
|
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
|
作者: |
|
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;
这样写就没有问题
----------------------------------------------
-
|
作者: |
|
2017/4/26 16:40:36 |
6楼: |
o,直接拼字符串的不行啊...
'insert into ttb (x) values('+'Edit1.text'+')';
麻烦了,几乎全部是这种...
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
|
作者: |
|
2017/4/26 16:48:52 |
7楼: |
你自己去看 4 楼吧。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
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
|
作者: |
|
2017/4/26 17:03:23 |
9楼: |
@earthsbest
太感谢了!
总觉得在哪里可以设置,哈哈
----------------------------------------------
-
|
作者: |
|
2017/4/26 18:55:52 |
10楼: |
楼主你自己在5楼发出来的就是正解
一般来说所有插入数据的SQL语句都推荐按5楼风格书写, 不管用什么连接控件或后端数据库, 这样可以最大限度保证兼容性和防止注入式攻击
----------------------------------------------
-
|
作者: |
|
2017/4/26 19:00:25 |
11楼: |
FireDAC source for xe10.2 down????
----------------------------------------------
-
|
作者: |
|
2017/4/26 22:19:31 |
12楼: |
四楼和八楼说明了问题的根本原因。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
|
作者: |
|
2017/4/26 22:20:31 |
13楼: |
前几天刚遇到这个问题,自己费了好几天劲才查到是怎么回事儿,在csdn上刚回复了解决方法,没想到今天就有朋友遇到了,而且解决方法也出现了。
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
|
作者: |
|
2017/4/27 15:43:03 |
14楼: |
严重支持全能大牛!!!!
----------------------------------------------
-
|
|