-
Порекомендуйте пожалуйста виртуальный DataSet для D6/D7 (если такие существуют).
Виртуальный DataSet не хранит данные, но предоставляет callback-и для получения данных извне (списка объектов или другой табличной структуры)
-
А запрос сделать - не судьба?
-
Отвечать вопросом на вопрос в стиле "ты что дебил?" невежливо.
Поиск по этому форуму ничего не дал, поиск по гуглу выдал кучу мусора по слову virtual т.к. это ключевое слово Pascal. Из этого мусора я вычленил пару приличных InMemory DataSets (например, от DevArt), но это немного не то, что мне нужно. Поэтому я и выступил с просьбой тому, кто понял, что мне нужно, порекомендовать знакомый и опробованный компонент.
-
TClientDataSet + TCustomProvider, не?
-
> Отвечать вопросом на вопрос в стиле "ты что дебил?" невежливо.
Невежливо задавать вопрос в стиле известной "саги об XYZ". http://www.gunsmoker.ru/2008/10/x-y-z.html > Поэтому я и выступил с просьбой тому, кто понял, что мне > нужно, порекомендовать знакомый и опробованный компонент.
Я как бы 8 лет только и делал, что связкой Delphi-БД занимался. Но я не понял, что тебе нужно. Опиши конкретную проблему.
-
RWolf © спасибо но тоже немного не то. В смысле - то, но свой провайдер писать я не в силах ) и DataSet тоже
-
Ega23 © (21.01.13 16:55) [4]
ОК. Существуют визуальные компоненты типа VirtualTreeView, VirtualListView и т.д. которые сами не содержат источник данных, а выставляют события типа "получить количество записей в списке", "получить значение поля элемента списка по индексу элемента и имени поля" и пр. Вот я хочу такой же DataSet, который сам внутри себя данные не содержит.
-
Уже более понятно. Почему именно TDataSet? Если ты используешь DBAware, то у них внутри уже есть TDataLink. Также можно завязаться на TDataSource.
-
> а выставляют события типа "получить количество записей в > списке", "получить значение поля элемента списка по индексу > элемента и имени поля" и пр
Это возможно только для snapshot-транзакции. Ну либо при монопольном доступе к хранилищу данных. Сейчас запись с таким-то id есть. Через 5 минут её другой клиент изменил. Ещё через 5 минут третий - удалил.
-
у меня нет хранилища данных ) У меня "оторванная модель" - коллекция объектов, которую я хочу вывести в список. Можно конечно взять StringGrid и заполнить руками, но это некрасиво. Кстати вроде бы нашёл то что надо - http://digilander.libero.it/snapobject/Потратил всего час и потрачу ещё полдня чтобы убедиться в том, что этот компонент можно использовать в продкашне )
-
> Кстати вроде бы нашёл то что надо это тоже самое, что - RWolf © (21.01.13 16:51) [3] TClientDataSet
+ TADODataSet TSimpleDataset TIBClientDataSet
все из поставки D7
-
> У меня "оторванная модель" - коллекция объектов, которую > я хочу вывести в список.
ну и держи свои объекты в виде TObjectList<T>. DataSet-то зачем? Он же медленный.
-
у меня д7, в ней нет дженериковых коллекций объектов и биндинга к ним.
-
> у меня д7, в ней нет дженериковых коллекций объектов и биндинга к ним.
TMyObject = class
end;
TMyObjectList = class (TObjectList)
private
function GetItem(Index: Integer): TMyObject;
public
property Items[Index: Integer]: TMyObject read GetItem; default;
end;
function TMyObjectList.GetItem(Index: Integer): TMyObject;
begin
Result := TMyObject(inherited Items[Index]);
end; Не понимаю, в чём проблема. Тебе быстро? Ну используй TClientDataSet, только midas.dll тащить с собой придётся. Я бы через ORM сделал, мне так проще.
-
да блин) у меня задача-всего лишь отобразить список объектов в гриде. как я этот tmyobjectlist гриду подсуну?
-
> да блин) у меня задача-всего лишь отобразить список объектов > в гриде. как я этот tmyobjectlist гриду подсуну?
Если именно в DBGrid-e - ну возьми обычный TQuery, добавь к нему поля в рантайме, наполни его данными и всё. Но я бы не стал TDBGrid брать, разонравился он мне.
-
> как я этот tmyobjectlist гриду подсуну? в D7 есть пример "как" типа simple дадасет реализован "оберткой" над текстом... если решил идти по этому пути. но не советую, есть куча готового.
-
MemTable из EhLib.. Или JEDI
-
ВиртуалСтрингТри в режиме грида. И грид и виртуальность и все что хочешь.
-
> ВиртуалСтрингТри в режиме грида. > И грид и виртуальность и все что хочешь.
+100500. уже ничего другого и не использую, настолько он кошерен.
-
В общем, кому интересно - http://www.torry.net/db/packs/db_packsother/EzSpecials.zipКомпонент работает, нареканий нет, все богатство возможностей работы с разнородными источниками данных сводится к четырём обработчикам событий. > Виталий Панасенко (22.01.13 17:05) [17]Я выше написал, что InMemory Tables мне не подходят > Медвежонок Пятачок © (22.01.13 17:26) [18]Я знаю этот контрол, но он делает то, чего визуальный контрол делать не должен - инкапсулирует в себе логику работы с источником данных.
-
-
это не мой класс) и сетап тоже
|