我自定义一函数代码如下:
CREATE function getstr(@content varchar(100),@a varchar(100))
returns varchar(2000)
as 
begin
declare @str varchar(2000)
declare @str1 varchar(2000)
set @str=''
select @str=ltrim(rtrim(@str+','+ltrim(ltrim(pkg))))--cast(ltrim(ltrim(pkg)) as varchar(10)) 
from BackInStoreDetailYut where sppono=ltrim(rtrim(@content)) and scrmproductno=ltrim(rtrim(@a))
set @str=right(ltrim(rtrim(@str)),len(@str)-1)
return @str
end
现在的问题是@str只能返回255个字符,我的字符数可能会3,4千个。请搞手帮忙

解决方案 »

  1.   

    sql 数据库吗 
    应该没问题
    用nvarchar()试试
      

  2.   

    可以返回2000个的
    我试验过了create function getstr(@content varchar(100),@a varchar(100))
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    declare @str1 varchar(2000)
    declare @i int
    set @i=1
    set @str = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    while @i <20
    begin
      set @str=@str+@str
      set @i=@i+1
    end 
    return @str
    end测试程序
    declare @a varchar(2000)
     set @a=dbo.getstr('a','b')
    select len(@a)
      

  3.   

    To : DelphiBird(爱你等于爱自己) ( )
    难道是这条语句的问题?
    select @str=ltrim(rtrim(@str+','+ltrim(ltrim(pkg))
    from BackInStoreDetailYut where sppono=ltrim(rtrim(@content)) and scrmproductno=ltrim(rtrim(@a))
      

  4.   

    不要用BDE,用ADO即可解决,我以前遇见过这种问题。
      

  5.   

    实际上,它返回值是大于255的,只是当你在查询分析器,或用delphi的bde返回时,无法
    得到全部的字符串,用ado吧