|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
yookee (yookee) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/3/1 10:48:11 |
标题: |
FireDac array DML 参数限制 |
浏览:1486 |
|
加入我的收藏 |
楼主: |
用FireDac操作Sqlite,DML里每条语句的参数有8个,再添加一个就提示Argument out of range。 这个参数个数是在哪里限制的,或者是否: 语句条数*每句参数个数<=某个限制
----------------------------------------------
- |
作者: |
yookee (yookee) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/3/1 10:54:42 |
1楼: |
比如: FDQz.SQL.Text := strUpdate; FDQz.Params[0].DataType := ftFloat; FDQz.Params[1].DataType := ftFloat; FDQz.Params[2].DataType := ftFloat; FDQz.Params[3].DataType := ftFloat; FDQz.Params[4].DataType := ftFloat; FDQz.Params[5].DataType := ftFloat; FDQz.Params[6].DataType := ftBytes; FDQz.Params[7].DataType := ftString; FDQz.Params[7].Size := 10; FDQz.Params.ArraySize := Tradedays;
for j := 0 to Tradedays - 1 do begin FDQz.Params[0].AsFloats[j] := F1[j]; FDQz.Params[1].AsFloats[j] := F2[j]; FDQz.Params[2].AsFloats[j] := F3[j]; FDQz.Params[3].AsFloats[j] := F4[j]; FDQz.Params[4].AsFloats[j] := F5[j]; FDQz.Params[5].AsFloats[j] := F6[j]; FDQz.Params[6].AsBytes[j] := B[j]; FDQz.Params[7].AsStrings[j] := S[j]; end; FDQz.Execute(FDQz.Params.ArraySize, 0);
----------------------------------------------
-
|
作者: |
|
2021/3/1 11:38:02 |
2楼: |
用 unidac
----------------------------------------------
-
|
作者: |
|
2021/3/1 16:44:49 |
3楼: |
不太清楚你究竟指什么?每条SQL语句有8个参数,当然只能给8个参数赋值了,除非你将SQL语句改成更多个参数。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
yookee (yookee) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/3/1 19:19:50 |
4楼: |
比如说我再加第9个参数,单步到FDQz.Params[8].DataType就直接提示错误了
----------------------------------------------
-
|
作者: |
|
2021/3/1 19:59:11 |
5楼: |
你是改了SQL脚本吗?我指的是你重新给FDQz.SQL.Text赋值了?如果这样做了还不行,试试先调用一下FDQz.Prepare。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
yookee (yookee) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/3/2 21:53:11 |
6楼: |
多谢! 代码改太多,无法重现。很有可能是脚本里字符串拼接错了。
----------------------------------------------
-
|
|