标题:吹版,在VFP中怎么使用API函数UuidCreateSequential
只看楼主
easyppt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:119
专家分:169
注 册:2021-11-24
结帖率:100%
 问题点数:0 回复次数:25 
吹版,在VFP中怎么使用API函数UuidCreateSequential
UuidCreateSequential in rpcrt4.dll

如何在VFP中使用这个API
搜索更多相关主题的帖子: 函数 dll API VFP 
2023-04-12 13:34
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:0 
DECLARE long UuidCreateSequential in "rpcrt4.dll" string @
DECLARE long StringFromGUID2 in "ole32.dll" string,string @,long
STORE "" TO mGuid,cGuid
STORE 0 TO nRet
mGuid=REPLICATE(CHR(0),16)
cGuid=REPLICATE(CHR(0),100)
IF 0=UuidCreateSequential(@mGuid)
   nRet=StringFromGUID2(mGuid,@cGuid,LEN(cGuid)/2)
   ?STRCONV(LEFT(cGuid,nRet*2),6)
ENDIF
2023-04-12 15:56
easyppt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:119
专家分:169
注 册:2021-11-24
得分:0 
谢谢!

第一行 是 API函数生成的。
第二行 是 sqlserver 中 生成的,
对比了一下,API的结果中  前面 3段 内容反了:


[此贴子已经被作者于2023-4-12 16:50编辑过]

2023-04-12 16:22
easyppt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:119
专家分:169
注 册:2021-11-24
得分:0 
https://learn.
microsoft帮助中关于 UuidCreateSequential的说明文档里面 有个 参阅:UuidToString 这个 函数输出可以吗,结果会不会也会反的啊?
2023-04-12 16:48
foxfans
Rank: 4
等 级:贵宾
威 望:11
帖 子:90
专家分:278
注 册:2021-10-23
得分:0 
那就不是标准的guid,可以用下面试试
DECLARE long UuidCreateSequential in "rpcrt4.dll" string @ 
STORE "" TO mGuid  
mGuid=REPLICATE(CHR(0),16)
IF 0=UuidCreateSequential(@mGuid)
   ?STRCONV(mGuid,15)
ENDIF
2023-04-12 17:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 3楼 easyppt
大小端问题
数据结构:
typedef GUID UUID;

typedef struct _GUID {
  unsigned long  Data1;
  unsigned short Data2;
  unsigned short Data3;
  unsigned char  Data4[8];
} GUID;

2023-04-12 18:39
iswith
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:154
专家分:101
注 册:2013-5-14
得分:0 
UuidCreateSequential函数存在隐私的问题,不适合集群环境,并且需要重新排序后再提交到数据库,UuidCreateSequential函数生成的GUID规则与SQL Server中排序的规则存在不一致,这样仍然会导致严重的IO问题,所以需要将GUID重新排序,上面有大佬给的结构,在声明变量时它一个pstr*,不是一个单纯的string。
2023-04-12 18:52
easyppt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:119
专家分:169
注 册:2021-11-24
得分:0 
谢谢各位的回复!

关于隐私,源于 UUID 基于网卡MAC生成机制吗,不知道生成的UUID能不能还原出MAC ?

2023-04-13 08:23
iswith
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:154
专家分:101
注 册:2013-5-14
得分:0 
原理应该是可以还原,实际我没有这么无聊。。。好像是后8位还是在哪儿位置你百度了解一下。。。。
2023-04-13 08:27
easyppt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:119
专家分:169
注 册:2021-11-24
得分:0 
另外 发现一个问题:VFP 的order by  和 SQL SERVER 的 orde by  排序规则不一样

有办法让 VFP的 order by 和 SQL SERVER 一样吗 ?

Set Collate To 试了几个 好像都不行
2023-04-13 08:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511888-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.527136 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved