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 |