在3层结构的程序中出现一个最奇怪的现象。。。。(100分)

  • 主题发起人 主题发起人 ylbee
  • 开始时间 开始时间
Y

ylbee

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端运行在win98下,服务器是win2k+oracle9i,编译器是delphi6
程序结构是:wwDBGrid(wwDBNavigator)+wwDataSource+wwClientDataSet+
Dcom(DCOMObjectBroke)
DataPrivor+wwQuery
奇怪的现象是:在wwDBGrid中能正常插入纪录,能对现有的纪录修改,
但就是不能删除。每次删除以后,可以在wwDBGrid中看到
纪录消失了,但只有点击 刷新 按钮被 删除的纪录就奇迹般
回来了。
我打开sql monitor 看了一下,没有看到任何有关 删除操作的
sql语句。
我现在怀疑:难道是Ip4000.0.2的错误?还是我的设置有错误,可为什么
其他的操作 又是对的?
我百思不得其解,望高手指教,谢谢!
 
你是用ODBC连接数据库的吗?还是用ADO,我想ADO应该不会有这个问题吧
 
一般有关数据库的更新操作还是自己用sql处理比较放心
用数据敏感控件总是不放心,经常会有想不到的事情发生
 
你没有ApplyUpdates前,所有的改变都是在本地的,Refresh是重新获取数据
当然意味着取消所有的更改了...
 
用ADO不会有这个问题,删除要提交
 
删除一条数据要用Post 提高给数据库,不知是不是这样
 
post只是打包在本地,没有提交
需要applyupdate(-1)才可提交到数据库中
 
你修改和插入的数据有没有在数据库更新?只有applyupdate了才能把本地的修改提交到服务器去执行
然后ClientDataSet的date和delta才会合并并在客户端更新。如果还不行,那还是换ADO好。
 
建议:1。尽量换ADO
2。客户端需要applyupdate(0)才可通知应用服务器更新数据库
 
大家注意了,是其他操作都可以,就是不能删除!!
更奇怪的是:在我的有一个form中又可以删除,在其他9个form中都不行,可我的设置都一样的
????
after change我都post了
还有一些什么建设性的意见?
不知道我在wwClientDataset的afterdelete中编一个删除的sql不知道可以吗?
 
不知道我在wwClientDataset的afterdelete中编一个删除的sql不知道可以吗?
可能会有问题,写出来看看...
 
to 52free
你有类似经历,可否介绍一下处理方法?
 
对于wwClientDataSet,我在beforeDelete事件中得到 关键字
在afterpost中 用sql语句删除 果然可以.
但还有有一些麻烦事:
1、我不想为每一个CDS写2个事件,如果用公共的procedure实现,
大家有没有好的建议?
2、还有一个最麻烦的是:有几个CDS用的联合关键字中用到了‘时间‘,
然而oracle中存贮时间的格式有2种:
1999-08-13
1999-08-13 12:12:20
那么下面的sql就难写了
delete from staff where userid='1230' and hireDate=TO_Date('08/13/1999','mm/dd/yyyy');
这个‘时间‘就是麻烦,大家可有好办法解决?谢谢高手们了。
 
1.可以共用的,只是在公共事件中可能你需要为了特定的DataSet进行判断
2.你用什么的格式就用什么的格式,有什么特别吗?
 
例如
cds1是员工库,我删除纪录就是delete from staff where empno=str1
cds2是工资库,我删除纪录就是delete from salary where empno=str1 and pay_date like
to_date('''+str2+''',''mm/dd/yyyy'')';
这如何统一?
望举例。
 
修改dataprovider的属性
我记不清楚了,你试一试
 
在TDataSetProvider的BeforeUpdate事件中加入自己的删除记录代码试试。
 
先用
ClientDataSet.delete;
接着用 ClientDataSet.applyupdate(0);
ClientDataSet.refresh;
 
先用ClientDataSet.delete;
然后ClientDataSet.applyupdate(0);
ClientDataSet.refresh;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部