SQL语句的长度超过了1024个字符,怎么办

chinatyx 2005-01-07 01:36:18
在DELPHI中,SQL语句的长度超过了1024个字符,提示为‘Line to Long (More Than 1023)’,
应该将它的类型设为哪种类型,请指教!
...全文
637 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellolongbin 2005-01-08
  • 打赏
  • 举报
回复
他报的那个错误(Line to Long (More Than 1023))不是delphi里行太长的错误message
delphi超过255报的错是:
[Error] Unit1.pas(29): String literals may have at most 255 elements
所以我怀疑是数据库不支持长SQL语句!!
S.F. 2005-01-08
  • 打赏
  • 举报
回复
sqlserver 行长度 1024
delphi 行长度 255

cangwu_lee 2005-01-07
  • 打赏
  • 举报
回复
已经解决了!
pcfan123 2005-01-07
  • 打赏
  • 举报
回复
行太大了!
ly_liuyang 2005-01-07
  • 打赏
  • 举报
回复
应该用+和#13#10连接的

http://lysoft.7u7.net
百分百好牛 2005-01-07
  • 打赏
  • 举报
回复
应该不会啊.
你这样写试试.
strSql := strSql + ' select * from aaa '#13#10+
或strSql := strSql + ' select * from aaa '+
就是说用'#13#10+ 来换行.应该没有问题的.
我曾经写过一条1900行,共8000+个字符(不包括空格)的SQL语句,在Access和SQLServer均能够正常运行
所以你的1024根本就不是SQL语句的问题.

应该是你的行(line)太长了.
在delphi的编辑器中,一行的最大长度就是1024
所以你要换行写.
DG_1 2005-01-07
  • 打赏
  • 举报
回复
太長的話建議用存儲過程
hellolongbin 2005-01-07
  • 打赏
  • 举报
回复
上面st的总长度为1470
hellolongbin 2005-01-07
  • 打赏
  • 举报
回复
怎么会报错呢?
procedure TForm1.Button1Click(Sender: TObject);
var st:string;
begin st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
st:=st+'lkasdjflakdfj;fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff22222222222222222222';
showmessage(st);
end;
运行没问题,string类型可以到3可多都没事
应该是数据库不支持这么长的语句,早就说让你精简语句
chinatyx 2005-01-07
  • 打赏
  • 举报
回复
不知道有没有解决方案,好急了,请有经验的高手指教

变量SqlStr的长度超过了1024个字符,将它的类型设为哪种类型???
hellolongbin 2005-01-07
  • 打赏
  • 举报
回复
什么语句这么长啊?晕
建议楼主精简语句,否则就用widestring
chinatyx 2005-01-07
  • 打赏
  • 举报
回复
我也是按这种格式写的
SQL := SQL + 'SID = ' + Trim(edtNumber.Text) + ', ';
SQL := SQL + 'Area = ' + #39 + Trim(edtArea.Text) + #39;
dejiang 2005-01-07
  • 打赏
  • 举报
回复
截取然后相加就可以了。
chinatyx 2005-01-07
  • 打赏
  • 举报
回复
变量SqlStr的长度超过了1024个字符,将它的类型设为哪种类型???(widestring不行!!!)
linkyou 2005-01-07
  • 打赏
  • 举报
回复
不明白你的意思,莫非widestring

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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