有一个服务正在运行,用于监视服务器上文件夹中的文件。无论何时将文件复制到此文件夹,都会移动这些文件,并通过ODBC连接将一条记录写入到filemaker pro数据库中。在同一个过程中,我需要新创建的行的ID在另一个表中创建相关记录(使用外键约束)。在Microsoft SQL Server中,我会使用@@身份来执行此操作,在Oracle中,我会使用sequence.CURRVAL。我如何获得Filemaker中新创建的行的标识字段?在Filemaker Pro中检索新插入的行的ID
回答
我不是ODBC界面的有经验的用户到FileMaker,但我可以建议一个可能的解决方案,可能工作。
我假设你正在使用INSERT语句将数据导入到FileMaker中,表中有一个“ID”编号字段在表中创建记录,并且ID字段被设置为auto输入一个序列号。如果是这种情况,根据FileMaker的ODBC文档支持MAX函数。
3210这可能在功能上起作用,但是在这种情况下存在竞争条件,如果在初始写入和ID检查之间插入另一行,则可能存在问题..但是如果它们是一个接一个,我不会看看这可能是一个问题,可能。 – stephenbayer 2009-02-12 21:29:14
我目前正在看到这是否适用于我的情况。 – stephenbayer 2009-02-12 21:31:25
您可以通过在插入新行之前生成一个唯一的ID,然后将此ID添加到每个记录中来解决这个问题吗?这将使您能够在创建这两个记录后识别这两个记录。
我也会问为什么你需要这个功能。将文件复制到文件夹时,您将记录添加到2个不同的表中。显然,我不知道解决方案是什么,所以我不能建议这样或那样的方式。
但是,我现在的建议是重新考虑将FileMaker数据组织到ODBC进程中的逻辑。这听起来像原始记录应该作为一个标记或触发器。是否可以将ODBC过程留作创建记录的机制,并将该记录的使用逻辑留给另一个过程,比如FM脚本?
不幸的是,FileMaker ODBC没有内置函数来执行此操作。它是一个真正的问题。
问题源于FileMaker没有内置对主键的支持。当然,几乎每个表都有一个唯一ID,但FileMaker没有任何内部方式来“知道”开发人员希望成为主键的字段。这使得ODBC引擎不可能知道给你什么值。
我认为大多数人最终在这种情况下做的是将某种类型的UUID作为CREATE的一部分插入到数据库中的新列中。然后立即使用where子句中的UUID使用另一个查询来选择ID。所以你必须做两个查询。第一个插入,第二个插入ID。
- 1. 如何通过Filemaker pro 11在表格中插入新行?
- 2. 获取新纪录的最后插入ID中的FileMaker Pro数据库
- 3. 的FileMaker Pro 12:插入新记录用的ExecuteSQL脚本
- 4. Filemaker Pro中的Python
- 5. 执行ExecuteSqlCommand后检索插入的ID?
- 6. Filemaker:在表单中获取文件输入(filemaker pro 6)
- 7. 如何在使用Python在SQLite中插入行之后检索插入的id?
- 8. FileMaker Pro vs CiviCRM
- 9. 在SQLite中检索批插入行的ID
- 10. 的FileMaker Pro 14 - 总结
- 11. 后插入MySQL的检索ID
- 12. Java PreparedStatement检索最后插入的ID
- 13. 用Mysql检索上次插入的ID
- 14. 如何检索ZF2中插入行的ID?
- 15. 从Filemaker Pro前端更新SQL Server
- 16. 无法将XML导入FileMaker Pro 11
- 17. 在groovy中检索最后插入的对象的ID
- 18. 检索最后插入的多个行的ID
- 19. 插入多行到MS SQL Server和检索的所有新表的ID后面
- 20. FileMaker Pro中的摘要报告13
- 21. FileMaker Pro弹出相关表中的值
- 22. Zend Framework:如何检索最后插入的行的ID?
- 23. 检索sql server中新插入的行的值
- 24. jQuery/AJAX检索新插入的记录的ID,并在页面刷新之前在HTML中使用这个ID
- 25. 插入包含行ID的新行
- 26. 如何在filemaker pro中创建日历
- 27. 如何检索在PHP中使用PDO时最后插入的行的ID?
- 28. SQL:检索插入的行ID阵列/表
- 29. Postgres/PHP - 什么是检索插入行ID的标准方法?
- 30. 用插入行ID的名称插入新行和MKDIR
真的,没人知道吗? – stephenbayer 2009-02-11 16:12:56
nope。因为FM文件和odbc功能真的很糟糕。 – zanlok 2011-06-24 17:33:24