读书人

高分!关于Midas三层数据库有关问题!

发布时间: 2012-03-16 16:34:56 作者: rapoo

高分求救!!!!!!!!!!关于Midas三层数据库问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我根据教材做了一个简单的Midas应用程序通过拨号网络实现数据的远程自动复制(插入).
(1)在服务器端建立remote data module 远程数据模块
在其中加入database1 datasetprovider query1 控件
(2)在客户端加入tclientdataset tdatasourse tdcomconnection tdbgrid
控件
现在能实现的功能是只要运行客户端程序服务器端自动运行并把服务器端query1 查询的内容反映在客户端tclientdataset里面可以在tdbgrid中显示出来.数据的传递基本就完成了但还是有很多不明白的地方希望各位大侠指点一二..................
具体问题:
(1) 数据在dbgrid里面能显示出来但是如果要复制到数据库里面应如何操作
(2) 如果是客户端发送数据到服务器操作方式又如何?具体点是想达到这样在客户端点发送然后服务器可以自动接收也可以点某个按钮来实现传递功能,也就是说数据的传递可以通过人工的方式干预
(3) 软件如何实现自动拨号到服务器比如点连接--就开始通过猫拨号
(4) 如何检测网络是否忙?


望各位大哥大姐指点密精小弟不胜感激!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


[解决办法]
我也很久没用Midas,反正你这是个例子,我就说几句,抛砖引玉:

1、你用的是BDE,应该在远程数据模块上放一个TSession,而Database最好不要放在远程数据模块上,因为这可能引起名字冲突。

2、你说的“dbgrid里面能显示出来但是如果要复制到数据库里面应如何操作”,这个问题不存在,因为既然dbgrid显示的本来就是本地数据集tclientdataset中的数据,无论这个数据是本地输入的,还是从服务器端接受。

3、客户端数据传送,使用tclientdataset.ApplyUpdates(-1);返回值是发送不成功的记录个数,注意不是已经发送的个数,发送不成功数据的原因不仅仅是数据有错误,也包括重复的记录,比如,你从服务器端接受100条记录,如果不做修改的ApplyUpdates,其结果是一条也不成功。

4、“软件如何实现自动拨号到服务器比如点连接--就开始通过猫拨号”,以前我在Win98下是这样调用的:
if WinExec( PChar( 'RunDll32.exe Rnaui.dll,RnaDial ' + DialName),SW_SHOWNORMAL) <= 31 then
ErrorDlg( '调用拨号程序 ' + DialName + '失败! ');
但是,上述代码在2000和xp下不起作用,我也没进一步研究它,因为我那个时候的客户端操作系统都是98,让楼下高手们说吧!

5、如何检测网络是否忙?这就很难说了,一般DCOMConnection连接成功就可以了,但是如果数据传输中间网络出问题,恐怕不太好检测,但是系统最后后告诉你连接超时。

[解决办法]
请问楼主,在应用服务端,你是怎么做的?具体步骤能不能说一下?在下也有这方面的项目.就是把三层结构的系统放到广域网 上运行.原来只能在局域网内运行.客户端用socketconnection连接方式.

读书人网 >.NET

热点推荐