Pb datawindow 支持大于255个字符列的处理说明

本文分析了PowerBuilder (PB) DataWindow在处理大于255个字符的列时遇到的问题,特别是在早期Sybase数据库中的限制。针对不同数据库(如SQL Server、Sybase、Oracle),提出了通过修改列类型(如改为text或CLOB)来突破限制的解决方案,并给出了测试环境和注意事项,包括数据窗口列长度限制和数据库驱动的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

href="file:///C:/DOCUME~1/ZHAOQI~1/LOCALS~1/Temp/msohtml1/01/clip_filelist.xml" rel="File-List" />

产生原因分析:

对于datawindowchar族类型不支持大于255个字符的总结与处理方法。

 

在早期的Sybase数据库(ase 11.9之前)中不支持大约255个字符的varchar类型,这可能是造成它的配套开发工具pb中对char族类型不支持大于255个字符的原因。

 

pb6.5中检索大于255个字符的char族类型列时,sql serverASAOracle会被截断,这个应该是pb6.5的特定数据库连接驱动中进行了处理。因为如果把连接方式换成ODBC连接的话,测试会发现大于255的字符数据可以被成功提取

 

需求背景:

但是在实际的应用过程中,尤其对一些描述性或备注性信息,255个字符显然是有些太小。那么怎么突破这个限制哪?对不同的数据库我们又怎么能进行一致的处理哪?

 

解决方法:

1.对于sybase11.9之前的数据库,不支持大约255个字符的列定义,所以需要设置列为text类型(sql server,asa 也可以这样设置)

Alter table [table_name] add [column_name] text null

 

对于Oracle可以设置列为clob

Alter table [table_name] add [column_name]  clob null

 

2.然后把数据窗口export出来,把列长度改为小于32000的相应长度,text类型的列建议改为32000。还要注意import进数据窗口后,改一下对应的limit的值(最好不要设为0,也不能大于32765),否则可能显示不全,或无法录入数据

 

测试数据:

 

测试环境:

       Oracle 9i

       Sybase 11.9

       Asa 9.0

       Sql server 2000

 

备注:

1.  ASA中的text类型是long varchar的别名

2.  要特别注意在oracle下,数据窗口中的列长度不能大于32765,肯定是数据库连接驱动中进行了限制

3.  对于oraclemssasa支持场varchar类型的数据库,也不要建为varchar(2000)这样的列。必须建为text,clob类型的列

4.  一个表中,text/clob类型列不要太多,最好只要一个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值