今天CSDN中没有人吗!还是怕不给分!
解决方案 »
- delphi中新建windowsless控件从哪个类继承好?
- 请教大家一个关于Midas 事务处理的问题。。。感谢。。。 本人分不多了,见谅
- 怎样在一个组件中添加自定义的属性
- OpenDialog窗体显示时,按Enter键是打开,ESC键是取消,Tab键是移动,那怎样把这3个键分别换成F1,F2,F3?
- 如何设定DBGRID每列的显示格式?
- 简单问题:如何将value数值转换成string?
- 一个数据库多个表同时插入数据的问题?(我是新手,第一次来,请大家帮帮忙。)
- 如何利用两个 query 组件,两个 dbgrid 一个 datasource ,去创建主/细表(明/细表)?
- 我用下面的代码来打印图片,为何打印出来的图片那么小,如何能够做到象ACDSEE那样的打印功能?
- 请问各位大哥那里有Delphi5的中文帮助文档下载;小弟万分感谢
- 好几天没有来了,因为有了新电脑,一台兼容机(自己配的),一台手提,忙着装软件和转数据。送些分给大家//准程序员
- 关于多层开发,如何我从客户端上传数据到服务器端,一定给分
我看上面对这个问题仍没有解决!不知还有没有办法!
一定要注意操作次序的问题!我也遇到过类似的情况!还有最好数据库不要使用什么默认值什么的!一定会有问题!我也曾经捆饶过!!
和你的DB.ApplyUpdates(-1)毫无关系~!
建议你发送SQL语句到中间层,有中间层的QUERY去提交SQL语句。而且在中间层上还可以实现数据的事务控制。
可以在中间层写一个供客户调用的接口函数,传入要执行的SQL语句。然后有中间层向数据库提交。我觉得这种方法执行效率要要好些。
1:在你的客户端浏览时其他的客户端修改了纪录,提交不成功
2:提交时发生了错误,比如数据库中设置了某些字段不能为空,而提交的纪录中恰巧此字段没有赋值
3:数据库给某些字段设置了默认值,你提交的纪录中相应字段没有赋值,数据库用默认值修改了。
4:你是成批的提交数据,必须要保证提交的数据之间没有相关联的,否则关联的纪录先提交了,而后提交的纪录没有更新。
解决以上问题的方法:每次一个记录一个记录的提交,每次提交后用ClientDataSet.Refresh,刷新,这样可能你会觉得有点慢,但是这是解决此类方法的唯一途径。附加一句:最好所有的与客户端对应的数据元件,比如在RemoteDataModule上的ADOTable,都连接到同一个Connection元件,比如TADOConnection,此方法仅限于编译后的服务端应用程序是独立的Exe,如果是Dll则不行。
看了一下别人的贴,原来还有数据同步的问题啊,又长见识了,谢谢。不过没分:)
if ClientDataSet1.ApplyUpdates(0)=0 then
ShowMSg('保存成功!')
else
ShowMsg('不成功!');
应用程序服务器: DataSetProvider.ResolveToDataSet := True;
DataSetProvider.Exported := True;
poAllowCommandText := True;
应该没有问题!
0: 在提交时不管别人修改了后台数据都没关系
-1: 在提交是如果别人修改了数据会有错误返回