高分求救########向substring函数传递了无效的length参数的解决方法*********

geniusqing 2005-02-16 07:08:17
存储过程如下:
ALTER procedure string
(
@factoryid nvarchar(20) --工厂编号
)
as
begin
select cuscolnum,graderequest,yardlength,unit,content,colnum,compact,fanwei,factory from T_colnum where cid= right(@factoryid,1)
and cuscolnum=substring(@factoryid,1,charindex('-',@factoryid)-1)
end

with adoquery3 do
begin
close;
sql.Clear;
sql.Add('exec string @factoryid='''+trim(edit8.Text)+'''');
open;
if adoquery3.RecordCount>0 then
edit9.Text:=adoquery3.fields[0].asstring;
edit3.Text:=adoquery3.fields[1].asstring;
edit2.Text:=adoquery3.fields[2].asstring;
edit5.Text:=adoquery3.fields[3].asstring;
edit6.Text:=adoquery3.fields[4].asstring;
edit1.Text:=adoquery3.fields[5].asstring;
edit4.Text:=adoquery3.fields[6].asstring;
edit13.Text:=adoquery3.fields[7].asstring;
edit7.Text:=adoquery3.fields[8].asstring;
end;
出现如下错误:
向substring函数传递了无效的length参数
我的测试数据为5D42555-2,存储过程是没有错的(exec string '5D42555-2'能返回结果的)
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjwy 2005-02-17
  • 打赏
  • 举报
回复
ALTER procedure string 这样写似乎有问题?
yimten968 2005-02-17
  • 打赏
  • 举报
回复
你比较一下, trim(edit8.Text) 中的’-‘字符,跟在Sql '5D42555-2'中的’-‘字符 是不是不同
xthmpro_cn 2005-02-17
  • 打赏
  • 举报
回复
不要参数试试:
sql.Add('exec string ''' + trim(edit8.Text) + '''');

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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