Delphi 编写代码的时候需要自动生成流水号的编号
来源:百度知道 编辑:UC知道 时间:2024/05/17 04:31:49
//formname表名,No流水号字段名 ,ado自己设置一个TADOQuery控件
function GetAutoNo(formname,No:string):string;var
i,j:integer
tempNo:string
begin
ado.close;
ado.sql.text:='select * as t from '+formname+' order by '+No+';
ado.open;
if ado.isempty then
i:=1
else
begin
ado.last;
i:=StrToInt(copy(ado.fieldvalues[No]),2,4);{例:C-0001,copy将截取0001}
inc(i);//递增1
end;
tempNo:=IntToStr(i);
while Length(tempStr)<5 do
tempNo:='0'+tempNo;
result:='C-'+tempNo;
end;
这里只是思路,具体事实要考虑的如果流水号大于四位的情况,多加些判断也就可以了,这里不在细说了
自己写程序生成咯.
思路如下:
第一次插入,这时候库中没有值. 则插入C-0001
以后插入记录每次取cardid 最大值, select cardid from table order by cardid desc; 取第一个.
取出后将C- 截去,剩下的转整型+1,然后再和C- 拼一块就是新的cardid
如果编号是规范的,可以这样:
var ss:string;
........
qry1.sql.text:='select top 1 cardID from