创建唯一的ID,我需要创造出独特的记录ID在VFP基础上邮寄资料:zip5,地址,姓氏,名字。一旦创建,关系表将被加载到具有唯一ID的SQL服务器7中。任何提示?在VFP
Q
在VFP
4
A
回答
4
您可以使用GUID:GUID entry at FoxPro Wiki。
这里有一些examples。
一个最简单的使用WSH ...
* VFP 7+
oGUID = CreateObject("scriptlet.typelib")
cGUID = Strextract(oGUID.GUID, "{", "}")
* Other VFP
oGUID = CreateObject("scriptlet.typelib")
cGUID = substr(oGUID.GUID, 2, 36)
2
VFP确实有唯一ID的支持 - 因为它具有Primary Indexes(可根据多个字段 - 但要确保密钥的长度是固定的,所以如果你的VFP表使用VARCHAR处理则需要填充字段)和表也可以有Candidate Indexes(其中索引字段(S)必须是唯一的,就像一个主键,但你可以为每个表的多个候选索引)。
这些要么就会增强对自己领域的独特性,但基于zip5,地址生成主键,姓氏和名字将是低效的。 GUID的建议可以很好地工作,或者如果您有VFP8或更高版本,则可以使用Autoinc column,这与SQL Server中的Identity列类似。
顺便说一句,唯一索引only used for backward compatibility ..
-1
我创建了自己的功能,为此目的返回一个唯一的标识符。当我有新的记录时,我只是扫描数据库,并使用新的uid替换数据库中的唯一标识符字段(我称为我的UID),如果该记录没有。
FUNCTION UIDgenerator()
LOCAL c_UID
LOCAL c_dump
c_UID = STRTRAN(SYS(2015),"_","") + [-]
c_dump = STRTRAN(SYS(2015),"_","")
c_dump = STRTRAN(SYS(2015),"_","")
c_dump = STRTRAN(SYS(2015),"_","")
c_UID = c_UID + STRTRAN(SYS(2015),"_","")
RETURN c_UID
endfunction() &&UIDGenerator
您不必做c_dump 3次,但我希望标识符分得更远一些。
相关问题
- 1. VFP SQL预测
- 2. Php,odbc&vfp
- 3. 查看VFP 8的VFP 9中的对象_base.vcx
- 4. 错误追加从VFP OLEDB在C#
- 5. VFP /禁用消息“文件不存在”
- 6. 在VFP中显示备忘录字段
- 7. vfp query like command not working
- 8. Android的ARMv6/v7和VFP/NEON
- 9. 分发VFP应用程序
- 10. VFP六角函数C#
- 11. VFP中的XMLTOCURSOR错误
- 12. 班级未注册vfp网络服务
- 13. USE语句中的VFP宏扩展
- 14. STR()函数VFP C#相当于
- 15. 复制到xxxx.xls类型XLS(VFP 8.0 SP1)
- 16. VFP uniqueidentifier是否与Guid相同?
- 17. 将参数传递给VFP 9表格
- 18. VFP擦除命令抛出错误1105
- 19. 在C#代码创建.DBF是从Excel(VFP与否)
- 20. 通过HTTPS获取在VFP中调用Web服务的错误
- 21. 无法保存数据在vfp dbf thourgh php
- 22. 使用点阵打印机(LQ-1170)在vfp中缓慢打印
- 23. 在vfp报告中更改页面之前的打印行
- 24. 如何在我的C++ Android appolication中启用VFP或NEON支持?
- 25. 如何在VFP中创建滚动窗口9
- 26. 在SQL Server上对VFP DBF文件运行UPDATE和DELETE语句
- 27. 如何应对VFP双指针调用C基于DLL
- 28. iPhone的ARMv6 VFP ASM延迟,吞吐量和危害
- 29. PHP到VFP。错误:无法将字符串转换为Unicode
- 30. 要求更快,更安全的web服务使用PHP和vfp