精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载
发新话题
打印

Delphiwe编写规范

Delphiwe编写规范

  


                  1、变量声明d

所有的变量不论类型,均以v开头,如:

varvWorkerName:string;

vYear:integer;

vDate:tdate;


_recordset对象的前缀为vrs。


特殊的变量:vsql:基本上所有的sql语句均先用变量vsql斌值,如:

var vSql:string;

begin

vsql:=’select a.fdworker ‘;

vsql:=vsql ’ from tabworker a ‘;

end;

控件命名

类前缀示例

TEditededWorkerNo

TDBGridgrdgrdWorker

TComboboxcbocboWorker

TDateTimePickerdpdpDate

TButtonccOk cCancel

TCheckBoxchkchkCancel

TSpeedButtonsbsbWorker

TClientDataSetclnclnWorker

TDataSourcedsdsWorker

TAdoDataSetadodsadodsWorker

TPanelpanpanTop

TFormfrmfrmWorker

TDataSetProviderpvdpvdWorker

TTreeviewtrvtrvRawType

TListviewlstlstWorker

TPageControlpcpcWorkerInformation

TImageimgimgWorker

TMemoededMemo


2、函数及过程的命名3、

函数的前缀用f

例如:处理数据检查的函数:function fCheckData:boolean;


过程的前缀用p

例如:处理工人离职的过程:procedure pWorkerLeave;


命名规则

所有变量或控件的命名均采取英文意义命名,并且尽量不要用缩写。

例如:对输入工人姓名的TEdit的命名为:edWorkerName

而不要命名为:edWN等缩写形式



数据表的前缀为tab,字段的前缀为fd。

例如:工人表的名称为:tabworker

工人编号的字段为:fdworkerno

数据库操作方法

操作数据库(选择、插入、更新、删除):基本上用SQL语句来操作数据库,避免用Data Aware类的控件来操作数据库。

例如:插入一条生产记录:

varvSql:string;

vWorkerID:string;

vProductNum:string;

begin

xxxxxx;

………;

vsql:=’insert into tabproduct (fddate,fdworkerid,fdproductnum) values(‘;

vsql:=vsql vinfo.vdbsqldate(date);

vsql:=vsql ’,’ (vWorkerID);

vsql:=vsql ’,’ (vProductNum);

vsql:=vsql ’)’;

vinfo.execute(vsql);

end;

*注:vinfo代表一个自定义类TInfo的一个实例,里面封装了各种函数,具体内容在后面有说明。


  


                  





用tdbgrid显示数据的方法:

1.使用TDBGrid TDataSource TClientDataSet TDataSetProvider TAdoDataSet控件。

2.连接方式为TDBGrid->TDataSource->TClientDataSet->TDataSetProvider->TAdoDataSet

3.先用_recordset对象来接收数据,4.然后把_recordset对象斌给TAdoDataSet控件,5.再调用TClientDataSet的Close方法、Open方法。


多用户操作数据的处理:通常把要操作的表进行锁定,锁定方法为用tinfo类的plocktable方法。

数据合法性检查方法

通常在要保存数据的时候之前进行数据合法性的检查,不要在输入的时候检查数据的合法性。

检查包括:

1.检查是否是整数;

用类TInfo的fIsInt函数判断。

2.检查是否是浮点数;

用类TInfo的fIsFloat函数判断。

3.检查是否是日期;

日期用TDateTimePicker来进行输入,通常不用检查。

4.检查是否没有输入;

用类TInfo的flen函数判断。

5.数据完整性的检查(检查内容会在开发文档中说明);

6.数据逻辑性的检查(检查内容会在开发文档中说明);


对于字符类型的数据,注意一定要用trim函数清除前后的空格。

类TInfo的说明

Tinfo类封装了一些基本的函数、过程及常数:

函数及过程:

6.function fIsFloat(vData:string):boolean;

7.function fIsInt(vData:string):boolean;

8.function fLen(vData:string):boolean;

9.procedure pBeginTrans;//事务开始

10.procedure pCommitTrans;//事务提交

11.procedure pRollBack;//事务回滚

12.procedure execute(const vSql:string;var vRs:_recordset;vAbort:boolean=false);overload;

安全的SQL执行函数1,vSql为要执行的SQL语句,vrs为接收返回值的_recordset对象,vAbort表示当发生属于连接(网络中断)的错误时,是否中止处理。通常执行包含在一个事务里的SQL语句时用true,而不在事务里的SQL语句不用指定。

例如:varvSql:string;

vrsWorker

begin

vsql:=’select a.fdworkerno,a.fdworkername ‘;

vsql:=vsql ’ from tabworker a ‘;

vinfo.execute(vsql,vrsworker);//这句没有指定vabort,则缺省为false

{上面这一句在执行,如果网络中断,导致不能连接到数据库,则会进行提示是否要重试,如果不要重试,则退出整个系统;如果重试,则会重试连接到数据库,但如果仍然不能连接,则重复进行提示直到连接上或由用户取消连接以退出系统}

vinfo.execute(vsql,vrsworker,true);//这句指定vabort

{上面这一句在执行,如果网络中断,导致不能连接到数据库,则会进行提示不能连接到数据库,所以执行中止。并会尝试连接到数据库。如果不能连接,则提示是否要重试,如果不要重试,则退出整个系统;如果重试,则会重试连接到数据库,但如果仍然不能连接,则重复进行提示直到连接上或由用户取消连接以退出系统}

end;



13.procedure execute(const vSql:string;vAbort:boolean=false);overload;

安全的SQL执行函数2,与1的区别在于1有返回数据集。


常数:

1.vDateStr:当前计算机的日期格式,2.如果当前计算机的格式为2位年份,3.则转化为4位年份。

例如:当前计算机的短日期格式为’yy-mm-dd’,则vDateStr为’yyyy-mm-yy’。

4.vCurrentUserNo:当前登录的操作员的编号。

5.vCurrentUserName:当前登录的操作员的名6.称。

TOP

发新话题