ClientDdataset能修改记录,但不能添加记录,如何是好?(100分)

  • 主题发起人 主题发起人 南风掌柜
  • 开始时间 开始时间

南风掌柜

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了个小的瘦客户程序,在客户端用ClientDataset控件可查询和修改服务器的数据库内容,但是我在客户端增加数据时,无论如何也写不进数据库到服务器的数据库,求助!!!
增加程序:
ClientDataset.Append;
ClientDataset.Fieldbyname('name'):='中国';
ClientDataset.Post;
ClientDataset.ApplyUpdates(-1);
ClientDataset.close;
修改程序:
ClientDataset.Edit;
ClientDataset.Fieldbyname('name'):='中国';
ClientDataset.Post;
ClientDataset.ApplyUpdates(-1);
ClientDataset.close;
大家看看增加程序有什么不对?运行没出错,就是运行后在服务器端查看数据库时就是没有加上!
 
也许问题出在主码上。你的表中只有'name'这一个字段吗?
建一个只有一个主码的表,再用这段代码试试。
 
有很多个字段,我只是随便写了个'name'字段出来,其他略。表的主码是什么?是INDEX吗?
 

TClientDataSet.OnReconcileError
事件中
showmessage(e.message);
看看提交错误信息
 
我对所有字段进行追踪,发现有几个字段在添加时赋值,那么整条记录都不能被加上,去掉就可以了,好奇怪
 
出错是ODBC关于ACCESS的“非法的精确度数值”
 
如果数据库表没有主键,请加上主键
如果字段有默认值,请去掉(ACCESS的数值型字段自动加了默认值为0)
 
表的字段都没有默认值,所有字段是文本类型。加上主键问题依旧。我经过测试,发现出问题的字段是赋给字段的值是空字符时,就出上面那个错,但是我已经在字段中设置了允许空字符的哟
 
中间层数据库的表中是否有ID,将其设置为自动累加型。
 
对所有字段进行追踪,看增加记录时主键值是否为空,是否有重复,字段大小是否符合定义。
 
肯定是数据库定义的问题,要不列出详细情况再让大家分析
包括数据库,表定义等,越详细越好
 
后退
顶部