多步操作产生错误

 

现象:

       执行到以下赋值语句的时候会报,多步操作产生错误(如图)

    

 

   

 

开发环境:

       VB+ADO2.7,数据库服务器为oracle9i,客户端为oracle9i精简版

分析:

       开始以为是程序代码的原因,也看了网上的许多分析,一般产生这种情况的无非是以下原因:

1、  要更新的值跟字段类型不一致

2、  要更新值的长度大于字段定义的长度

3、  将空值插入非空字段中

这些原因基本上是逻辑造成的,但我查看了代码,均排除以上原因,而且最大的问题是,客户端如果安装的是9i完整版,那不会报上面这个错误,如果客户端装的是9i精简版,就会出现以上问题,有一个解决办法就是客户端直接用9i完整版安装,但一个问题是,完整版要 1G 多,精简版不到 13M ,有点不甘心。

再测,发现使用cnn.Execute “update…”方式,更新记录是可以的,而且用赋值的办法更新其他表多没问题,于是将Fdrop重建,还是一样,再将Fdrop,而且把表结构变掉,发现还是会报错,修改表名变为F_Z,不报错,太奇怪了,难道跟表名有关?

 

结论:

       可能是9i精简版的一个BUG,不能对F表进行VB赋值操作

解决办法:

1、  修改表名,在数据库设计的时候不建议使用像a,b,f这样简单的表名

2、  修改更新方式,将其改为cnn.Execute “update…”方式

3、  客户端装9i完整版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值