请教如何做一个自增长的函数?

qzg 2003-09-02 03:07:23
比如,
1日 有300笔数据
函数自动生成1--300的数字
2日 有500笔数据
那么自动生成 1--500的数字
也就是每天有多少笔数据,这个函数自动生成多少个函数。必须从1开始。
我使用的是ACCESS数据库,
这个函数想利用DELPHI代码实现。谢谢指教。
...全文
57 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzg 2003-09-03
  • 打赏
  • 举报
回复
谢谢大家的参与。我已经解决!散分。
lw549 2003-09-03
  • 打赏
  • 举报
回复
第二个是从我做的项目中copy过来的
lw549 2003-09-03
  • 打赏
  • 举报
回复
IF object_id('tempdb..#aa') IS not NULL begin drop table #aa end

SELECT IDENTITY (int, 1, 1) AS a, area, bmbm, kind, idno, cur_date, custom, goods,
amount, tax
INTO #aa
FROM wu_sa_oil_invoice
endif
select * from #aa
lw549 2003-09-03
  • 打赏
  • 举报
回复
IF object_id('tempdb..#aa') IS not NULL begin drop table #aa end

SELECT IDENTITY (int, 1, 1) AS a, field1,field2 INTO #aa
FROM table

endif

select * from #aa
Drate 2003-09-02
  • 打赏
  • 举报
回复
我的单据编号的形式如:2003090200001
下一个就是: 2003090200002
Drate 2003-09-02
  • 打赏
  • 举报
回复
(*******************************************************************************
* 函数名:GetAutoCode
*
* 函数说明: 根据数据库中的表内容,取得一个比原来记录最大的编号+1的值
*
* 参数说明:
* ADOConnection1 :对数据进行查询的数据库连接
* TableName :需要读取的表的名称
* Column :需要读取的字段的名称
* CurrDate :编号左边的固定值,取的是服务器的当前日期
* CodeLen :编号长度
*******************************************************************************)
function GetAutoCode(ADOConnection1 : TADOConnection; Table_str : string; Column_str : string ; CurrDate_str : String; CodeLen : integer) : string;
var
tmpNum : integer;
MaxBillNo, tmpMax : String;
tmp_format : array[0..20] of char;
ADOdatasettmp : TADODataSet;
begin
ADOdatasettmp := TADODataSet.Create(nil);
ADOdatasettmp.Connection := ADOConnection1;
FillChar(tmp_format, CodeLen, '0');
ADOdatasettmp.CommandText := 'select max(' + Column_str + ') as MaxBillNO from ' + Table_str + ' where ' + Column_str + ' like''' + CurrDate_str + '%''' ;
ADOdatasettmp.Open;
MaxBillNo := ADOdatasettmp.FieldByName('MaxBillNO').AsString;
if MaxBillNo<>'' then
begin
tmpMax := copy(MaxBillNo,9,length(MaxBillNo) - 8);
tmpNum := StrToInt(tmpMax) + 1;
tmpMax := InttoStr(tmpNum);
end
else
tmpMax := '1';
tmpMax := copy(tmp_format,1,CodeLen - 8 - length(tmpMax)) + tmpMax;
Result := CurrDate_str + tmpMax;
end;
kingofghost 2003-09-02
  • 打赏
  • 举报
回复
不是很明白你的问题
ssoj 2003-09-02
  • 打赏
  • 举报
回复
设置两个变量
A一个记录datetostr(日期)
B一个记录序号
再令字段等于=A+B
mrtxc 2003-09-02
  • 打赏
  • 举报
回复
直接在SQL语句中Select当天的记录,选择MAX的编号再+1不就是新编号了。
dickeybird888 2003-09-02
  • 打赏
  • 举报
回复
你可以通过数据库的日期进行判断,然后自动加一就可以了
hotdog911 2003-09-02
  • 打赏
  • 举报
回复
就不能再添加记录了
hotdog911 2003-09-02
  • 打赏
  • 举报
回复
但是Access自动编号的记录删除后就会报错
XXXXXXXX 2003-09-02
  • 打赏
  • 举报
回复
access数据库的字段不是有自动编号类型吗
myboor 2003-09-02
  • 打赏
  • 举报
回复
不明白你要干什么
lxpbuaa 2003-09-02
  • 打赏
  • 举报
回复
这个函数自动生成多少个函数?
还是:
这个函数自动生成多少个记录?

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
lxpbuaa 2003-09-02
  • 打赏
  • 举报
回复
这个函数自动生成多少个函数?
还是:
这个函数自动生成多少个记录?

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————

5,388

社区成员

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

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