存储过程如下
CREATE PROCEDURE test
@str varchar(300) out 
 AS
set @str='012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'  --一个超过255的字串
return  @str
GO然后在delphi中,用ado的存储过程控件,执行,想得到返回的str,报长度错,请各位帮忙

解决方案 »

  1.   

    1 用varchar(4000)或者text字段
    2 在delphi中使用blob字段或者blobstream
      

  2.   

    ADOStoredProc1.ExecProc ;
    caption:=ADOStoredProc1.Parameters[1].Value  ;
    我 是这样写的,但不行呀,不知道上面的大大是否真的测试过呢
      

  3.   

    存储过程参数是不能为text的,
    可以用varchar(8000),最大就是么大了楼上的是不是杨兄呀
      

  4.   

    用Memo试一试。
    Memo1.Text := ADOStoredProc1.Parameters[1].Value
      

  5.   

    dwgz,,你是谁呀,知道我姓杨》?
      

  6.   

    改造存储过程,不使用 return,改用 Select。CREATE PROCEDURE test
    @str varchar(300) out 
     AS
    set @str='012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'  --一个超过255的字串
    Select Convert(text, @str)GO然后使用 StoredProcedure.Open 获取数据集的内容,取出其中的字段内容用 AsString 就可以了。
      

  7.   

    TO  CloneCenter(复制中心) 
    果然高手,谢了,接分。