上一页 1 ··· 141 142 143 144 145 146 147 148 149 ··· 196 下一页
摘要: TField.ProviderFlags,这对于组 SQL 来说至关重要!ProviderFlags 是 TProviderFlag 的集合,我们来看看 ProviderFlags 可以包含哪些元素 元素名称 说明 备注 pfInUpdate INSERT / UPDATE 要包含此字段 实际上会不会包含,要看字段值有没有变动而定 pfInWhere UPDATE / DELETE 时要加入 WHERE 实际上会不会加入 WHERE,要看字段值有没有变动而定 pfInKey UPDATE / DELETE 时要加入 WHERE,以及 DataSet 内数据的重复检查 一定会加入WHERE p. 阅读全文
posted @ 2012-02-20 23:10 delphi中间件 阅读(1897) 评论(0) 推荐(0) 编辑
摘要: 数据集对象池unit ServerMethodsUnit1;interfaceuses SysUtils, Classes, DSServer, DB, Generics.Collections, DSService, Provider, ADODB;type TServerMethods1 = class(TDSServerModule) procedure DSServerModuleCreate(Sender: TObject); private { Private declarations } ListofQuery : TDictionary<Integer,Tadoquery 阅读全文
posted @ 2012-02-20 23:02 delphi中间件 阅读(1732) 评论(1) 推荐(1) 编辑
摘要: TDSServerClass有一个属性LifeCycle,这个属性有三个值,很好理解1.Session,这是默认值。说明:这是默认属性,也是delphi推荐设置。Session会为每个来自客户端的链接,建立一个线程来实例化。实例化是什么概念呢?就是这个线程把所有你将要用到的类、函数等等都建立好了,等待你客户端直接使用。这个线程和实例化并不释放,直到客户端中断连接。如果有300个客户端,那么你的服务器将会有300线程和实例,对服务器硬件和内存是个考验。适用环境:这个设置是线程安全的!客户端数量少,每台服务器不超过连接数量: 200 x CPU个数 x (每个CPU核数x0.7) (这是经验值,稳 阅读全文
posted @ 2012-02-20 20:48 delphi中间件 阅读(1654) 评论(2) 推荐(1) 编辑
摘要: 可作为参数的类型TDBXWideStringValueTDBXAnsiStringValueTDBXInt16ValueTDBXInt32ValueTDBXInt64ValueTDBXSingleValueTDBXDoubleValueTDBXBcdValueTDBXTimeValueTDBXDateValueTDBXTimeStampValueTDBXBooleanValueTDBXReaderValueTDBXStreamValue可作为var和out的参数的类型booleanSmallIntIntegerInt64SingleDoubleAnsiStringStringTDBXTimeT 阅读全文
posted @ 2012-02-20 20:48 delphi中间件 阅读(1505) 评论(2) 推荐(0) 编辑
摘要: 一个插件就是一个DLL或者BPL工程,只有经过注册的插件和注册的插件中的模块,主控程序才能识别并加载。1. 注册插件的数据表结构:如上图所示需要在数据表中登记插件的名称(比如PLUGIN1.DLL)和插件的说明(比如基本资料)。2. 注册插件中的模块的数据表结构:如上图所示需要在数据表中登记模块的编号,所属的父模块编号,模块的名称,所属插件的名称,模块的类名,说明 阅读全文
posted @ 2012-02-19 21:00 delphi中间件 阅读(1137) 评论(0) 推荐(0) 编辑
摘要: 只有使用REGISTERCLASS()方法注册了的类,才能使用FINDCLASS(className)方法查找然后创建类的实例对象。在每个单元的初始化节注册类。initialization RegisterClass(TDicForm);finalization UnRegisterClass(TDicForm);end. 阅读全文
posted @ 2012-02-19 17:25 delphi中间件 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 基类窗体要实现的需求包括:控件窗体的字体,权限控制,控制子窗体的显示范围,以及其它一些通用方法的声明。。。。。。通用方法可声明为VIRTUAL方法,以允许从它继承的子窗体可以OVERRIDE这些方法,达到多态的效果。unit uBaseForm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TBaseForm = class(TForm) procedure FormClose(Sender: TObject; var Action: T 阅读全文
posted @ 2012-02-19 17:21 delphi中间件 阅读(990) 评论(0) 推荐(0) 编辑
摘要: 在插件中需要对接口中的方法进行具体的实现,主控程序才能调用并执行插件中的具体功能。unit uPlug;interfaceuses uInterface, Forms, Windows, Classes, SysUtils;type TModelService = class(TInterfacedObject, IModelInts) private function CheckFormExists(aClassName: pchar): Boolean; public procedure Cmd(aClassName: PChar); // create visual plugin pro 阅读全文
posted @ 2012-02-19 17:20 delphi中间件 阅读(931) 评论(1) 推荐(1) 编辑
摘要: 使用TRzMenuController控件只是为了增加主菜单的皮肤效果,可清除此控件主控程序的主窗口单元要实现的需求如下:1.自动识别并加载各个已经注册的插件;2.自动识别并加载各个已经注册的插件中的各个模块(自动生成系统的主菜单,自动生成各菜单项的点击事件);unit uMainForm;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Menus, Loader, Buttons, uInterface, 阅读全文
posted @ 2012-02-19 17:16 delphi中间件 阅读(1269) 评论(0) 推荐(0) 编辑
摘要: 主控程序和各插件之间通过预约的接口进行交互,这就是为什么主控程序能够自动识别插件的原因,因为主控程序和各插件早已经预约了接口。主控程序调用插件中的导出函数,取得导出函数的返回值,这个返回值返回的是某一个接口。一个导出函数的返回值可以返回一个接口,多个导出函数就可以返回多个接口。接口里面定义了许多的方法,通过接口可以调用到它里面的某一个方法,即调用了插件里面的某一项功能。插件框架里面可能需要定义多个接口,按照某一个原则对这些接口进行分类。比如日志操作接口,数据操作接口,权限操作接口。。。。。。可以在一个单元中集中定义插件框架中需要使用到的接口,然后在主控程序和各插件里面都要引用这个接口定义的单元 阅读全文
posted @ 2012-02-19 17:15 delphi中间件 阅读(965) 评论(0) 推荐(0) 编辑
上一页 1 ··· 141 142 143 144 145 146 147 148 149 ··· 196 下一页