我的数据库里有个考生编号字段,我想在窗体一显示时从库里比较,查出最大的然后加1赋给编辑框edt_ksbh.text,但这个循环我不知怎么写,
我用的考生编号不是纯数字,而是zg001开始的,比如连接数据库的adoquery 名为adoq_ksbh
我是这么写的:
adoq_ksbh.first;
edt_ksbh.text:=zg001;
with adoq_ksbh do
begin
next;
close;
sql.clear;
sql.add('select * from tbl_ksbh');
open
if strtoint(copy(edt_ksbh.text,5,6))<adoq_ksbh.fieldbyname('ksbh').value then
edt_ksbh.text:=adoq_ksbh.fieldbyname('ksbh').value then
end;
但是不对,请各位高手教教小弟
我用的考生编号不是纯数字,而是zg001开始的,比如连接数据库的adoquery 名为adoq_ksbh
我是这么写的:
adoq_ksbh.first;
edt_ksbh.text:=zg001;
with adoq_ksbh do
begin
next;
close;
sql.clear;
sql.add('select * from tbl_ksbh');
open
if strtoint(copy(edt_ksbh.text,5,6))<adoq_ksbh.fieldbyname('ksbh').value then
edt_ksbh.text:=adoq_ksbh.fieldbyname('ksbh').value then
end;
但是不对,请各位高手教教小弟
procedure TFBasicPersonInfo.BasicPersonInfoInitial;
begin
with datamodule1 do
begin
TMaxbh.Filter:='biaoshi=''zg''';
TMaxbh.Filtered:=true;
TMaxbh.Open;
counter:=TMaxbh['maxbh'];
TMaxbh.Close;
counter:=counter+1;
biaoshi:='000000'+Inttostr(counter);
biaoshi:='PID'+RightStr(biaoshi,6);
end;
DBEid.Text:=biaoshi;
end;
--最大编号库
create table Maxbh
(
biaoshi char(2) primary key, --职员编号的标识
maxbh char(11) null default '', --职员当前的最大编号
beizhu varchar(20) null default '' --备注
)insert into Maxbh values('zh','0','')
edt_ksbh.text:=zg001;
While Not adoq_ksbh.Eof Do
begin
adoq_ksbh.close;
adoq_ksbh.sql.clear;
adoq_ksbh.sql.add('select * from tbl_ksbh');
adoq_ksbh.open
if strtoint(copy(edt_ksbh.text,3,5))<Strtoint(Copy(adoq_ksbh.fieldbyname('ksbh').AsString,3,5)) then
edt_ksbh.text:=adoq_ksbh.fieldbyname('ksbh').AsString,3,5));
adoq_ksbh.Next;
end;
edt_ksbh.text:=copy(adoq_ksbh.fieldbyname('ksbh').AsString,1,2)+IntToStr(StrToint(copy(edt_ksbh.text,3,5))+1);
counter:=TMaxbh['maxbh'];这句啥意思是调用一个取最大编号的函数吗但我觉得思想不错谢谢 angle097113(深思不解) ( ) 信 这位
edt_ksbh.text:=copy(adoq_ksbh.fieldbyname('ksbh').AsString,1,2)+IntToStr(StrToint(copy(edt_ksbh.text,3,5))+1);
这句啥意思我运等不对呀希望还能有人帮助谢谢了,