存储过程如下:
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)+'''');
         execsql;
         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参数