高分求救########向substring函数传递了无效的length参数的解决方法*********
存储过程如下:
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'能返回结果的)