摘要: uses Windows; 在工程文件中添加一句代码,如下: Application.Initialize; //添加以下一句解决外文系统乱码问题 SetThreadLocale(DWORD(Word(SORT_DEFAULT) shl 16) or DWORD(Word(SUBLANG_CHINE 阅读全文
posted @ 2022-08-19 13:01 小洋房 阅读(44) 评论(0) 推荐(0) 编辑
摘要: function GetFileSize(const fName: AnsiString): Int64;var hFile: THandle;begin hFile := _lopen(PAnsiChar(fName), OF_READ); Result := FileSeek(hFile, In 阅读全文
posted @ 2022-08-19 12:52 小洋房 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1.row_number 2.rank 3.dense_rank 4.ntile下面依次介绍这四个排名函数的使用。这里我使用的是微软提供的实例数据库AdventureWorks。一、 row_number row_number函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面的SQL语句所示: selectrow_number()over(orderbyfield1)asrow_number,*fromt_table在sq... 阅读全文
posted @ 2012-09-18 14:48 小洋房 阅读(2190) 评论(0) 推荐(0) 编辑
摘要: 【字符串函数大全】 首部 function AnsiResemblesText(const AText, AOther: string): Boolean; $[StrUtils.pas 功能 返回两个字符串是否相似 说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写 参考 function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc 例子 CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text 阅读全文
posted @ 2012-09-18 14:45 小洋房 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 之前说到中间层通过向客户端暴露方法的方式提供服务,实现数据库数据的读取和更新。方法调用的方式,其潜在的意义,就是说中间层不保存客户端状态信息,就像WEB服务一样,客户端需要自己保存自己的状态信息。进一步说,就是中间层具体提供方法的业务对象实例,不是也不应该专属于某个客户端,它应该能够为不同的客户端调用提供服务。如果我们把业务对象实例放到对象池中集中存放,调用方法时随用随取,方法结束即放回池中。这样就可以实现业务对象实例服务于不同的客户端调用请求。更重要的是,利用对象池,能够最大化服务器各种资源的使用效率,而且对客户端的响应也更快了,因为业务对象实例早就创建好了,取来即用。其实,DataSnap 阅读全文
posted @ 2011-05-21 00:16 小洋房 阅读(2068) 评论(0) 推荐(1) 编辑
摘要: 如果DataSnap服务器方法的执行时间比较长,这时候可能需要在客户端用进度条显示当前服务器方法的执行进度。要实现这种需求,现在可以利用DataSnap的回调功能,此功能是从Delphi 2010版本开始被引入的。要实现回调,服务器方法需要暴露给客户端一个或多个类型为TDBXCallback的参数。例如:...{$METHODINFO ON} TServerMethods1 = class(TComponent) private { Private declarations } public { Public declarations } function LongTimeRunFunc(In 阅读全文
posted @ 2011-05-20 22:15 小洋房 阅读(1379) 评论(0) 推荐(0) 编辑
摘要: DataSnap服务器可以通过方法调用向客户端返回数据流,当然,也可以从客户端向服务器上传数据流,都是通过方法调用的方式来实现的。下面以一个简单的例子来演示。服务器端实现:{$METHODINFO ON} TFUService = class(TPersistent) public function ReplaceFile(FileName: string; FileStream: TStream): Integer; function GetFile(schema, FileName: string): TStream; end;{$METHODINFO OFF}//GetFile方法向客户 阅读全文
posted @ 2011-05-20 22:14 小洋房 阅读(1544) 评论(0) 推荐(0) 编辑
摘要: 在过去客户端要调用远程服务器的方法需要通过在TLB里添加接口并且在服务器对象中实现在DataSnap 2009中调用远程服务器的方法是基于delphi的RTTI机制的想要一个类允许被远程调用需要做以下两点1.把该类和DSServerClass连接在一起procedureTMainForm.DSServerClassGetClass(DSServerClass:TDSServerClass;varPersistentClass:TPersistentClass);beginPersistentClass:=TSM;end;DSServerClass的OnGetClass就是用于完成此任务的注意: 阅读全文
posted @ 2011-05-19 20:53 小洋房 阅读(943) 评论(0) 推荐(0) 编辑
摘要: DataSnap 2009 系列之三 (生命周期篇)DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置当DSServer启动时从DSServerClass组件读取LifeCycle属性的值注意:LifeCycle的值由于在启动时就已经读取 启动后再修改LifeCycle的值将没有任何效果LifeCycle属性的值可以是以下三种字符串之一1.Session该选项为默认设置每个连接都会建立一个独立的服务器对象为客户端提供服务,服务器对象在连接关闭后释放因此多个客户端访问的是不同的服务器对象,是线程安全的2.Invocation对于每次服务端方法调用建立一个独 阅读全文
posted @ 2011-05-19 20:53 小洋房 阅读(747) 评论(0) 推荐(0) 编辑
摘要: Delphi 的MIDAS出来了这么多年终于有改进的版本了COM-FREE的DataSnap 2009真是清爽了很多DataSnap 2009 除了不支持回调和Intercept组件以外 其它的该有的都有了 而且还有很多强大的特性第一篇就先写点DataSnap 2009连接方面可能要用到的东西以后再继续写写关于生命周期的管理 对象池的应用 以及远程管理 远程方法调用等方面的东西吧。首先 建立个DataSnap 2009的服务器工程一共用到三个组件DSServer 服务配置组件 用于绑定其它的组件DSServerClass 可以看作是一个类的工厂 用于导出需要远程调用的服务端模块DSTCPSer 阅读全文
posted @ 2011-05-19 20:52 小洋房 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: DataSnap 2009的客户端采用了原始的TClientSocket组件实现了通讯层 即简单效率也不错但是如果我们想要设置连接超时怎么办?想要设置代理服务器又该怎么办呢?能不能利用我们常用的网络控件(indy ics synapse...)来替代呢?在这里我基于synapse控件实现了一个自己的DataSnap客户端驱动注:synapase是一套比较不错的开源的第三方控件 这里我们要使用它的TCP控件来扩展支持代理服务器的使用 synapse 官方网址http://www.synapse.ararat.cz/doku.php synapse svn地址https://synalist.sv 阅读全文
posted @ 2011-05-19 20:51 小洋房 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 高性能的socket通讯服务器(完成端口模型--IOCP) 很多人费尽心思,都没有找到一个完美的 I/O CP 例程,甚至跟人于误解,先将本人编写的例程公布出来,希望对那些苦苦寻觅的人带来收获。本例程可以作为... 阅读全文
posted @ 2009-10-04 01:40 小洋房 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 用什么实现HTML的界面用Delphi实现HTML界面的应用主要有两种选择:WebBrowser Control或MSHTML。为了弄清两者如何选择,我们先来看看Internet Exporer 4.0及其后续版本的体系结构: IE浏览器是建立在SHDOCVW.DLL组件之上的,而SHDOCVW.DLL则建立在MSHTML.DLL组件之上,底层则包括脚本引擎等。SHDOCVW.DLL提供了... 阅读全文
posted @ 2009-09-29 21:31 小洋房 阅读(8319) 评论(0) 推荐(1) 编辑
摘要: 研究了一下WebBrowser组件和MSHTML 在Delphi中的使用,整理了一下这段时间研究的结果,写下来一是方便大家查阅,二也可以加深我自己的记忆.希望能对大家有所帮助… …,同时,如果有更好的处理方式或者我没有提到的问题,请大家也告诉我哦, 咱们一块进步… ...,其中一部分是我从网络中搜集的资料,谢谢那些兄弟们… … MSHTML把HTML页面中的元素封装成了IHTMLInputEl... 阅读全文
posted @ 2009-09-29 21:26 小洋房 阅读(1305) 评论(0) 推荐(0) 编辑
摘要: 1.在formcreate事件中加入Application.OnMessage := IEMessageHandler;这是用作对webbrowser回车事件处理消息2。打开网页时作相应处理,进入网页编辑状态webbrowser1.Navigate(htmfile);while webbrowser1.busy doApplication.ProcessMessages;(webbrowser1.... 阅读全文
posted @ 2009-09-29 21:25 小洋房 阅读(2954) 评论(0) 推荐(0) 编辑
摘要: DateUtils.CompareDateDateUtils.CompareDateTimeDateUtils.CompareTimeDateUtils.DateOfDateUtils.DateTimeToJulianDateDateUtils.DateTimeToModifiedJulianDateDateUtils.DateTimeToUnixDateUtils.DayOfDateUtils.... 阅读全文
posted @ 2009-09-08 22:16 小洋房 阅读(491) 评论(0) 推荐(0) 编辑
摘要: DateUtils.YearsBetween(); DateUtils.MonthsBetween(); DateUtils.WeeksBetween(); DateUtils.DaysBetween(); DateUtils.HoursBetween(); DateUtils.MinutesBetween(); DateUtils.SecondsBetween(); DateUtils.Mill... 阅读全文
posted @ 2009-09-08 22:14 小洋房 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.Delphi7创建一个Service程序.运行Delphi7,选择菜单File-->New-->Other--->Service Application.将生成一个服务程序的框架.... 阅读全文
posted @ 2009-04-29 00:04 小洋房 阅读(818) 评论(0) 推荐(1) 编辑
摘要: Delphi2009中找不到 WinTypes.dcu 和 WinProcs.dcu 的错误提示,使用 Alt + ↑ 也无法定位到声明的单元。解决方案如下: 点击 Project - Options,选中 Delphi Compiler 结点,在 Unit aliases 字段中加入下列字串: WinTypes=Windows;WinProcs=Windows;DbiProcs=BDE;D... 阅读全文
posted @ 2009-03-09 23:57 小洋房 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: 以灰度化代码为例procedure Grayscale(const Bitmap:TBitmap);var X: Integer; Y: Integer; PRGB: pRGBTriple; Gray: Byte;begin for Y := 0 to (Bitmap.Height - 1) do begin PRGB := Bitmap.ScanLine[Y]; for X := 0 to (B... 阅读全文
posted @ 2009-01-13 19:58 小洋房 阅读(3900) 评论(1) 推荐(2) 编辑