您的位置:首页 > 其它

数据窗口字段保存显示超过255个字符

2015-08-23 17:19 435 查看
数据窗口字段保存显示超过255个字符

数据窗口字段保存显示超过255个字符

用的是PB8 + SQL SERVER2000,

字段bz varchar(600)

我现在采用的方法是在数据源中这样写:CONVERT(A.bz) AS bz

我录入一个100多字符的数据,这样弄了,录入、显示、保存是没问题,但是程序retrieve的时候,老提示“数据转换溢出”

但是我在数据窗口预览里直接retrieve,又没提示。

专家回答

方案一、

超过255的,不要用varchar类型,用text类型,设计完数据窗口后,手动将列的长度设置为600即可

方案二

varchar可以超过255的,只是PB默认是建议不要超过255,但你可以改

在PB连接数据库的地方,你编辑你连接数据库database profile,在Syntax选项卡里

有一个Text Limit in SQL:的值,默认是255,你改大一点,比如3000,保存后,你的有可能超过255的datawindow都重新生成一下(重新生成不是重新做)

然后你再看preview选项卡,会发现SQLCA.DBParm = "DBTextLimit='3000'"多了这么一句话

这句话你是要加到你程序里连接数据库的代码里的

以下针对SQLSERVER2000、2005数据库

输入限制的解除

1、选中数据窗口,点击右键,选择"Edit Source"菜单,进入到数据窗口源代码方式,找到相应的字段,比如:

column=(type=char(255) update=yes updatewhereclause=yes name=msg_body dbname="jc_sysmessage.msg_body" ),

将以上语句改为:

column=(type=char(4000) update=yes updatewhereclause=yes name=msg_body dbname="jc_sysmessage.msg_body" )

然后保存。此方法主要是为了解决在数据提交到数据窗口数据缓冲区时的判断,如果是255,会提示超出长度。

2、双击打开数据窗口,选中字段msg_body,选择属性页中的EDIT标签,

将Limit改为4000,对应数据库字段的长度。

经过以上修改后,现在可以输入2000个汉字,包括空格与回车符。并且可以保存成功了。

以上只完成了第一步,数据可以保存到数据库的表中了,但是你会发现在显示时,还是无法显示,这是因为SQLSERVER针对VARCHAR类型的数据做了限制,如果要显示更多数据,需要做以下处理

1、将字段类型改为TEXT类型,如果是SQLSERVER2005,也可以使用VARCHAR(MAX)类型,然后到数据窗口中,将此字段重新选择一次,你会发现在数据窗口字段列表中,字段长度变为CHAR(4099)了,显示数据超过了255个字符。

2、以上方法需要修改数据库。另一种方法可以不修改数据库。字段类型为varchar(4000)。双打开数据窗口,选择Data Source进入到SQL语法编辑窗口,将SQL语句中的字段进行转换,CONVERT(text,msg_body) AS msg_body,返回后,你会发现字段长度变为CHAR(4099)了,同样可以用于保存与显示超过255个字符的限制。

3、以上转换后,限制在了4099个字符,如何可以超过这个限制呢,在默认情况下,SQLSERVER对于TEXT类型的字段限制返回4099个字符,如果想突破,就得想办法了。

进入DB Profile数据库配置窗口,打开连接,选择Syntax标签页,如图,将Text Limit改为需要的值,再查看Preview标签页,

注意SQLCA.DBParm = "DBTextLimit='8000'",此参数就是用于突破TEXT类型字段的限制的,到此就完成了整个工作,你可以保存和显示超过255个字符的限制了。当然你还得重复第一步中的第1小项,将数据窗口的CHAR值改为相应的数值char(8000)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: