Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: CL | DM;

Вниз

Технология Клиент-Сервер   Найти похожие ветки 

 
alxx ©   (2003-08-21 17:11) [0]

Кто как предпочитает работать с базой при использовании этой технологии? Я, например, использую запросы Insert, Update, Select и компоненты типа TEdit для работы с отдельными записями (большая часть запросов генерится автоматически). Но один мой знакомый пытается использовать DBEdit на временной таблице с последующим обновлением реальной таблицы (мне кажется, это изврат).


 
Ru ©   (2003-08-21 17:19) [1]

>alxx © (21.08.03 17:11)

смотря какой движок базы данных. Например InterBase примерно так и работает. У него есть редактируемые представления (view) и копии реальной таблицы (в необходимом объеме не обязательно вся таблица).


 
alxx ©   (2003-08-21 17:24) [2]

MSSQLServer у нас обоих.


 
Romkin ©   (2003-08-21 17:26) [3]

Я всегда предпочитаю цеплять визуализацию (TDBEdit etc) к TClientDataset, которую уже через провайдера - к тому, что надо. Получается полная свобода, управляемость и однообразие :)


 
Nikolay M. ©   (2003-08-21 17:53) [4]


> один мой знакомый пытается использовать DBEdit на временной
> таблице с последующим обновлением реальной таблицы (мне
> кажется, это изврат).

Действительно, эти извращенцы в борланде придумали чушь какую-то: DBAware-компоненты какие-то... На фига они нужны, если для обновления какой-нибудь таблицы с десятком полей сформировать динамический UPDATE-запрос это как два пальца намочить :)

А Romkin дело говорит.


 
Ru ©   (2003-08-21 18:00) [5]

>Nikolay M. © (21.08.03 17:53) [4]

в некоторых проектах DBAware компоненты нужны также как рыбке зонтик


 
Nikolay M. ©   (2003-08-21 18:02) [6]


> Ru © (21.08.03 18:00) [5]

Кто-бы спорил. Просто порадовала фраза "с последующим обновлением реальной таблицы (мне кажется, это изврат)" :)


 
Ru ©   (2003-08-21 18:05) [7]

>Nikolay M. © (21.08.03 18:02) [6]

это уже другой вопрос


 
alxx ©   (2003-08-21 18:17) [8]

Вот елки-палки... Мне как-то кажется, что написать динамический запрос проще, чем следить за состоянием набора данных постоянно... :(


 
Romkin ©   (2003-08-21 18:42) [9]

А когда начинаешь задумываться над производительностью, постепенно само собой получается так, что стараешься давать как можно меньше запросов к базе, дулать как можно более короткие транзакции, передавать как можно меньше данных.
В результате при грамотном планировании реальный выигрыш по времени иногда десятикратным получается, как минимум :)
Приведу пример, из практики.
Имелась форма, сложная, для редактирования. На ней - 3 поля для клиентов (ФИО там или наименование). Что проще?
Все на TClientDataset, следовательно, открыл - и сиди спокойно, транзакция закрыта :)
Решение первое, естественное. При показе формы открыть справочник клиентов и на форме - TDBLookupComboBox. В справочнике - уже конкатенация ФИО или юр. наименования и др. в вычислимом поле, только показать. Удобно. Но справочник растет, и довольно быстро - задержки на открытие растут...
Решение второе. Хранимая процедура, выдающая по заданному ключу одну запись - только показать. На форме уже TDBEdit, присоединенный к calculated field, на событие калькуляции - обращение к процедуре. Рядом с полем - кнопка для вызова формы справочника клиентов. Но список растет :) Три поля - три запроса, дергающиеся на каждое шевеление полей в записи :)
Решение третье. Сделали InternalCalc fields - их можно как обычные использовать, и обращение только если пользователь сменил клиента, по изменению ссылочных полей :) Уже лучше, дергает только когда надо... Но все равно, на медленной машине (увы, пришлось), задержка заметна.
Решение четвертое. Сделали вспомогательную таблицу (warehouse), в которую триггерами пихается полное имя, а процедуру его выборки упростили максимально - взять строку из этой таблицы по первичному ключу :).

Вот так, постепенно и получилось так, что даже на P233 пользователь часиков вообще не видел :))) Ускорение даже считать не буду... Где-то на несколько порядков



Страницы: 1 вся ветка

Текущий архив: 2003.09.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
1-24548
Miralex
2003-08-26 12:50
2003.09.08
Вопрос про Word


8-24568
Stexen
2003-04-29 23:58
2003.09.08
Что-то вроде паинт!!


14-24643
RIMMER
2003-08-21 01:07
2003.09.08
ShlWAPI для Delphi


1-24536
rtooo
2003-08-26 17:42
2003.09.08
Поиск текста в файле ПОМОГИТЕ!!!


3-24351
Relaxxx
2003-08-14 14:09
2003.09.08
Как мне узнать номер попорядку записи в ДБГриде,на которой .....