使用midas访问远程access数据库_delphi教程
来源:互联网 发布:土建预算软件有哪些 编辑:程序博客网 时间:2024/04/29 23:25
使用MIDAS访问远程Access数据库
Allen Tao(http://blog.csdn.net/allentao/)
2005-5-3
本文源码下载
访问远程数据库常用的办法是使用大型数据库自带的客户端工具,如SQL Server和Oracle等都带有这样的工具。带对于Access这样的小型数据库,这种方法就无法使用了,因为Access不提供这样的客户端工具。但我们可以通过MIDAS实现访问远程Access数据库。
MIDAS是Delphi提出的三层架构的解决方案。我提供的用MIDAS访问远程Access数据库方法的基本思路是在服务器端建立供远程访问的数据模块,而在客户端通过MIDAS组件与其建立连接,并在客户端发送SQL语句给服务器,服务器执行后返回数据集给客户端。
具体做法为:
服务器端
服务器使用ADO控件访问Access数据库,具体是ADOConnection控件建立连接,ADOQuery执行相关操作。使用Data Access的ClientDataSet控件向客户端返回数据集。并将以上控件放在Remote Data Module的容器中,供由客户端进行连接。
有如下步骤:
1. 建立Application。其Form取名为FormServer,Project名为PrjServer;
2. FileàNewàOther…,在弹出的New Items对话框中选择Multitier页,在该页中选择Remote Data Module,确定;
3. 在弹出的Remote Data Module Wizard对话框中,在coclass一栏中填入AccessServer,Instancing与Threading Model保持默认,即表示不同线程之间互相独立,确定后即生成一个RemoteDataModule的派生类AccessServer(在ViewàType Library中可以查看该类的详细信息);
4. 在程序所在的文件夹中新建一个名为data的文件夹,在其下放入一个名为my.mdb的Access数据库文件,其中有一个名为person的表,该表中只有两个字段,分别为name和age,都是文本类型;
5. 远程数据模块AccessServer上放置各个控件,最终效果如下图所示:
各控件的相关属性与作用如下表所示:
控件类型
所属页面
属性
值
作用
ADOConnectionADOnameADOConnection1连接Access文件ConnectionStringProvider=Microsoft.Jet.OLEDB.4.0;Data Source=.\data\my.mdb;Persist Security Info=FalseADOQueryADOnameADOQuery1执行相关查询操作ConnectionADOConnection1ClientDataSetData AccessnameDataSetProvider1向客户端提供数据接口DataSetADOQuery1Options. poAllowCommandTexttrue6. 编译并运行该服务器程序。运行该程序即注册了一个MIDAS的服务器,也只有在服务器程序运行的条件下,才能进行下一步的客户端的程序开发。
客户端
以DCOM方式与服务器端进行连接,
1. 建立Application。其Form取名为FormClient,Project名为PrjClient;
2. 在Form上放置各个控件,最终效果如下图所示:
各控件的相关属性与作用如下表所示:
控件类型
所属页面
属性
值
作用
EditStardardnametxtQuery接收查询语句Textselect * from personButtonStardardnamebtnQuery说明:
l DCOMConnection1的ServerName属性是由列表中选取的,该列表是所有注册的MIDAS服务器列表
l ClientDataSet1的ProviderName属性指定的是服务器上的一个控件
3. 在Form上双击按钮btnQuery,在其Click处理函数下加入如下一段代码:
self.ClientDataSet1.Close;
self.ClientDataSet1.CommandText:=self.txtQuery.Text;
self.ClientDataSet1.Open;
说明:
如果给出的是无返回的SQL语句,最后一句由Open改为Execute。
运行后,效果如下图所示:
改变客户端的连接方式
在上面的例子中是用DCOM方式连接服务器,这一般只能在局域网内使用。如果要在广域网内使用,可以改用Socket方式连接服务器。为此需做如下改动:
1. 在服务器端运行Delphi自带的scktsrvr.exe程序,该程序在Borland\Delphi7\Bin\文件夹下
2. 在客户端上用SocketConnection控件替换DCOMConnection控件,有关属性的改动如下表所示:
控件类型
所属页面
属性
值
作用
SocketConnectionDataSnapnameSocketConnection1通过Socket方式连接服务器Address127.0.0.1(本机)ServerNamePrjServer.AccessServerClientDataSetData AccessRemoteServerSocketConnection1向远端发出SQL语句,并取得数据集注意:
SocketConnection的默认端口是211,这也是scktsrvr的默认端口。为此要在服务器端的防火墙上开放该端口
0 0
- 使用midas访问远程access数据库_delphi教程
- 远程访问Access数据库
- C#远程访问Access数据库
- rmijdbc+access实现远程访问access数据库
- 使用OPENDATASOURCE访问远程机器上共享文件夹中的ACCESS、Excel数据库
- 使用plsql访问远程数据库
- 应用 SQLServer 链接服务器访问远程 Access 数据库
- 通过三层结构模型远程访问ACCESS数据库
- 访问远程access数据库总弹出的对话框
- 求助关于远程访问ACCESS数据库的问题
- ASP访问远程的ACCESS数据库所遇奇怪问题
- 应用 SQLServer 链接服务器访问远程 Access 数据库
- 通过三层结构模型远程访问ACCESS数据库
- 在java中实现access数据库的远程访问
- 在java中实现access数据库的远程访问
- mORMot 让Access的数据库可以远程访问的
- 在java中实现access数据库的远程访问
- java:使用路径访问Access数据库
- ThinkPHP的URL访问模式
- Android———利用JDBC连接服务器数据库
- Ruby的常量在嵌套类与子类中的引用 —— 差异点
- 普适计算-2014/03/07
- 网络131第3周实验——循环与判断语句
- 使用midas访问远程access数据库_delphi教程
- 写bootloader介绍
- 关于*iter++的含义
- 快速进入会计职场的8个诀窍
- 编程回忆之Android回忆(Android应用参数的获取)
- 内网作为服务器需要的配置
- java学习记录2
- 硬解和软解的区别
- 字符串hash