我在一段時間選擇查詢中將記錄插入到臨時表中。我需要控制,如果我之前添加了記錄,是否有可能?如何控制ax 2009中臨時表上的重複行?
2
A
回答
1
在相同類型的第二緩衝器使用setTmpData方法
實施例:
SomeTable someTable;
TmpTable tmpTable;
TmpTable tmpTableCheck;
// Use tmpTable as primary data set, and tmpTableCheck to check for duplicates
while select someTable
{
tmpTable.initFromSomeTable(someTable);
// Check if key is already used.
tmpTableCheck.setTmpData(tmpTable);
select firstOnly tmpTableCheck
where tmpTableCheck.Key == tmpTable.Key;
// Only insert record in tmpTable if the key has not been used before.
if (! tmpTableCheck)
{
tmpTable.insert();
}
}
1
只需在調用插入過程之前檢查記錄。
//Build query above
while (qr.next())
{
SourceTable = qr.get(tablenum(SourceTable));
select DestTable
where DestTable.Field1 == SourceTable.Field1; //Replace with criteria that determines if records are the same
if (!DestTable)
{
DestTable.Field1 = SourceTable.Field1;
DestTable.Field2 = SourceTable.Field2;
DestTable.Field3 = SourceTable.Field3;
DestTable.Insert();
}
}
//Once processing is finished
if (element.prompt())
{
while select DestTable
{
element.send(DestTable);
}
}
else
{
return false;
}
基本上,嘗試選擇將匹配將插入的記錄。如果沒有記錄被返回,則插入它。否則,它會轉到下一個記錄。
+0
的問題是;該查詢可以沒有記錄。選擇DestTable 其中DestTable.Field1 == SourceTable.Field1; //替換爲確定記錄是否相同的標準 } – Berkay
+0
對於使用臨時數據源的報表,我使用類似的方法,其中數據是從一個或多個源編譯的。就我而言,我將它用作開關來確定是否需要插入(新記錄)或更新(現有記錄)。在我的應用程序中,這確實起作用。你有循環的代碼片段,所以我們可以看看實際的應用程序? – kingofzeal
2
只要你具有唯一的索引,you can catch the problem:
SysInfoLogLevel prevLevel = infolog.infologLevel()
try
{
infolog.setInfoLogLevel(SysInfoLogLevel::None);
whatever.insert();
infolog.setInfoLogLevel(prevLevel);
}
catch (Exception::DuplicateKeyException)
{
infolog.setInfoLogLevel(prevLevel);
}
相關問題
- 1. Dynamics AX 2009的 - ID重複
- 2. 如何鏈接oracle表與ax 2009表?
- 3. Dynamics AX 2009的AIF表
- 4. 如何移動或複製Dynamics AX 2009 Enterprise Portal實例?
- 5. 如何在運行時更新臨時表數據AX 2012
- 6. AX 2009:找不到「SalesCreateReleaseOrderLineTmp」表
- 7. 如何在AX 2009中的SSRS報告中使用AX類?
- 8. Dynamics AX 2009:轉到主表格 - 如何選擇默認行?
- 9. 重複選擇臨時表
- 10. 重複臨時表MySQL
- 11. AxaptaContainerWrapper類.net AX 2009
- 12. SQL臨時表和複製
- 13. Postgres複製和臨時表
- 14. 如何解決此Dynamics AX 2009錯誤?
- 15. 如何在Dynamics AX 2009中選擇空日期時間
- 16. 從臨時表中插入重複的行
- 17. MS動態AX 2009時區問題
- 18. 從AX 2009批量導出表格
- 19. Dynamics AX 2009:如何在AOS上從批處理作業中進行FTP
- 20. Dynamics ax 2009:如何關閉不同用戶的表單?
- 21. 如何複製臨時表中列的默認約束?
- 22. Dynamics AX 2009中的工作流死鎖
- 23. AX 2009中的餅圖報告
- 24. AX 2009中的付款建議功能
- 25. dynamics ax 2009着陸頁
- 26. Microsoft Dynamics AX 2009開發
- 27. 查詢刪除臨時表中的重複行
- 28. 刪除臨時表中重複行的SQL
- 29. 重複日期由每一行NAV 2009
- 30. 在AX 2009中執行代碼對象時未執行初始化時出錯
//檢查密鑰是否已被使用。 tmpTableCheck.setTmpData(tmpTable);非常感謝我的幫助。 – Berkay