ehxz 发表于 2008-8-21 11:14:55

关于PB中在DW对varchar(char,string)超过255的处理

本文链接:http://user.qzone.qq.com/6074263/blog/12

直连和text
SQL Server 2000直连情况下,对于varchar(500)这样的字段,pb的dw只能取出前面255个字符。
如:表t1有字段c1(id),c2(varchar(500))

解决办法:
1,用下面的sql可以取到全部的c2:
Select substring(c2,1,255),substring(c2,256,255)
Into :ls_1,:ls_2
From t1
Where c1 = :ls_id;
ls_all=ls_1+ls_2

2,用下面的sql可以取到全部的c2:
Select convert(text,c2) into :ls_all
From t1
Where c1=:ls_id;

3,数据窗口中:
假设有这样一个数据窗口:
SELECT c1,c2
    FROM t1
为了在直连情况下能获取全部的c2,可将其修改为:
SELECT c1,convert(text,c2) as c2
FROM t2
并设置数据窗口的update属性和更新前一样,limit设为0或500即可。

另外,可以通过设置SQLCA.DBParm = "OptSelectBlob=1,DBTextLimit='8000'"的办法使得DW能对TEXT字段支持8000字节
(PB的DW对MSS默认只支持4099字节)

而对于text类型的字段,可以用下面的方法读取(需要显示转换):
select cast(column_texttype as varchar(20..)) into :ls_c from ta where ..;
页: [1]
查看完整版本: 关于PB中在DW对varchar(char,string)超过255的处理

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com