邪门了!有没有人遇到过这样的问题,在三层结构(access2000)中从表就是写不进数据,主表写入正常。 (50分)

  • 主题发起人 主题发起人 fly555
  • 开始时间 开始时间
F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层中数据库用access2000
下面二个表:
一个是存货表,一个是销售发票头表,但是在客户端用
ClientDataSet1.Post;
ClientDataSet1.ApplyUpdates(-1);
写入时,存货表(ch)就可以写入数据库中,但是销售发票主表(xsdtb)就是无法写入数据库中(同样用上面两句话)但是并不报错,好象是写进去一样。
--------------------------------
存货表(ch)结构:
chflid 文本
chid文本
chname文本
ggxh文本
jldw文本
chid建了索引
---------------------------------
销售发票头表(xsdtb)结构:
xsdid 文本
date 日期/时间
khid 文本 允许空 选择为否
khname 文本 允许空 选择为否
ywyid 文本 允许空 选择为否
ywyname 文本 允许空 选择为否
username 文本 允许空 选择为是
shrname 文本 允许空 选择为是
ischeck 是/否

xsdid建了索引
------------------------------------
最初写不进数据库时,我以为是不是因为主表与子表的关联关系造成的,
所以我在access2000中点了复制表xsdzb然后粘贴后取名为xsdzb1,
再进行测试时,xsdzb1同样也是写不进数据库中。
请教各位,这是什么原因?
 
没人会吗
 
我做了一个试验,发现删除主表数据时提示不能删除,只有当把从表的数据全部删除后,
主表才能删除。而且发现如果我在clientdataset中建立lookup字段后,一打开表格就会出错.
 
我觉得直接在服务端join出来的表在更新回去时遇到的问题很多(以前我相信ADO可以办到,但自从遇到几个怪问题后我坚决不相信他的自动更新了),所以遇到主从关系,我或者建立视图,或者先把两张表查询出来,再在客户端放两个ClientDataSet连接,再设置他们的主从关系就可以。
不过在删除数据和新增数据时还是会遇到问题,就像zhixue说的问题我也遇到过,而且我用事件查询器也追踪了执行applyupdates(0)时数据库的动作,发现主表的删除SQL语句一切正常,但就是在最后会回滚事件,使得更新不成功(很可能和COM+中间层的事务控制有关系)。同样的语句,如果在SQL查询分析器中执行,没有遇到错误。所以我都用applyupdates(1)来进行主表的删除和添加纪录。
 
逻辑没写好
 
具体些,
什么意思?
 
你挂接错误处理了吗/
怎么知道没有错 ClientDataSet1.ApplyUpdates(-1);是不会显示错误的,如果返回不是0,就是有错了
 
我是说程序未报错,
另:
怎知它返回的是不是0
 
var
ErrorCount:integer;
...
ErrorCount:=ClientDataSet1.ApplyUpdates(-1);
if ErrorCount>0 then
showmessage(format('提交时产生%d条错误!',[ErrorCount]))
 
access2000沒用過!
 
to menxin:
运行后提示提交时产生1条错误!
这怎么回事呢?
 
我怎么知道啊,你自己看提示啊
用OnReconcileError看,delphi有例子
 
谢谢menxin了,
 
接受答案了.
 
后退
顶部