+ -
当前位置:首页 → 问答吧 → 求救,Delphi7下ADOQuery新增数据时出错

求救,Delphi7下ADOQuery新增数据时出错

时间:2011-12-12

来源:互联网

在同一个字段中插入完全相同的值,我用以下两种方式实现,但第二种却报数据长度大于字段最大长度的错误:

第一种方式:
用ADOQuery的ExecSQL方法直接执行insert语句

第二种方式:
用ADOQuery的Open方法先打开数据集,然后用ADOQuery.Append新增一条记录,
给每个字段赋值,然后用ADOQuery.Post




第二种方式插入数据时产生的问题:
-------------------------------------------------
数据表F_A,其有字段F1,类型为NVarchar2,长度20,
为表F_A插入一条数据,其中为字段F1插入的是16个长度的数字字符,比如“1011100000000000”,但是Oracle返回错误信息:
ORA-12899: value too large for column "myUser"."F_A"."F1" (actual: 41, maximum: 20)



相关环境及配置:
=====================================
服务器:
-------------------
操作系统:Red Hat Enterprise Linux 5.4 英文版
oracle版本:11.2.0.1
oracle字符集:AMERICAN_AMERICA.AL32UTF8 


客户端:
-------------------
操作系统:windows XP sp3 繁体版
oracle客户端版本:11.2.0.1
oracle客户端字符集:TRADITIONAL_CHINESE_TWIWAN.ZHT16MSWIN950
MDAC版本:2.81.1132


=========================
完全相同的配置,在我们自己的机子上运行没任何问题,
而在客户那里却会报ORA-12899错误


更为重要的是在我们自己安装了多台服务器,客户机,
也和客户运行环境完全相同的,也不有同的,
服务器有windows,有linux,有中文版有英文版,
客户机,是windows xp,有中文繁体\中文简体\英文版的,运行过程都没任何问题

求救,谢谢大家了!

作者: wind2005   发布时间: 2011-12-12

第一种方式执行是成功的

作者: wind2005   发布时间: 2011-12-12