delphi 三层开发接口基本版http://www.abis.com.cn/upload/ABIS_BASE_DELPHI_1.rar
(一)架构说明
即于DELPHI 7所做的,三层架构,可用于与联网
N个客户机--------》应用服务器(一个或多个)------》数据库服务器(一个或多个,确定与数据库本身是否支持)(二)特点:
一、后台可支持ADO中的任意数据库
二、象开发两层一样来开发三层
三、可用于广域网,也可应用互联网(三)实施:
一、开放应用服务器211端口
二、将server整个目录复制到应用服务器上
1.将midas.dll拷贝到C:\WINDOWS\system32下(非必需要,但保验起见还是拷吧)
2.运行scktsrvr.exe(以为DELPHI自带,服务器重启后必需要操作此步,如果你觉得麻烦,你可以运行serverReg.bat,将此进程注册为系统服务,以后可随系统启动而自动启动)
3.运行AbisServer.exe(只需运行一次,以后客户端运行时会自动运行此进程),菜单-》文件-》联接数据库,此布是让你连上数据库服务器
注意:此目录以后不要删除
三、客户端。将AbisClient.ini和AbisClient.exe拷贝给客户机即可
(四)开发:控件 ClientDataSet<-------DataSource<-----DBGrid
别名 ds1 ds2 dbgrd1ds1
RemoteServer:DataModuleConn.conServer
ds2
DataSet:ds1
dbgrd1
DataSource:ds2
查询语句:ds1.Data := DataModuleConn.conServer.AppServer.QuerySQL(' select * from 表名 ');
变更语句:DataModuleConn.conServer.AppServer.ExecSQL(' update 表名 set .... ... ');
查看AbisClient.dpr即可,非常简单,象两层一样开发(五)缺点
仅支持QuerySQL和ExecSQL,暂不支持存储过程
(六)补充
一、AbisServer.ini为应用服务器联接数据库配置文件,自动生成,不建议手工修改。
二、AbisClient.ini为客户端必需配置文件,其中Address=127.0.0.1一行为应用服务器IP,你仅可以修改此行来指向你的应用服务器
已经在计量业务系统中成功运用(一应用服务器+40左右客户端)稍候将推出,sql 2000下的带权限的管理的客户端开发平台(用户---》角色----》菜单---》窗口,注,仅到窗口,不能到按钮),支持存储过程的服务器进程正在研究中。敬请关注。
网址:http://www.abis.com.cn
讨论地址:http://www.abis.com.cn/bbs/index.php?gid=11
邮件:[email protected]
我的QQ:9411526欢迎大家与我交流!
(一)架构说明
即于DELPHI 7所做的,三层架构,可用于与联网
N个客户机--------》应用服务器(一个或多个)------》数据库服务器(一个或多个,确定与数据库本身是否支持)(二)特点:
一、后台可支持ADO中的任意数据库
二、象开发两层一样来开发三层
三、可用于广域网,也可应用互联网(三)实施:
一、开放应用服务器211端口
二、将server整个目录复制到应用服务器上
1.将midas.dll拷贝到C:\WINDOWS\system32下(非必需要,但保验起见还是拷吧)
2.运行scktsrvr.exe(以为DELPHI自带,服务器重启后必需要操作此步,如果你觉得麻烦,你可以运行serverReg.bat,将此进程注册为系统服务,以后可随系统启动而自动启动)
3.运行AbisServer.exe(只需运行一次,以后客户端运行时会自动运行此进程),菜单-》文件-》联接数据库,此布是让你连上数据库服务器
注意:此目录以后不要删除
三、客户端。将AbisClient.ini和AbisClient.exe拷贝给客户机即可
(四)开发:控件 ClientDataSet<-------DataSource<-----DBGrid
别名 ds1 ds2 dbgrd1ds1
RemoteServer:DataModuleConn.conServer
ds2
DataSet:ds1
dbgrd1
DataSource:ds2
查询语句:ds1.Data := DataModuleConn.conServer.AppServer.QuerySQL(' select * from 表名 ');
变更语句:DataModuleConn.conServer.AppServer.ExecSQL(' update 表名 set .... ... ');
查看AbisClient.dpr即可,非常简单,象两层一样开发(五)缺点
仅支持QuerySQL和ExecSQL,暂不支持存储过程
(六)补充
一、AbisServer.ini为应用服务器联接数据库配置文件,自动生成,不建议手工修改。
二、AbisClient.ini为客户端必需配置文件,其中Address=127.0.0.1一行为应用服务器IP,你仅可以修改此行来指向你的应用服务器
已经在计量业务系统中成功运用(一应用服务器+40左右客户端)稍候将推出,sql 2000下的带权限的管理的客户端开发平台(用户---》角色----》菜单---》窗口,注,仅到窗口,不能到按钮),支持存储过程的服务器进程正在研究中。敬请关注。
网址:http://www.abis.com.cn
讨论地址:http://www.abis.com.cn/bbs/index.php?gid=11
邮件:[email protected]
我的QQ:9411526欢迎大家与我交流!
还使用AbisServer.exe干什么?另外,scktsrvr.exe的口碑很差,基于它,会不会。
用户-角色(群组)-操作
是与数据库交互用的一个进程
最近也在学习这个东西,关注中.搭车问下,说"不是太流行了吧(wxsan)"的兄弟能否说说,现在都流行什么开发模式,或者说框架?还有请教下,说"这个比较落后了(xthmpro_cn)"的前辈能否说下,那个比较先进好给我等后辈指个学习方向,谢谢!
作为Borland开发社区曾经的一员,我深感惋惜。Delphi作为一个面向对象的语言,其设计是优秀的,即使从今天的观点看也是如此。VCL的核心架构,起码就当年的标准来衡量,也是出色的。
但是,Borland犯了一系列不可挽回的错误,其中之一就是,Delphi没有为其绝大部分开发者向着深入的方向成长铺平道路,甚至严重误导了开发者,结果是做Delphi越是资深,离正确的软件开发原则和实践就越远。例如大家在讨论的这个三层架构,就是Borland的一个不可原谅的败笔,且不说socksrv.exe的稳定性和伸缩性的如何,Borland让开发者通过DataSet作为各层间的耦合机制就是和架构分层的基本原则背道而驰的,这样的三层,如果在最前端一层不写SQL语句几乎是不可能的,更别谈业务逻辑层的封装了。
"离正确的软件开发原则和实践就越远"
我现在在学习Delphi的三层架构,听你这么一说,想请教下,什么是正确的"软件开发原则和实践",或者说怎么才能"离正确的软件开发原则和实践就越近"
光说什么什么不好没什么说服力,你得有论据才能让别人信服.
另外 midas里还有BUG的
它有什么bug?
因我們公司用這個
首先我在服务器端全部用接口,客户端直接调用接口,它们之间的数据传递cleintdataset.data
进行单表的数据修改用clientdataset.delta进行传递。
所有查询都用临界区进行控制,相关业务也封装在服务端;客户端是在提交和获取数据时与服务端相连。
scktsrvr.exe这个有源码,我有下载了一个修正版的主要是真对双CPU的。
做了一个测试:用两台机子分别用100个线程同时访问一个读写数据库函数,没有出现问题,但是分别用1000个线程访问,由于等待返回结果时间太长,客户端出现连接超时报错。
当然AbisServer.exe服务器应该还有一些ServiceObject和Service Method。
至于客户端到底要不要出现SQL,难说。
1、如果不出现SQL,那么就全部改成服务器的Service Method;或者一个接受一个SQLID的Service Method,以此SQLID去数据库查找Stored Procedure。这样好处是尽量减少客户端的改动和再分发,副作用是增加了好多的Service Method或Stored Procedure(以一个ERP来说,至少上千),客户端与服务器的对照关系增多,管理上比较容易乱,特别是那些没有开发文档,也不做系统分析的开发方式;
2、如果出现SQL,客户端改动比较自由,但一旦修改,全部Client都要再次分发。法无定法,看开发环境和部署环境自己选择吧。
数据库部分 用IdTcpServer + Ado 以XML流传输 , 中间配合文本压缩与字符加密
客户端实现一个COM代理,,所有的模块都要由这个COM代理来封包解包与服务器交互,然后再交由模块继续处理自动升级用IDFTPServer/Client 完成,,注册成NTSERVER 即可实现开机自动运行
http://topic.csdn.net/u/20090930/10/c656b3f0-7179-4d81-929b-c7450cadefeb.html目前我已经成功实现权限管理
http://topic.csdn.net/u/20090930/10/c656b3f0-7179-4d81-929b-c7450cadefeb.html目前我已经成功实现权限管理
再次关注,
引用 12 楼 bonhomme 的回复:
我于若干年前做过4年Delphi。最近听说Delphi被卖给私人公司了,连同其他几个相关产品售价仅400万美元,不及MySQL出售价格的百分之一。
作为Borland开发社区曾经的一员,我深感惋惜。Delphi作为一个面向对象的语言,其设计是优秀的,即使从今天的观点看也是如此。VCL的核心架构,起码就当年的标准来衡量,也是出色的。
但是,Borland犯了一系列不可挽回的错误,其中之一就是,Delphi没有为其绝大部分开发者向着深入的方向成长铺平道路,甚至严重误导了开发者,结果是做Delphi越是资深,离正确的软件开发原则和实践就越远。例如大家在讨论的这个三层架构,就是Borland的一个不可原谅的败笔,且不说socksrv.exe的稳定性和伸缩性的如何,Borland让开发者通过DataSet作为各层间的耦合机制就是和架构分层的基本原则背道而驰的,这样的三层,如果在最前端一层不写SQL语句几乎是不可能的,更别谈业务逻辑层的封装了。 首先我不得不承认,socksrv.exe确实有问题,但是“如果在最前端一层不写SQL语句几乎是不可能的,更别谈业务逻辑层的封装了”说法我不造成,我自己写的就没在客户端写个SQL,
用户个人权限--->>角色权限---->>模块权限+特殊权限
初步介绍如下:
http://blog.csdn.net/truexf/article/details/6661545
服务器一天到晚都被搞坏了,大伙帮看看能不能打开来http://www.abis.com.cn