在delphi中生成GUID

2021-05-28 06:27:21 字數 1104 閱讀 2566

什麼是 guid ?

guid 的格式為8-4-4-4-12 :「******xx-***x-***x-***x-************」其中每個 x 是 0-9 或 a-f 範圍內的乙個十六進製制的數字。例如:6f9619ff-8b86-d011-b42d-00c04fc964ff 即為有效的 guid 值。

為什麼要使用 guid ?

世界上的任何兩台計算機都不會生成重複的 guid 值。guid 主要用於在擁有多個節點、多台計算機的網路或系統中,分配必須具有唯一性的識別符號。資料庫中用作主鍵,標識唯一且在不同的資料庫之間轉換資料不會出錯,而用自增字段就會有很多麻煩。在 windows 平台上,guid 應用非常廣泛:登錄檔、類及介面標識、資料庫、甚至自動生成的機器名、目錄名等。

delphi中如何生成guid:

// uses comobj

varaguid: tguid;

sguid: string;

begin

sguid := createclassid;

showmessage(sguid); // 兩邊帶大括號的guid

delete(sguid, 1, 1);

delete(sguid, length(sguid), 1);

showmessage(sguid); // 去掉大括號的guid,佔36位中間有減號

sguid:= stringreplace(sguid, '-', '', [rfreplaceall]);

showmessage(sguid); // 去掉減號的guid,佔32位

end;

生成guid的演算法根據以下幾個方面:1.當前日期與時間。2.網絡卡位址。3.時針序。4.自動遞增計數器。其中,網絡卡位址是相互不同的,對沒有網絡卡的機器,自動遞增計數器對使用中的機器保持唯一性,ms保證同一臺電腦中每秒生成100個guid在3000多年內乙個guid是絕對唯一的.

所以guid碼可以認為是不會重複的。不同環境是不可能生成重複的guid碼,就算相同環境(以上四個都相同)重複概率也是非常非常低,就像你在中國買福彩中頭獎一樣幾乎不可能,要想guid相同,就人工修改它,也像中國福彩一樣,所以經常有人中上億,當然不會是你啦,人家是administrator有這個許可權,呵呵~~說笑話啦。。。。

在matlab中生成m序列

實驗環境為matlab2013b 1 首先編寫乙個mseq.m檔案,內容為 function mseq m sequence fbconnection n length fbconnection n 2 n 1 register zeros 1,n 1 1 移位暫存器的初始狀態 mseq 1 reg...

在matlab中生成m序列

實驗環境為matlab2013b 1 首先編寫乙個mseq.m檔案,內容為 function mseq m sequence fbconnection n length fbconnection n 2 n 1 register zeros 1,n 1 1 移位暫存器的初始狀態 mseq 1 reg...

在 ideat中生成Hibernate反向生成工具

工具 ideat 2016 1.開啟我們的ideat 啟動介面 假如我們已經建立了乙個專案在我們建立的專案上點右鍵建立乙個model 基本的建立過程省略 2.對我們剛剛建立的專案點右鍵 確認就好 3.我們先建立乙個資料來源 找到idea的database檢視 點選加號新建資料來源 data sour...