比如,
1日 有300笔数据
函数自动生成1--300的数字
2日 有500笔数据
那么自动生成 1--500的数字
也就是每天有多少笔数据,这个函数自动生成多少个函数。必须从1开始。
我使用的是ACCESS数据库,
这个函数想利用DELPHI代码实现。谢谢指教。
1日 有300笔数据
函数自动生成1--300的数字
2日 有500笔数据
那么自动生成 1--500的数字
也就是每天有多少笔数据,这个函数自动生成多少个函数。必须从1开始。
我使用的是ACCESS数据库,
这个函数想利用DELPHI代码实现。谢谢指教。
A一个记录datetostr(日期)
B一个记录序号
再令字段等于=A+B
* 函数名: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;
FROM table endifselect * from #aa
amount, tax
INTO #aa
FROM wu_sa_oil_invoice
endif
select * from #aa