1. 使用GUID
GUID(Globally Unique Identifier)是生成唯一标识符的一个常用方法。在 Delphi 中,你可以使用 System.GUID
库来生成 GUID。
uses
SysUtils,
ActiveX;
function GenerateGUID: string;
var
GUID: TGUID;
begin
CoCreateGuid(GUID);
Result := GUIDToString(GUID);
end;
2. 使用随机数和当前时间
你可以结合当前时间戳和随机数来生成一个相对唯一的编号。这种方法生成的编号在短时间内可能不是全局唯一的,但在大多数实际应用场景中已经足够。
function GenerateUniqueNumber: string;
var
RandomGenerator: TBetterRandom;
begin
RandomGenerator := TBetterRandom.Create; // 使用 TBetterRandom 生成更好的随机数
try
Result := FormatDateTime('yyyyMMddHHnnss', Now) + IntToStr(RandomGenerator.Next);
finally
RandomGenerator.Free;
end;
end;
3. 使用数据库的自增字段
如果你使用的是数据库,可以利用数据库的自增字段来生成唯一号。例如,在插入新记录时,数据库会为该记录自动生成一个唯一的 ID。
INSERT INTO MyTable (ID, Name) VALUES (NULL, 'Example'); -- ID 将自动增加为唯一值
在 Delphi 中,你可以通过 SQL 查询获取这个自动生成的 ID。
4. 使用序列号(适用于数据库)
如果你的数据库支持序列(例如 PostgreSQL 的序列或 SQL Server 的序列),你可以从序列中获取一个唯一号。
-- PostgreSQL 示例
INSERT INTO MyTable (ID, Name) VALUES (nextval('my_sequence'), 'Example');
在 Delphi 中,你可以使用 ADO
或 ADO.NET
来执行这样的 SQL 语句并获取返回的唯一号。