单击按钮时分配ID的代码

时间:2015-06-23 19:51:01

标签: forms foxpro visual-foxpro

我设计了一个简单的数据库来跟踪公司联系人。现在,我正在构建一个表单,允许员工将联系人添加到数据库。

在表单本身上,我将所有列除了主键(contactID)绑定到文本框。单击“添加”按钮时,我希望contactID值(输入的联系人总数+ 1)。基本上,输入的第一个联系人的联系人ID为1(0 + 1 = 1)。也许COUNT命令因素?

所以,我正在寻找有关我应该在.Click事件中放置什么代码的帮助。也许有助于了解FoxPro与SQL的相似之处。

由于

2 个答案:

答案 0 :(得分:1)

您建议分配ContactID的方法不是一个好主意。如果两个人同时使用该应用程序,他们每个人都可以创建一个具有相同ContactID的记录。

我的建议是使用VFP的AutoIncrementing Integer功能。也就是说,在表设计器中将相关列设置为Integer(AutoInc)。然后,每个新行都会获得下一个可用值,但您无需进行任何工作来实现它。

答案 1 :(得分:0)

有多种方法可以做到这一点。可能最简单的方法是在保存时尝试使用flock()锁定表,如果成功则执行:

calc max id_field to lnMax

然后在插入新记录时,使用lnMax + 1作为id_field值。别忘了

unlock all
保存后

...您需要确保'id_field'上有一个索引标记,并且您要处理其他人可能锁定表的情况。

您还可以使用存储过程“自动”执行此操作。