易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi三层架构

三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。
这样做的好处是层次分明,维护好做,系统资源也好分布式处理。
数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层
业务逻辑的话要分析清楚,就是中间层
界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负担太大也会形成瓶劲。
数据库的建立不说了。
三层体系的建立
一 数据库层的建立
      使用sqlserver或orale建立数据库。
二 中间层的建立
      一般将中间层分为二个部分,数据部分和逻辑部分。
     数据部分就是使用原始的查询,一个ado连接,多个成对出现的adq和dsp。ado连接最后选使用文件连接,以便以后可以在客户端自由决定连接哪个数据库而不需要改程序。
逻辑部分跟客户端一样,使用DCom来连接到数据部分,然后使用cds连接到DCOM并指明数据提供器dsp.然后再增加相应的函数来处理数据。事务一般取自动维护的,这样函数开始事务自动开始,我们只需要维护事务回滚setAbout,和事务完成setcomplete.在中间层服务器中不要添加需要人主动干预的动作,比如对话框之类。因为中间层服务器和数据库一样是长时间不间断运行的,也没有谁会呆在中间层服务器前专门处理这些问题。
例:delphi7 sqlserver2000,win32环境
在delphi中建立一个多层项,选Translation Data Moudle
取个名testTran,线程模式Threadling Model选Aparment,等会再改它。
事务模式Translation model取 需要一个事务requires a Translation
点OK就建立了一个中间层。
然后得改一改线程模式由tmApartment改成tmNeutral.(在initialization的 TComponentFactory.Create里改参数。)
再就可以添加数据控件进行处理了。
附:线程模式 1.Single:单线程,只有一个Rmd线程,所有客户端只能顺序地得到服务。
2.Apartment:服务程序可以同时有多个Rmd线程,但每个Rmd线程只能服务以单线程模式运行。
3.Free:没有线程限制的模式,没见用过。
4.Both:介于Apartment和Free之间的一种线程模式,没见用过。
5.Neutral:仅对Com+有效,可以使多个客户端同时以多线程模式应用服务器,建议使用,但注意全局变量的保护问题。
三 客户端的建立
     客户端的建立,取数据直接用DCO


相关文档:

delphi调用选择目录对话框

delphi调用选择目录对话框
经常见网上有人问选择目录对话框的控件,其实只用一个函数就可以实现。
注意引用 Filectrl 单元
use Filectrl;
procedure TForm1.Button1Click(Sender: TObject);
var
Dir: String;
begin
SelectDirectory('Select a directory', '', Dir);
ShowMessage(Dir);
end; ......

用DELPHI创建DLL文件,封装窗体的实现方法实例

虽是原创,但是是参考过别人的作品,然后自己重新写的,目的是要给初学者一个更容易明白。
用DELPHI创建DLL文件,封装窗体的实现方法实例:
即一个程序不再是单一的一个EXE文件了,而是由一个EXE文件加N个DLL文件组成,这样做的原因是方便以后的维护与更新,也是跨平台开发的重要一步。
1, 打开DELPHI,新建一个Dl ......

用Delphi开发数据库应用程序的常用方式

用Delphi开发数据库应用,一般会涉及到闪屏(Splash)、登录窗口、主数据模块(或主数据库连接)以及主窗口。通常在项目文件中,splash窗口显示过,一些需要加载的资源、窗口加载过后,Application.Run之前,进行用户登录。
//测试CSDN博客对DELPHI代码的支持
program TEST;
uses
Forms,
Windows,
MainF in 'Ma ......

Delphi 列出目录下的文件

function ListFiles(Dir: String):TStrings;
var
FSearchRec: TSearchRec;
FileList: TStrings;
FindResult: Integer;
begin
if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
FileList :=TStringList.Create;
FindResult:=FindFirst(Dir+'*.*,faAnyFile+faDirectory,FSearchRec);
while FindRes ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号