zoukankan      html  css  js  c++  java
  • delphi 三层架构简单例子(经测试成功)

    delphi 三层架构简单例子(经测试成功)

    所谓三层:

    (1) 客户端

    (2) 服务器端

    (3) 数据库

        在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。

        在Delphi中可以使用Socket或者Dcom来连接他们相互间的通讯。如果使用Scocket在系统使用时必须提供Scocket连接器,而Dcom则不用。客户端和服务器的连接需要Broker来联系。


    环境为winxp sp2 + delphi 7 + db7.(MSSQL2000)

    创建过程:
    1、请不要新建application.file-new-activex-activex library,file --new--other,选择"Multitier"--"Remote data module"。在跳出来的对话框里面输入名称(任意),例如:AppSqlConn。选择确定,进入remote data module窗口。
    2、加入组件:adodataset,点击connectionstring属性,点击后面的…,进入设定连接窗口。选择:use connection string--build,在提供程序中选择:"Microsoft ole db provider for sql server",在连接中:服务器名称输入sql server的ip地址,登录信息中输入用户名和密码(sql server),在选择数据库中选择自己想要使用的数据库。一般只要地址正确、用户名和密码无误,肯定可以连接通过。确定退出

    3、在commandtext中点击后面的…,进入sql 语句设定,根据自己的要求设定。

    4、将active属性设置为true。只要前面的设定是正确的,这里应该顺利通过。
    5、加入组件:datasetprovider。设定其dataset属性为上面的adodataset。
    6、到此服务器端已经设置完成。请保存并且运行一次,从而使服务注册。
    7、运行delphi的bin目录下面的scktsrvr,因为下面要使用socket连接。运行后任务栏中出现socket server的图标。

    8、新建程序(application),然后file--new--data module,会创建客户端的data module。
    9、加入组件:socketconnection,在address中输入sql server的ip地址,然后在servername中输入刚才创建的remote data module的服务程序。程序会自动在serverguid中加入id。然后选择connected属性为true。只要此处不报告错误,此程序基本成功 了。
    10、加入组件:clientdataset,选择remoteserver属性为socketconnection,选择providename为服务器程序的datasetprovider。然后选择active属性为true。
    11、到程序的form窗口状态,首先选择file--use unit,选择上面创建的data module,确定。然后加入组件datasource和dbgrid。选择datasourece的dataset属性为data module的clientdataset,选择dbgrid的datasource为这里的datasource组件。现在应该可以看到dbgrid的 窗口中出现了想要的数据。保存并且编译客户端程序。
    12、客户端分发软件设定。从服务器端拷贝midas.dll文件到本机的system(98)或者system32(2000),一般自己就可以注册,否则用regsvr32 midas.dll注册一下。然后将刚才客户端程序拷贝过来运行一下,应该可以正常运行。


    还有拒绝访问的错误我也碰到过,是没有打开borland socket server,该程序是borland/bin/scktsrvr.exe
    注册服务器端时应该使用 run-install mts objects安装到组件服务里,安装完后可以在
    控制面板-组件服务里找到服务器的GUID,然后填到borland socket server里就可以了。
    如果需要code的话,请发mail到tech@chinajstar.net

    scktsrvr.exe是一个NT的服务程序,你用scktsrvr.exe -install安装之后,每次系统启动,它都会自动运行的。如果你的客户端用了socketconnection,每次连接应用服务器的时候,都需要通 过scktsrvr.exe才能访问到你的应用服务器.

    scktsrvr.exe -uninstall 即可卸载

    midas.dll是个什么文件?

    1.数据库三层的文件.
    2.TClientDataSet小家碧玉,恐怕人人都喜欢使用。但是,都知道娶TClientDataSet是有代价的,因为你同时也得面对丈母娘MIDAS.DLL。
    3.delphi用来设计多层应用程序的动态库,用来作客户端和服务器连接和处理。
    4. Multi-tier distributed application service
       多层分布式开发服务
       midas.dll是它运行时需要的动态连接库。
    5.你安装好delphi时装在system32里的,delphi的一个DLL.


    能不能使用TClientDataSet又不用MIDAS.DLL呢?

    很简单,就是uses一下MidasLib单元!
    MidasLib单元在Delphi6中才有,是Lib目录下的一个dcu文件。一旦在你的源程序中引用了MidasLib单元,程序运行时就不再需要MIDAS.DLL文件。
    然而,编译后程序大小一定会增加200k以上,即使使用包编译模式。

  • 相关阅读:
    [置顶] windows player,wzplayerV2 for windows
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    编译cegcc 0.59.1
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    windows player,wzplayerV2 for windows(20140416)更新
    编译cegcc 0.59.1
  • 原文地址:https://www.cnblogs.com/karkash/p/3086132.html
Copyright © 2011-2022 走看看