标签:
最近有大量数据存入数据库时,因为主键为一个nvarchar类型,起初想着用int 类型,每次打开表的时候,获取最后一行的ID,然后让其++。 但发现由于字段是char类型,数据库对其进行了排序。再次插入数据时,末尾已经不再是最后一次插入的数据了。项目组其他人说,使用GUID,windows留有一个产生GUID的接口,可以产生GUID码,我们之后可以把得到的GUID转为我们使用的vchar。
typedef struct _GUID {unsigned long Data1;unsigned short Data2;unsigned short Data3;unsigned char Data4[ 8 ];} GUID;
::CoCreateGuid(&guid)
const char* newGUID(){static char buf[64] = {0};GUID guid;if (S_OK == ::CoCreateGuid(&guid)){_snprintf(buf, sizeof(buf), "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}", guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);}return (const char*)buf;}
GUID(Globally Unique Identifier)全局唯一标识符
标签:
原文地址:http://www.cnblogs.com/chengkeke/p/5417341.html