关于取最大数问题

yztyzt 2003-10-20 05:21:19
我的数据库里有个考生编号字段,我想在窗体一显示时从库里比较,查出最大的然后加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;
但是不对,请各位高手教教小弟
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yztyzt 2003-10-21
  • 打赏
  • 举报
回复
herozzg(herozzg) ( ) 信誉:100 这位仁兄写的有点不太懂,
counter:=TMaxbh['maxbh'];这句啥意思是调用一个取最大编号的函数吗但我觉得思想不错谢谢

angle097113(深思不解) ( ) 信 这位
edt_ksbh.text:=copy(adoq_ksbh.fieldbyname('ksbh').AsString,1,2)+IntToStr(StrToint(copy(edt_ksbh.text,3,5))+1);
这句啥意思我运等不对呀

希望还能有人帮助谢谢了,
angle097113 2003-10-20
  • 打赏
  • 举报
回复
上面是在你的代码大基础上修改的 试试吧?不知道对不对?
angle097113 2003-10-20
  • 打赏
  • 举报
回复
adoq_ksbh.first;
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);

herozzg 2003-10-20
  • 打赏
  • 举报
回复
建表语句也可以给你,我用的SQL Server
--最大编号库
create table Maxbh
(
biaoshi char(2) primary key, --职员编号的标识
maxbh char(11) null default '', --职员当前的最大编号
beizhu varchar(20) null default '' --备注
)

insert into Maxbh values('zh','0','')
herozzg 2003-10-20
  • 打赏
  • 举报
回复
写错几个字,把倒数第四行的PID改成zg即可.
herozzg 2003-10-20
  • 打赏
  • 举报
回复
//需要在数据库中另建一个最大编号库的表,记录你的最大编号值.如此可以自动生成员工编号.以下是我写的一段程序,可以给你借鉴一下.
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;
mib3000 2003-10-20
  • 打赏
  • 举报
回复
select max(right(ksbh,length(ksbh)-2)) from tbl_ksbh

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧