Ваш код должен выглядеть примерно так: Обратите внимание, что предполагается, что коннектор подключен к соответствующему брокеру, соединение с базой данных активно, и что схема базы данных была создана (вы можете легко выполнить последний шаг из Model Explorer).
var
Band : TBand;
begin
// Query the database for all TCountry instances or descendants
CountrySelector.Close;
CountrySelector.Command.Text := 'SELECT * FROM ANY TCountry';
CountrySelector.Open;
if ContactSelector.ObjectCount > 0 then
begin
Band := TBand.Create(Connector);
try
// Take currently selected Country and assign to Band's Country property
// Reference counting is handled automatically
Band.Country := CountrySelector.CurrentObject as TCountry;
Band.Store;
finally
Band.Free; // Free reference to Band so we do not leak an object
end;
end;
end;
Я должен также упомянуть, что я не использую Selector очень часто, поскольку он не соответствует моим типичным требованиям приложения. Мои пользователи часто извлекают более 20 000 записей из Firebird, используя решетки DevExpress Quantum, и ожидают, что время отклика не превышает 2 секунд. Чтобы удовлетворить это требование, потребовалось очень тщательное проектирование и настройка с использованием IBExpert (причудливый, но в то же время отличный инструмент), поскольку мои запросы часто охватывают много таблиц и имеют сложные требования к фильтрации.
Что я могу сказать о IO, так это то, что он облегчает моделирование данных, поскольку дизайн сводится к точечному и щелчковому процессу с использованием Model Explorer. IO также является хорошей средой привязки данных, поскольку она позволяет «представлять» даже сложные графы объектов в виде наборов данных и привязывать свойства к визуальным элементам управления. Другая часть, которая мне нравится, заключается в том, что мне больше не нужно суетиться с созданием вручную запросов на вставку или обновление и настройкой значений столбцов для добавления или изменения постоянных объектов. IO делает это и многое другое для вас за кулисами с очень небольшим количеством кода.
David