电气工程师

导航

2011年12月8日 #

SQL SERVER 数据类型详解[zt]

摘要: SQL SERVER 数据类型详解[zt]数据类型类型描 述bit整型bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Offint整型int 数据类型可以存储从- 231(-2147483648)到231(2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节smallint整型smallint 数据类型可以存储从- 215(-32768)到215(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有 阅读全文

posted @ 2011-12-08 10:55 电气工程师 阅读(213) 评论(0) 推荐(0) 编辑

Delphi对Access文件加密

摘要: 下面的过程不会提示不认识数据库,只是会提示密码错误,任何读取密码的软件都不能读出正确的密码 function LockupFile(FileName:string;Lock:boolean=true):integer; //加密、解密数据库,针对 Access 2000 var f:File; bf:array[0..63] of Byte; i:integer; const fpos=64; flen=64; //下面改为自己的密钥,我是用随机生成的,请改为自己的密钥 pw:array[0..63] of byte= ($97,$A0,$0C,$A1,$06,$59,$0A,$6D, $91 阅读全文

posted @ 2011-12-08 10:02 电气工程师 阅读(181) 评论(0) 推荐(0) 编辑

Windows消息机制要点

摘要: 1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)2 消息类型 1) 系统定义消息(System-Defined Messages) 在SDK中事先定义好的消息,非用户定义的,其范围在[0x0000, 0x03ff]之间, 可以分为以下三类: 1> 窗口消息(Windows Message) 与窗口的内部运作有关,如创建窗口,绘制窗口,销毁窗口等。可以 阅读全文

posted @ 2011-12-08 09:59 电气工程师 阅读(170) 评论(0) 推荐(0) 编辑

VCL消息处理机制

摘要: 说到VCL中的消息处理就不能不提到TApplication,Windows会为每一个当前运行的程序建立一个消息队列,用来完成用户与程序的交互,正是通过Application完成了对Windows消息的集中处理! 首先通过Application.Run进入消息循环进行消息的处理,其中调用了HandleMessage。procedure TApplication.HandleMessage;var Msg: TMsg;begin //这里先调用ProcessMessage处理,返回值为False调用Idle,就是在空闲时,即消息队列中无消息等待处理时调用Idle if not Proces... 阅读全文

posted @ 2011-12-08 09:59 电气工程师 阅读(239) 评论(0) 推荐(0) 编辑

使用ado,多线程访问access数据库的开发

摘要: 本人最近正在进行呼叫中心的座席端和服务器软件开发,座席端登录部分是进行提取主机信息,然后使用SOCKET提交给远程服务器,服务器再在后台数据库中进行查找信息,进行对比,看是否允许座席端主机登录,因为我的电脑中无法安装SQLSERVER,所以 ,后台数据库暂时使用access小型数据库进行代替,到后期可以改为SQLSERVER数据库,,我在后台数据库中使用了两个表,使用WORKMARK字段将其相关联,如果在第一个表中查找到信息以后马上会进入第二个表中进行查找,如果第一个表中的信息符合,就返回个客户第二个表中的信息,因为座席端主机有200多台,为了防止几台主机同时进行验证信息,引起冲突,我在服务器 阅读全文

posted @ 2011-12-08 09:58 电气工程师 阅读(562) 评论(0) 推荐(0) 编辑

Delphi: 如何减小应用程序(EXE)的大小?

摘要: 一般来说,由Delphi生成的EXE文件,要比其由它编程语言生成的体积大一些。这主要是由于使用VCL的原因(当然,VCL是有许多优点的!) 以下是减小EXE文件大小的几种途径: 01) 使用加壳工具(如 UPX,ASPack 等) 02) 使用 KOL 03) 不使用VCL来编写程序 04) 使用 ACL (API 控制库) 05) 使用 StripReloc 06) 去除运程调试信息与 TD32 07) 把允许的代码写到 DLL 中 08) 不要在设计时把图片放置在 Form 上,而是运行时加载 09) 使用被压缩的图片(使用JPG 而不用 BMP) 10) 在 DFM 文件中减少属性 (参 阅读全文

posted @ 2011-12-08 09:57 电气工程师 阅读(360) 评论(0) 推荐(0) 编辑

Delphi实现对注册表的监视和扫描[转]

摘要: 声明:CSDN以外的任合团体和个人转载本文必须注明出处和作者。 Delphi自带的TRegistry类只能实现注册表的基本操作,如果我们要实时监视注册表的变化或者扫描注册表特定项下的所有子项,TRegistry类就无能为力了。我啃了半天SDK,终于实现了Delphi对注册表的监视与扫描,不敢独享,拿来献给广大的Delphi爱好者。 监视注册表相关项的改变要用到一个API:RegNotifyChangeKeyValue。 LONG RegNotifyChangeKeyValue( HKEY hKey, // 要监视的一个项的句柄 BOOL bWatchSubtree, // 是否监视此项的子键. 阅读全文

posted @ 2011-12-08 09:56 电气工程师 阅读(179) 评论(0) 推荐(0) 编辑

映射文件的使用

摘要: 在WIN32种,通过使用映像文件在进程间实现共享文件或内存共享,如果利用相同的映像名字或文件句柄,则不同的进程可以通过一个指针来读写同一个文件或者同一内存数据块,并把他们当成该进程内存空间的一部分。 内存映像文件可以映射一个文件、一个文件中的指定区域或者指定的内存块,其中的数据就可以用内存读取指令来直接访问,而不用频繁的使用操作文件的I/O系统函数,从而提高文件的存取速度和效率。 映像文件的另一个重要作用就是用来支持永久命名的共享内存。要在两个应用程序之间共享内存,可以在一个应用程序中创建一个文件并映射,然后另外一个程序通过打开和映射此文件,并把它当作自己进程的内存来使用。事实上,此内存是.. 阅读全文

posted @ 2011-12-08 09:56 电气工程师 阅读(251) 评论(0) 推荐(0) 编辑

DELPHI 线程池代码

摘要: unit uThreadPool;{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }interface uses Windows, Classes;// 是否记录日志 // {$DEFINE NOLOGS}type TCriticalSection = class(TObject) protected FSection: TRTLCriticalSection; public constructor Create; destructor Destroy; override; /... 阅读全文

posted @ 2011-12-08 09:55 电气工程师 阅读(223) 评论(0) 推荐(0) 编辑

BMDThread控件动态创建多线程示例

摘要: BMDThread控件是一套相当成熟的线程控件,使用它可以让你快速的创建、管理线程。 可以到CSDN或者盒子上下载BMDThread控件。 下面我们用多线程模拟客户端发送文件的例子来简单认识一下它。 在窗体中放置一个TIDClient,TBMDThread,TBMDThreadGroup.三个TEdit,两个按钮(开始线程,结束线程),一个MEMO用于接受线程结果信息 功能:使用IDTCPClient向指定服务器发送文件,动态创建线程数量同步发送文件。开始创建我们的线程单元吧。 新建Unit,保存为ThreadUnit.pas。 在单元接口部分需要引用BMDThread 单元。为了方便... 阅读全文

posted @ 2011-12-08 09:51 电气工程师 阅读(446) 评论(0) 推荐(0) 编辑