Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Аналог DataSet-а из C#


Автор: Empire 29.1.2011, 19:14
По стечению обстоятельств получилось так, что зная C# приходится программировать на Delphi XE.

Так вот столкнулся с интересным недочётом, по моему мнению, реализацией DataSet-ов в Delphi по сравнению с C#, а именно с проблемой работы TClientDataSet-а в много поточном режиме, когда есть множество "читателей" и редкие "писатели".

Хотелось бы иметь возможность из функций передавать объект "строка", который содержит ссылки на конкретные значения объектов "столбцов" относящихся именно к этой строке. Или передавать объект "столбец" с ссылками на все значения объектов "строк", которые относятся к этому столбцу. Или вообще обладающей объектами типа "ячейка".
И ни каких курсоров, а только полностью инкапсулирование объекты, которые сами знают где они находятся и, если вызывающему коду нужно, он может извлечь все ссылки и ограничения из них.

P.S. Мне нужно знать кто такую реализацию уже делал (с ссылками) или кто делал подобное.

Автор: CROTishka 3.2.2011, 11:54
TDataSet это всего лишь оболочка над интерфейсом  http://msdn.microsoft.com/en-us/library/adodb._recordset(VS.90).aspx объекта классаhttp://msdn.microsoft.com/ru-ru/library/ms681510(en-us,VS.85).aspx передавать ссылки на строки вы можете передавая ссылки на TFields, или же непосредственно работая с http://msdn.microsoft.com/en-us/library/adodb._record(VS.90).aspx. 
для того, чтобы передавать столбцы, вам придется выгрузить все данные из ADO-объекта, в свой формат.

Автор: Empire 4.2.2011, 21:18
Вот что и плохо, для меня.
Я уже начал писать свою оболочку, но думал, что кто-то уже такое сделал.

TField не может получать значения из любой строки, а только при изменении курсора. А вот курсор - узкое место для много поточного приложения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)