delphi edit显示数据库的编号字段,默认是0001,不可修改,如果每添加一条记录自动+1即第二条记录为0002

以此类推。数据库编号字段为bh;连接数据用的是adoconnectiondatasourceadoquery;这个功能怎么实现呢?... 以此类推。数据库编号字段为bh;连接数据用的是adoconnection datasource adoquery;这个功能怎么实现呢? 展开
 我来答
liu55721
2012-04-11 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:875万
展开全部
前面二位的搞法,不是不可以,而是是否符合要求。如果采用表中记录数加1,比如表中原有记录数是100,最后一条记录的编号是0100,现在加一条记录,编号应该是0101,但是再加这条记录之前,用户删除了一条编号为0078的记录。因此按照记录数加1,这条新加记录的编号就会仍然为0100,这样编号字段值是0100的记录就有二条了。重复了,之所以要编号,就是为了使记录有所区别,这又怎么办呢?另外我希望新添加记录编号是那条被删除的记录的编号,又怎么办呢?这就需要的新的编号进行合法性检测,而且一次检测还不行,这当然比较简单,就是按记录数加1的原则取得一个编号之后,就对表中这个编号是否存在进行检测,如果不存在,就停止检测,进行赋值操作,如果已经存在,就再次加1,进行再次检测,用一个直到型循环语句就可以解决了。
但是,要填补被删除的编号就麻烦了,除非你知道这个被删除的编号,直接在编号编辑框输入这个编号,但用户是不愿意记住这个编号的,其实这也不符合软件处理事务的规则,什么软件,还要用户用脑子记数据,这就需要程序员用代码来找那个被删除的编号了,写找编号代码当然简单,从第一个编号开始,一个一个找,直到找到为止。这种办法对于记录在千条以下,还可以,当记录超过一千条时,找这个过程就够长咯,我试过千条以内可能需要一秒钟,程序的停顿感很明显。大家有没有办法,尽量的缩短找的时间。希望赐教。
wolfy1016
2012-04-11 · TA获得超过244个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:291万
展开全部
function getid()
var
a:string;
i:integer;
with adoquery1 do beign
close;
sql.clear;
sql.add('select max(bh) as bh from table ');//oracle 数据库去掉as
execsql;
open;
a:=trim(fieldvalues['bh']);//也可以取EDIT的值。a:=trim(edit1.text);但edit1.text先要得到数据表中的最大BH。否则每次从0001开始计数
i:=strtoint(a);
i:=i+1;
a:='000'+inttostr(i);
reslult:=copy(a,length(a)-3,4);
end;
每添加一条记录,调用一下这个函数。
edit1.text:=getid();
如果需要插入到表中,也应该知道怎么调用了吧
更多追问追答
追问
我没用过函数的方法耶 能给出完整的代码么?谢谢拉
追答
放到你事件之后,var之前就行了。
procedure TfmReceiving.button1Click(Sender: TObject);
//把函数全部复制到这里就行,在这个事件中你就可以调用了
var
s:string;
begin
如果几个事件中都要调用,就需要复制到外面,和事件平级,然后在前面定义一下这个函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windblast
2012-04-11 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13621
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
以bh字段进行排序 -> 获取最后一条记录的bh值 -> 下条bh := Inc(StrToInt(bh))
更多追问追答
追问
怎么获取最后一条记录的值,还有编号必须是4位数的
追答
以bh字段进行排序,db.last ,Format('%.4d', ibh)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式