多步操作产生错误

来源:互联网 发布:哪些软件可以挣集分宝 编辑:程序博客网 时间:2024/05/16 10:20
 

现象:

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

    

 

   

 

开发环境:

       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完整版