S shubiao123 Unregistered / Unconfirmed GUEST, unregistred user! 2009-05-12 #1 我想做一个数据库的编码,就是有点类似身份证的编码,前边的位数由区划、生日组成,而顺序码是怎样生成的每次,比如有同年同月同日生的,怎样知道是第几个了,怎样自动生成下一个?
Z znxia Unregistered / Unconfirmed GUEST, unregistred user! 2009-05-12 #2 var Code,sql:String; C:String;begin Code:=区划+生日; sql:=format('Select Count(*) from 表1 where 编码 like ''%s%%'' ', 代码: ); query1.close; query1.sql.text:=sql; query1.open; C:=IntToStr(query1.Fields[0].AsInteger+1); while Length(C)<3 do C:='0'+C; Code:=Code+C; //你需要的号码end;
var Code,sql:String; C:String;begin Code:=区划+生日; sql:=format('Select Count(*) from 表1 where 编码 like ''%s%%'' ', 代码: ); query1.close; query1.sql.text:=sql; query1.open; C:=IntToStr(query1.Fields[0].AsInteger+1); while Length(C)<3 do C:='0'+C; Code:=Code+C; //你需要的号码end;
S shubiao123 Unregistered / Unconfirmed GUEST, unregistred user! 2009-05-12 #3 那如果首次生成怎么办?比如同一区划同一生日的第一个人,或者同一区划不同生日的第一个人?
草 草原骏马 Unregistered / Unconfirmed GUEST, unregistred user! 2009-05-12 #4 znxia 说的都对。都告诉你了。哎!如果是第一个人, Code:=Code+'001';