上一页 1 ··· 143 144 145 146 147 148 149 150 151 ··· 204 下一页
摘要: 通过 Rtti 单元的 TRttiContext(是个 record), 可以方便地获取类的方法、属性、字段的列表. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Contro 阅读全文
posted @ 2013-03-02 22:43 delphi中间件 阅读(2175) 评论(0) 推荐(0)
摘要: 编辑器通过 Rtti 还能够调用一个类的方法, 也能读取或设置其属性值. --------------------------------------------------------------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TB... 阅读全文
posted @ 2013-03-02 22:42 delphi中间件 阅读(1756) 评论(0) 推荐(0)
摘要: //////////////////////////////////////////////////////////////////////////////////功能: STRING 的内容流化到 OLEVARIANT 中//参数:////////////////////////////////////////////////////////////////////////////////function TextToOleData(const AText: string): OleVariant;varnSize: Integer;pData: Pointer;beginnSize := 阅读全文
posted @ 2013-02-27 11:04 delphi中间件 阅读(8321) 评论(0) 推荐(0)
摘要: 对于守护中间件是非常有用的。中间件不可能绝对的稳定而不出问题,中间件有可能因比较严重的错误导致当机或者进程被人为地错误地关闭了中间件。有了这个自动守护进程的存在,这一切的问题都可以迎刃而解。program Monitor;// {$APPTYPE CONSOLE}uses Winapi.Windows, System.SysUtils, ProcLib in 'ProcLib.pas';var Mutex, h: HWND;const c_AppName = 'server.exe'; c_ClassName = 'Tf_MainForm';be 阅读全文
posted @ 2013-02-21 13:32 delphi中间件 阅读(1685) 评论(1) 推荐(0)
摘要: 现在,DATASNAP倾向于使用JSON作为统一的数据序列格式,以期达到跨平台的效果。于是使用JSON便成为热点。unit uJSONDB;interface uses SysUtils, Classes, Variants, DB, DBClient, SuperObject, Dialogs; type TJSONDB = class private class function getJsonFieldNames(res: ISuperObject):TStringList ; class function getJsonFieldValues... 阅读全文
posted @ 2013-02-20 22:56 delphi中间件 阅读(6779) 评论(0) 推荐(2)
摘要: 窗口、控件以及字体大小均随分辨率而变化,让界面适应各种不同的分辨率。var FWidth: Integer;begin inherited; if (Screen.width <> 1024) then begin FWidth := Self.width; Scaled := True; Font.Size := (Self.width DIV FWidth) * Font.Size; // 字体大小调整 ScaleBy(Screen.width, 1024); // 控件大小调整 Self.Height := longint(Height) * lon... 阅读全文
posted @ 2013-01-30 15:03 delphi中间件 阅读(1193) 评论(0) 推荐(0)
摘要: OleVariant的本质OleVariant,COM的一种数据类型。MIDAS基于COM之上构建的,自然使用OleVariant作为数据序列格式。延续到现在最新的DATASNAP仍然支持它。TClientDataset.data,TClientDataset.delta,这俩个属性的类型都是OleVariant。OleVariant可以是string,integer,float...这个大家都知道,但它也可以是array of OleVariant,这个可能有人不知道了。明白了这点就是datasnap中间件主从表数据同步的关键。var a: TServerMethods1Client; .. 阅读全文
posted @ 2013-01-30 11:49 delphi中间件 阅读(7944) 评论(0) 推荐(0)
摘要: DATASNAP中间件使用巢状对象提交数据非常方便,巢状对象会自动生成更新的SQL语句,无需我们手工拼写,只需类似如下的一行代码即可搞定。dm.dspQuery.ApplyUpdates(v, 0, ErrCount);但是,有时候却会报错。一种原因是数据表结构设计时使用了数据库保留的字段名引起的。比如SQL SERVER数据库如果某表结构使用status的字段名,因为status是SQL SERVER的保留字。而巢状对象自动生成的SQL语句不会用[status]把status包起来,导致sql server保留字错误。如何解决?设计数据表结构的时候,字段名要避免使用数据库的保留字。二种原因是 阅读全文
posted @ 2013-01-30 11:40 delphi中间件 阅读(818) 评论(0) 推荐(0)
摘要: 如果WINDOWS系统的短日期格式为“yyyy/m/d”,执行下面的代码会报错:2013-01-29 00:00:00不是合法的日期procedure TFrmQuerySale.FormShow(Sender: TObject);varsDate: string;begininherited;// 默认查当天的销售数据sDate := FormatDateTime('yyyy-mm-dd', Now);DateTimePicker1.DateTime := StrToDateTime(sDate + ' 00:00:00');DateTimePicker2.D 阅读全文
posted @ 2013-01-30 11:26 delphi中间件 阅读(10605) 评论(0) 推荐(1)
摘要: 最近做了个断网收银的项目,服务端使用SQL SERVER数据库,收银机使用ACCESS数据库。做了个中间件来同步数据。哪些数据需要同步?新增的数据修改过的数据删除的数据(删除只是置删除标志位,可以视为修改过的数据进行处理)需要同步的数据表统一预留俩个用于数据同步的字段:字段名:CreateDate,数据类型:TDateTime,新增数据的时间戳;字段名:ModifyDate,数据类型:TDateTime,修改过的数据的时间戳。倘若需要同步的数据表内的数据小,可以不使用时间戳,而在每次同步数据之前,先删除表内的所有数据,然后再插入同步的数据。如此编程最为简单,但必须是同步数据较小的情况下。数据同 阅读全文
posted @ 2013-01-30 11:17 delphi中间件 阅读(2221) 评论(1) 推荐(0)
上一页 1 ··· 143 144 145 146 147 148 149 150 151 ··· 204 下一页