急!!!急!!!急!!!急!!!急!!!急!!!急!!!急!!!急!!!太急了!!!高手求救!

hewei2003 2003-09-12 09:21:10
哎,我是没法了,我有一ClientDataSet控件已经连接好服务器应用程序了,我现在提交一SQL语句,但是ClientDataSet的CommandText属性所能容纳的字符数量最多256个,我现在这条SQL语句的字符长度远远大于256,请问大虾,这如何是好???
...全文
65 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-09-21
  • 打赏
  • 举报
回复
就是 'abcd'+Chr(13)+Chr(10)
yousoft2013 2003-09-21
  • 打赏
  • 举报
回复
分开写不就完了。。
cds.commandtext:='select .....';
cds.commandtext:=cds.commandtext:=+' .....';
....
zousoft 2003-09-19
  • 打赏
  • 举报
回复
问一句,'abcd'#$0D#$0A 的后半部分是干什么的?
hiflower 2003-09-19
  • 打赏
  • 举报
回复
楼主理解错了!
是 IDE 编辑器的一行长度不能超过 255。
所以你可以这样:
CommandText:='abcd'+
'cdef'+
'ddsdf';

如果 SQL 也有行长限制,则:
CommandText:='abcd'#$0D#$0A+
'dddd'#$0D#$0A+
'ssfs';
kimlingski 2003-09-19
  • 打赏
  • 举报
回复
OwnerData:=VarArrayOf([‘select * from XX’,LastValue]); //传SQL语句去应用程序服务器。其中,你的在远程数据模板上加一个Query,或ADODataSet来执行查询一定可以的我都有试过,
LastValue:=NULL.有时间可以试下!
Miracle 2003-09-14
  • 打赏
  • 举报
回复
没有这种限制,string类型可以存储2GB的数据。估计是你的赋值语句使用的字符串常数太长了,你可以考虑拆分它们。例如把
cds.CommandText:='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111';//这一句编译不能通过
改成
cds.CommandText:='111111111111111111111111111111111111111111111'
+'111111111111111111111111111111111111111111111'
+'111111111111111111111111111111111111111111111'
+'111111111111111111111111111111111111111111111'
+'111111111111111111111111111111111111111111111'
+'111111111111111111111111111111111111111111111';//这样就可以通过了
hxmforyou 2003-09-14
  • 打赏
  • 举报
回复
对string类型,你可以设置他的长度,用setlength函数
PrgmLover 2003-09-14
  • 打赏
  • 举报
回复
ClientDataSet1.CommandText是String类型的,所以就跟Query1.text一样,有256限制。所以要想别的办法。如果你的ClientDataSet1.CommandText不是非得用这种方式的话,可在服务段,用SQl语句取数(如写函数接受Sql语句),而不通过ClientDataSet1来动态申请。
frogshero 2003-09-13
  • 打赏
  • 举报
回复
ClientDataSet的CommandText属性所能容纳的字符数量最多256个???
誰說的??
yuner5 2003-09-13
  • 打赏
  • 举报
回复
不是吧,你从DLEPHI的帮助中看到的COMMAND TEXT属性只能是256个字符吗 ,我怎么没看到,应该是不受字符长度限制的,我的SQL语句就比较长,但没出什么问题呀!!
ziqing 2003-09-12
  • 打赏
  • 举报
回复
晕!!!
gmc007 2003-09-12
  • 打赏
  • 举报
回复
但是ClientDataSet的CommandText属性所能容纳的字符数量最多256个

刚查了一下帮助,没发现有这个限制呀。
  • 打赏
  • 举报
回复
绝对不可能。我用的超过256一点问题没有。
我在commandtext里面构造了1000多条的insert语句同时发送到sqlserver里面。
是不是你的sql字符串写的不对呢?
var
strsql:string;
begin
strsql:='asdfasfsafasfasfsdf'
ClientDataSet.active:=false;
ClientDataSet.commandtext:=strsql;
ClientDataSet.active:=true;
end;
mrfanghansheng 2003-09-12
  • 打赏
  • 举报
回复
将你的sql语句拆开,再用类似
ClientDataSet.CommandText:=sql语句段1+sql语句段2+……+sql语句段n;
的方式试试看

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧