我要在程序中生成一个GUID,或者类似的唯一标识

kvkv 2000-07-14 03:18:00
哪位大哥给我段代码吧,谢谢!
...全文
296 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JGTM2000 2000-07-15
  • 打赏
  • 举报
回复
哦对了,这位大哥是要代码,自己写个小函数吧:
function GetNewGUID: TGUID;
begin
CoCreateGUID(Result); // uses ActiveX
end;
试一下:
ShowMessage(GUIDToString(GetNewGUID)); // uses ComObj
JGTM2000 2000-07-15
  • 打赏
  • 举报
回复
再补充一句,Delphi为了更好的支持COM开发(事实上它已经太好了),提供了很多方便的功能。比如说,你可以在全局范围以字串的形式初始化GUID变量,如var guid: TGUID = '{27DF9E92-C17F-4D26-B051-F2852D20837E}'。当然,程序中就不能这样写了(也没有什么意义)。另外,接口类型的变量可以直接用在TGUID处直接代表它的GUID,很方便的。
JGTM2000 2000-07-15
  • 打赏
  • 举报
回复
TopHead: 说的对,SQLServer里面用newid()就可以生成GUID。
Wingsun: 高,实在是高。事实上,Shift+Ctrl+G也是用CoCreateGUID(标准COM API都在ActiveX单元中)来生成GUID的。
w102272: 有一个误会,Guid是全球范围唯一的标示,不是简单用时间就可以搞定的。这个128位的标示的所有可能性用来标示宇宙中所有的原子都绰绰有余。但是他的生成是有标准算法的,否则就不好保证其*universal*的唯一性了。
w102272 2000-07-14
  • 打赏
  • 举报
回复
你可以用时间来生成一个唯一标志,取年+月+日+时+分+秒+毫秒,在生成ID后延迟1毫秒,这样的标志唯一性很高。
Wingsun 2000-07-14
  • 打赏
  • 举报
回复
如果你只是在设计阶段生成的话可以这样做,在Delphi的编辑器中同时按下Shift+Ctrl+G键即可生成一个新的GUID.运行时就要使用COM的技术了。
华南虎哥 2000-07-14
  • 打赏
  • 举报
回复
也可以到网上找相应的GUID生成控件/软件
TopHead 2000-07-14
  • 打赏
  • 举报
回复
数据库可以生成:)

5,386

社区成员

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

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