八神的技巧集之三 自动编码字段(11分)

  • 主题发起人 主题发起人 bsense
  • 开始时间 开始时间
B

bsense

Unregistered / Unconfirmed
GUEST, unregistred user!
我们经常需要2008-01-01-0001 或者 0001 ,0002 这样的编码形式,
而且要求在表里面不许不重复,我们知道delphi对于 自动编码自动
的支持不是很方便,那么怎么编写这样的自动字段呢?
建议是写多个函数,并且检查,比如
UMyId单元
function GetId(ATableName,AfieldName:string):string;//
var maxid:string;
begin
result := '00001';
zqry := tquery.create;
zqry.connection := dm.zconnection1;//全局变量
zqry.sql.add('select max(' +afieldname + ' )' + afieldname + ' from atablename';
zqry.open;
maxid := zqry.fieldbyname(afieldname).asstring ;
zqry.close;
if maxid <> '' then
result := right('00000' + inttostr(strtoint(maxid) + 1),5);//这里是技巧
end;
通过简单的字符连接运算,取得了前为0的编码,不需要其他函数。
 
技巧同志,请本份一点用format,它不是很见外的其它函数
 
多人接受答案了。
 
后退
顶部