Subject | DML Caching Problem |
---|---|
Author | Thomas Steinmaurer |
Post date | 2012-01-17T07:33:45Z |
Hello Jason,
I encounter a problem (or possibly this is as designed) with the DML
Caching functionality.
I have one TIB_Transaction (tiCommitted, AutoCommit=True). Two TIB_Query
pointing to this transaction object, both using the same query and
RequestLive is set to True. Both query objects have all DMLCacheFlags
set to True so both will send and can receive notifications.
Steps to reproduce:
- Go into insert mode with query 1
- Go into insert mode with query 2
- Enter data for query 2 and post
- Enter data for query 1 and post. At this point, I get a "Dataset is
currently open" exception with the following stack trace:
---------------------------------------------------------------------------------------------------
|Address |Module |Unit |Class
|Procedure/Method |Line |
---------------------------------------------------------------------------------------------------
|*Exception Thread: ID=2816; Priority=0; Class=; [Main]
|
|-------------------------------------------------------------------------------------------------|
|005C1BC5|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysExecute |26720[2] |
|005C0F5D|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysOpen
|26445[34] |
|005C0DCC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysOpen
|26411[0] |
|005C1948|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysRefresh |26672[147]|
|005C0A0B|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26288[12] |
|005C09B4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26276[0] |
|005C09AC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |Refresh
|26272[1] |
|005C98E0|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30257[15] |
|005C9878|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30242[0] |
|005C9806|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30225[7] |
|005C97CC|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30218[0] |
|005C1AEA|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysRefresh |26703[178]|
|005C0A0B|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26288[12] |
|005C09B4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26276[0] |
|005C09AC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |Refresh
|26272[1] |
|005C98E0|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30257[15] |
|005C9878|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30242[0] |
|005C9806|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30225[7] |
|005C97CC|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30218[0] |
|005C82DE|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysPost
|29484[62] |
|005C8010|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysPost
|29422[0] |
|005CDB99|DML_Caching.exe|IB_Components.pas|TIB_BDataset |SysPost
|31988[4] |
|005BCF49|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|CheckBrowseMode |24804[9] |
|005BCEE4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|CheckBrowseMode |24795[0] |
|005C8FB3|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysBeforeScroll |29936[6] |
|005C8F78|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysBeforeScroll |29930[0] |
|005D0580|DML_Caching.exe|IB_Components.pas|TIB_BDataset
|SysBeforeScroll |33174[1] |
|005D3346|DML_Caching.exe|IB_Components.pas|TIB_BDataset
|SetRowNum |34440[10] |
|00629262|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid |Scroll
|4380[37] |
|0062C5B9|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid |KeyDown
|5760[286] |
|006257AB|DML_Caching.exe|IB_Grid.pas |TIB_GridInplaceEdit|KeyDown
|2467[38] |
|0062F66C|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid
|DefaultHandler |7367[1] |
|7707813E|ntdll.dll | |
|RtlUnlockHeap | |
|77062210|ntdll.dll | |
|RtlLeaveCriticalSection| |
|006253B6|DML_Caching.exe|IB_Grid.pas |TIB_GridInplaceEdit|WndProc
|2370[25] |
|75007DF5|USER32.dll | |
|DispatchMessageW | |
|75007DEB|USER32.dll | |
|DispatchMessageW | |
|0063D081|DML_Caching.exe|DML_Caching.dpr | |
|14[4] |
|74C23675|kernel32.dll | |
|BaseThreadInitThunk | |
---------------------------------------------------------------------------------------------------
Any ideas?
Thanks,
Thomas
I encounter a problem (or possibly this is as designed) with the DML
Caching functionality.
I have one TIB_Transaction (tiCommitted, AutoCommit=True). Two TIB_Query
pointing to this transaction object, both using the same query and
RequestLive is set to True. Both query objects have all DMLCacheFlags
set to True so both will send and can receive notifications.
Steps to reproduce:
- Go into insert mode with query 1
- Go into insert mode with query 2
- Enter data for query 2 and post
- Enter data for query 1 and post. At this point, I get a "Dataset is
currently open" exception with the following stack trace:
---------------------------------------------------------------------------------------------------
|Address |Module |Unit |Class
|Procedure/Method |Line |
---------------------------------------------------------------------------------------------------
|*Exception Thread: ID=2816; Priority=0; Class=; [Main]
|
|-------------------------------------------------------------------------------------------------|
|005C1BC5|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysExecute |26720[2] |
|005C0F5D|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysOpen
|26445[34] |
|005C0DCC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysOpen
|26411[0] |
|005C1948|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysRefresh |26672[147]|
|005C0A0B|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26288[12] |
|005C09B4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26276[0] |
|005C09AC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |Refresh
|26272[1] |
|005C98E0|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30257[15] |
|005C9878|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30242[0] |
|005C9806|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30225[7] |
|005C97CC|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30218[0] |
|005C1AEA|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysRefresh |26703[178]|
|005C0A0B|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26288[12] |
|005C09B4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|RefreshAll |26276[0] |
|005C09AC|DML_Caching.exe|IB_Components.pas|TIB_Dataset |Refresh
|26272[1] |
|005C98E0|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30257[15] |
|005C9878|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysStateChanged |30242[0] |
|005C9806|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30225[7] |
|005C97CC|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|EnableControls |30218[0] |
|005C82DE|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysPost
|29484[62] |
|005C8010|DML_Caching.exe|IB_Components.pas|TIB_Dataset |SysPost
|29422[0] |
|005CDB99|DML_Caching.exe|IB_Components.pas|TIB_BDataset |SysPost
|31988[4] |
|005BCF49|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|CheckBrowseMode |24804[9] |
|005BCEE4|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|CheckBrowseMode |24795[0] |
|005C8FB3|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysBeforeScroll |29936[6] |
|005C8F78|DML_Caching.exe|IB_Components.pas|TIB_Dataset
|SysBeforeScroll |29930[0] |
|005D0580|DML_Caching.exe|IB_Components.pas|TIB_BDataset
|SysBeforeScroll |33174[1] |
|005D3346|DML_Caching.exe|IB_Components.pas|TIB_BDataset
|SetRowNum |34440[10] |
|00629262|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid |Scroll
|4380[37] |
|0062C5B9|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid |KeyDown
|5760[286] |
|006257AB|DML_Caching.exe|IB_Grid.pas |TIB_GridInplaceEdit|KeyDown
|2467[38] |
|0062F66C|DML_Caching.exe|IB_Grid.pas |TIB_CustomGrid
|DefaultHandler |7367[1] |
|7707813E|ntdll.dll | |
|RtlUnlockHeap | |
|77062210|ntdll.dll | |
|RtlLeaveCriticalSection| |
|006253B6|DML_Caching.exe|IB_Grid.pas |TIB_GridInplaceEdit|WndProc
|2370[25] |
|75007DF5|USER32.dll | |
|DispatchMessageW | |
|75007DEB|USER32.dll | |
|DispatchMessageW | |
|0063D081|DML_Caching.exe|DML_Caching.dpr | |
|14[4] |
|74C23675|kernel32.dll | |
|BaseThreadInitThunk | |
---------------------------------------------------------------------------------------------------
Any ideas?
Thanks,
Thomas