Small addition to previous post concerning documentation.
The documentation state:
Note
If the dataset is connected with an ExternalCursor, it cannot implicitly be refreshed. Use the BeforeRefresh event handler of the dataset to reopen the cursor, or prevent refresh operations.
This is not true (at least,not completely true). In case of External query build around SQL (not arount the cursor, returned from procedure) implicit refresh works fine.