Delphi三层架构的一种方法

Delphi三层架构的一种方法

                             Parameter:Name          Type            Modifier
                                              SQL             BSTR           [in]                 输入类型字符型
                                              result           VARIANT*    [out,retval]      输出类型,结果
function TRDM.ExecSQL(const SQL: WideString): OleVariant;
var
   adoqrytem:TAdoQuery;
   prvtem:TDataSetProvider;
begin
   adoqrytem:=TAdoQuery.create(self);           //创建临时adoquery
   adoqrytem.connection:=conn;
    
   prvtem:=TDataSetProvider.create(self);        //创建临时datasetprovider
   prvtem.DataSet:=adoqrytem;
   adoqrytem.Close;              //执行sql
   adoqrytem.sql.clear;
   adoqrytem.sql.text:= SQL;
   adoqrytem.open;
在使用DataModel窗体存放数据库控件的程序中,应注意:
1、如果在其他窗体中调用DataModel中的控件必须在先引用Datemodel的单元,在implementation下面加入以下语句

uses

     DataModel的单元名称;

2、必须改变窗体的创建顺序,datamodel窗体必须先于引用该窗体控件的窗体创建
三层结构

应用层:
一、需要三个数据控件:
Adoconnect         
AdoQuery
DataSetProvider

二、联接顺序:
SQL数据库<--Adoconnect<--Adoquery<--DataSetProvider

三、属性设置:
Adoconnect:      1、ConnectionString
                  2、Connected
Adoquery:         1、connection
                  //2、Active
DataSetProvider: 1、DataSet
                  2、option.poAllowCommand:=true
四、其他
1、运行SocketServer并开端口
2、数据模块使用远程数据模块

客户端:
一、基本控件
SocketConnection
ClientDataSet
DataSoure
DBGrid

二、联接顺序:
应用层<--SocketConnection<--ClientDataSet<--DataSoure<--DBGrid

三、属性设置:
SocketConnection: 1、Adrress
                   2、ServerName
                   3、Port
                   4、connected
ClientDataSet:    1、RemoteServer
                   2、CommandText
                   3、ProviderName
                   4、Active
DataSoure:        1、DataSet
DBGrid:           1、DataSoure

四、其他


一、先关闭记录集后执数据库操作语句
    rs.close
    sqlstr="insert into abc(a,b,c) values("a","b","c")"
    rs.open sqlstr,conn
    rs.update
    rs.colose
二、在可能发生出错的数据库操作做错误捕捉,如:open,update,delete等
    rs.close
    sqlstr="insert into abc(a,b,c) values("a","b","c")"
    on error resume next  
    rs.open sqlstr,conn
    if err then
    msgbox(err.Description)
    msgbox(cstr(err.number))
    rs.update
    rs.colose


郑重声明:资讯 【Delphi三层架构的一种方法】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——