有一個服務正在運行,用於監視服務器上文件夾中的文件。無論何時將文件複製到此文件夾,都會移動這些文件,並通過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. FileMaker 10 Pro通過Asp.Net插入數據
- 6. 檢索插入的ID Codeigniter
- 7. 執行ExecuteSqlCommand後檢索插入的ID?
- 8. Filemaker:在表單中獲取文件輸入(filemaker pro 6)
- 9. 如何在使用Python在SQLite中插入行之後檢索插入的id?
- 10. Filemaker Pro 12 XSLT
- 11. FileMaker Pro vs CiviCRM
- 12. PHP/SQL檢索新插入的行
- 13. 在SQLite中檢索批插入行的ID
- 14. 將* .xml導入到FileMaker Pro中
- 15. 的FileMaker Pro 14 - 總結
- 16. 後插入MySQL的檢索ID
- 17. Java PreparedStatement檢索最後插入的ID
- 18. 用Mysql檢索上次插入的ID
- 19. 如何檢索ZF2中插入行的ID?
- 20. 從Filemaker Pro前端更新SQL Server
- 21. 無法將XML導入FileMaker Pro 11
- 22. Filemaker Pro在導入時不會運行腳本觸發器
- 23. 在groovy中檢索最後插入的對象的ID
- 24. 檢索最後插入的多個行的ID
- 25. FileMaker Pro彈出相關表中的值
- 26. FileMaker Pro 14中的條件求和
- 27. FileMaker Pro中的摘要報告13
- 28. 插入多行到MS SQL Server和檢索的所有新表的ID後面
- 29. Zend Framework:如何檢索最後插入的行的ID?
- 30. 檢索sql server中新插入的行的值
真的,沒人知道嗎? – stephenbayer 2009-02-11 16:12:56
nope。因爲FM文件和odbc功能真的很糟糕。 – zanlok 2011-06-24 17:33:24