关于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]