Как создать поле TDataSet Lookup Field во время выполнения?

Я использую TADODataSet (D7)
Я не создаю постоянные поля в режиме проектирования с моим DataSet.

dsItems.CommandText := 'select ID, ItemName, UserIDCreate from Items';
dsUsers.CommandText := 'select  ID, LoginName from Users'; // lookup dataset

Если я дважды щелкаю на dsItems и "Добавить все файлы", а затем нажимаю "Новый файл" и определяю свое поле поиска, все работает нормально. Полученный dsItems должен содержать: ID, ItemName, UserIDCreate, LoginName_Lookup

Как я могу избежать всего этого в design-time и добавить Lookup Field после/или до (? не уверен) открытия DataSet.

Другими словами: Как мне эмулировать "Add all fileds" и затем "New filed" для добавления lookup filed во время выполнения?


ПРИМЕЧАНИЕ: Я получаю исключение при запуске кода Джона из IDE. Исключение возникает при попытке открыть DataSet: EOleException с сообщением 'An unknown error has occured'.

function TCustomADODataSet.LocateRecord (ADODB.pas) в строке if FieldCount = 1 then FLookupCursor.Find...

Я принимаю ответ, потому что дополненная программа работает.
Было бы здорово, если бы кто-нибудь мог проверить получение (или не получение) исключения при запуске формы внутри IDE.

6
задан Vlad 30 January 2012 в 15:27
поделиться