powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Дублирование датасетов
11 сообщений из 11, страница 1 из 1
Дублирование датасетов
    #32073458
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Кто как борется с тем, что один и тот же sql запрос приходится класть в несколько квери в датамодуль или даже в несколько датамодулей только из-за того, что когда мы натравливаем на один квери два грида, то положение курсора в них синхронизируется, а хотелось бы иметь один квери, но чтобы одновременно можно было иметь несколько текущих записей в разных гридах

D5,стандартный TADO*******,MSSQL

PS жаль .clone совсем не то, что нужно
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073497
Rousso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Целиком и полностью поддерживаю вопрос (хотя сам не знаю как это сделать). Будем ждать, мож кто поможет.
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073516
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, например, всегда копирую данные в строковый
Grid (написал свой компонент) и никогда не держу
query открытым ..
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073591
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Я, например, всегда копирую данные в строковый
Grid (написал свой компонент) и никогда не держу
query открытым ..

свой компонент занимает память, если писать все заведомо продуманно, когда датасеты оптимизированы -нормально, а для новой разработки сильно меняющейся и глючащей это не очень годится
а я именно такую пока пишу:-)

нужно что-то более универсальное и чтобы это было DB компонентом(лучше не компонентом, а идеей:-), чтобы все кеширование, хранение возложить на кого-то, а не на себя:-)

я что-то подобное написал, но оно меня не устраивает.
работает приблизительно так

1 все квери лежат в датамодулях по одному разу
2 при создании свежеокрытой формы в create создаются пустые квери
3 в них копируется структура старых через memorystream

это оверхед на копирование,т.к. оно обращается к базе за полями(не смог отвязать) и в close формы надо писать free, но до сих пор не могу ответить на вопрос о утечках памяти в этом процессе

но приходится это делать, чтобы не вспоминать в скольки кверях лежит один и тот же запрос
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073595
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 dkstranger
А зачем так извращаться?

2 All

А что, столько много записей в датасете, что тяжело работать?
У меня, и во всем проекте, на каждой форме все свое открывается и никаких проблем.

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

Не тем путем идете, товарищи... :))
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073740
Rousso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, что проблема достаточно актуальна. У меня, например есть форма, на которой штук 20 DBLookupComboBox'ов и столько же DBLabel'ов. Так вот, при изменении значения в ComboBox'е должно измениться значение и в соответствующем Label'е. А так как все Label'ы завязаны на одном DataSource, то соответственно и меняются значения у всех сразу Label'ов на одно и то же значение (в зависимости от того в каком ComboBox'е изменить значение). Хотелось бы, чтобы значения меток менялись только при изменении соответствующего ComboBox'а. Но как это сделать?..
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073757
MIKLUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Попробуйте так:

Один запрос (стандартный TADO*******), на него смотрит TDataSetProvider (свойство DataSet), а далее на этот провайдер уже может смотреть несколько TClientDataSet-ов, которые будут полностью независимы друг от друга.

Желаю успехов.
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073858
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TDataSetProvider

The client dataset receives the data packets and reconstructs the data to create a local, _in-memory_ copy for user access.

1) в память можно класть только то, чего мало, а чего много-уже нельзя
2) если это каким-то образом пишется на диск в локальную базку "in-memory", то где гарантия, что эти данные нельзя будет скопировать налево

интересует не отвязывание от базы, а удобство разработки и экономия ресурсов компьютера-клиента, чтобы один код(скрипт) не повторять каждый раз, когда он понадобиться
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32073907
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Rousso
Думаю, что проблема достаточно актуальна. У меня, например есть форма, на которой штук 20 DBLookupComboBox'ов и столько же DBLabel'ов. Так вот, при изменении значения в ComboBox'е должно измениться значение и в соответствующем Label'е. А так как все Label'ы завязаны на одном DataSource, то соответственно и меняются значения у всех сразу Label'ов на одно и то же значение (в зависимости от того в каком ComboBox'е изменить значение)

А зачем так? Может чего не так написано? Для чего одно и тоже показывать 20 раз на одной форме?

2 TUnknown

интересует не отвязывание от базы, а удобство разработки и экономия ресурсов компьютера-клиента, чтобы один код(скрипт) не повторять каждый раз, когда он понадобиться

Удобство разработки - это когда не надо огород городить и пытаться куче форм лазить в один датасет и чего-то у него требовать.

Где нужен датасет - там его и селектите с сервера. Памяти много не займет - раньше были такие проблемы, когда 286 у всех стояли и DOS.

А зачем огромный датасет использовать в куче мест, и почему его правите отовсюду - это уже проблемы проектирования приложения.
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32074207
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>А зачем огромный датасет использовать в куче мест, и почему его правите отовсюду - это уже проблемы проектирования приложения.

имеется в виду, не датасет, как данные, а как TADOQuery, которое болтается во множестве мест, и является копией
...
Рейтинг: 0 / 0
Дублирование датасетов
    #32074311
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и пусть болтается - мешает чтоли?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Дублирование датасетов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]