delphi三层架构学习
来源:互联网 发布:天津河东区淘宝街 编辑:程序博客网 时间:2024/05/17 08:05
服务端注意的是:我目前只知道用regsvr32.exe命令注册编译的服务器端dll文件,然后如果通过socketconnection组建建立中间层服务器和客户端连接,则需要在中间层运行delphi\bin\scktsrvr.exe文件,运行socket服务 这样客户端才能够通过socket找到服务端,也可以用dcomconnection组件代替socketconnection 这样不需要额外运行scktsrvr
------------------------------
Delphi三层架构的一种方法
function TRDM.ExecSQL(const SQL: WideString): OleVariant;
var
begin
在使用DataModel窗体存放数据库控件的程序中,应注意:
1、如果在其他窗体中调用DataModel中的控件必须在先引用Datemodel的单元,在implementation下面加入以下语句
uses
2、必须改变窗体的创建顺序,datamodel窗体必须先于引用该窗体控件的窗体创建
三层结构
应用层:
一、需要三个数据控件:
Adoconnect
AdoQuery
DataSetProvider
二、联接顺序:
SQL数据库<--Adoconnect<--Adoquery<--DataSetProvider
三、属性设置:
Adoconnect:
Adoquery:
DataSetProvider: 1、DataSet
四、其他
1、运行SocketServer并开端口
2、数据模块使用远程数据模块
客户端:
一、基本控件
SocketConnection
ClientDataSet
DataSoure
DBGrid
二、联接顺序:
应用层<--SocketConnection<--ClientDataSet<--DataSoure<--DBGrid
三、属性设置:
SocketConnection: 1、Adrress
ClientDataSet:
DataSoure:
DBGrid:
四、其他
一、先关闭记录集后执数据库操作语句
二、在可能发生出错的数据库操作做错误捕捉,如:open,update,delete等
----------------------------------------------------
所谓的三层数据库,就是在服务器端放置一个中间层,本实例使用Remote Data Module(远程数据模块)创建,3层的好处就是把一些功能放在中间层,这样当某些功能发生转变时,既不用修改数据库,也不用修改客户端,只要修改一下中间层就可以了啊。
2. 再加入一个DataSetProvider控件,设置其属性DataSet指向ADOTable。这就完成了服务器端的程序设计,保存、编译。
3.
4. 再添加一个TClientDataSet控件(在Data Access页),其属性设置: RemoteServer:DCOMConnrction1 ProviderName: DataSetProvider1(服务器端将被激活) Active:true (激活后将能正常连接) 添加TDataSource控件,设置其属性DataSet指向ClientDataSet1。 添加TDBGrid控件,设置其属性DataSource指向DataSource1。 这就完成了客户端的程序设计,保存、编译。这样一个三层数据库构架就基本完成了,我们可以在客户端添加数据显示控件,设置同普通数据库连接设置相同。
以上所需控件:
------------------------------
delphi 三层架构简单例子
所谓三层:
(1) 客户端
(2) 服务器端
(3) 数据库
环境为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
以上转自http://www.richsearch.com/search/displ.aspx?lid=3291984
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
5.你安装好delphi时装在system32里的,delphi的一个DLL.
能不能使用TClientDataSet又不用MIDAS.DLL呢?
很简单,就是uses一下MidasLib单元!
MidasLib单元在Delphi6中才有,是Lib目录下的一个dcu文件。一旦在你的源程序中引用了MidasLib单元,程序运行时就不再需要MIDAS.DLL文件。
然而,编译后程序大小一定会增加200k以上,即使使用包编译模式。
- delphi三层架构学习
- Delphi三层架构操作
- delphi三层架构
- Delphi三层架构基础
- delphi三层架构
- delphi三层架构
- Delphi 三层架构
- delphi三层架构
- delphi三层架构
- delphi 三层架构简单例
- delphi 三层架构简单例
- 三层架构的学习
- 三层架构的学习
- 深入浅出学习三层架构
- 三层架构的学习
- 学习三层架构感悟
- 三层架构的学习
- 三层架构学习总结
- Java注解浅析
- 【JavaScript】ECMAScript5中新增的数组操作函数
- hdu2818 并查集
- 简单的Delphi三层程序开发
- Android Studio发布到Jcenter
- delphi三层架构学习
- Chromium网页绘图表面(Output Surface)创建过程分析
- Hadoop,Scala,Spark环境配置
- java基础总结大全
- Nginx学习笔记:对正向服务器与反向服务器的理解
- Oracle安装错误ora-00922(缺少或无效选项)
- 缓存区溢出攻击实验(3)
- leetcode : 321. Create Maximum Number : 有点难度的贪心法
- c语言:四舍五入