Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по ХП [Firebird] [D6]


Koala ©   (2004-09-17 12:44:00) 

Что лучше, для каждой ХП в ДатаМодуль кидать отдельный StoredProcedure или кинуть парочку StoredProcedure и динамически вызывать каждую процедуру....
Может не сильно понятно выразился перефразирую...


vv_fran   (2004-09-19 19:20:00) [1]

А грамотнее всего - это положить в дм всего один TQuery и вызывать проседуры через SELECT. При этом во всех ХП должен быть suspend; Для выполняемых TFIBQuery, для возвращаемых - TFIBDataSet.


Petr V. Abramov   (2004-09-19 16:32:00) [2]

> Deniz ©   (18.09.04 11:22) [9]
 Если датамодулей 3 шт и точно известно, что искать нужно именно в датамодулях, тогда еще ничего. Если их много - тогда совсем плохо.


Deniz   (2004-09-19 08:38:00) [3]

> Sergey_Masloff   (18.09.04 20:34) [10]
> Deniz ©   (18.09.04 11:22) [9]
> А еще можно так:
procedure GetReults(SPName: string; Params: TParams);
Один раз и никаких оверлоад. Можно даже еще проще при желании.

Согласен, но тогда Params придется заполнять в том месте, где вызывается процедура, а тогда получается > Petr V. Abramov ©   (17.09.04 14:17) [8]но только с параметрами, и если, например, список параметров поменялся, то придется тупо просматривать код. А в моем примере компилятор сам обругает на несоответствие параметров, и скажет в каком месте, но это все на любителя, кто как привык, тот так и делает, а кто учится, тот наступит на свои грабли, а без этого никак.
ЗЫЖ Если в DataModule ~70 ХП и еще + DataSet'ы - это как-то утомляет.


Sergey_Masloff   (2004-09-18 20:34:00) [4]

Deniz ©   (18.09.04 11:22) [9]
А еще можно так:
procedure GetReults(SPName: string; Params: TParams);
Один раз и никаких оверлоад. Можно даже еще проще при желании.


Deniz   (2004-09-18 11:22:00) [5]

> Petr V. Abramov ©   (17.09.04 14:17) [8]
Ну почему же размазаны, если грамотно написать. Все обработки в DataModule например вот так:
procedure GetReults(SPName: string; Param: string); overload;
procedure GetReults(SPName: string; Param: integer); overload;
procedure GetReults(SPName: string; Param: TDate); overload;
procedure GetReults(SPName: string; Param1: String; Param2: Integer); overload;
...
Громоздко конечно, но если у многих ХП одинаковые типы параметров и они не возвращают набор данных, может помочь.


Petr V. Abramov   (2004-09-17 14:17:00) [6]

При втором варианте имена SP будут размазаны по коду, и отследить зависимости клиетской части от серверной будут практически невозмжно ( кроме тупого просмотра всего кода).


Роман Снегирев   (2004-09-17 13:29:00) [7]

короче делай как тебе удобнее, если ты точно знаешь что у тебя ХП 70 и никак больше то почему бы не навешать их и в дизайнтайме ИМХО


Sergey13   (2004-09-17 13:26:00) [8]

2[5] Роман Снегирев   (17.09.04 13:23)
>вообше ни на что не повлияет
Скорее всего повлияет на количество ошибок. 8-)


Роман Снегирев   (2004-09-17 13:23:00) [9]

на размер exe-шника это никак не повлиет да и вообше ни на что не повлияет. Это просто не есть хороший стиль программирования.


Koala   (2004-09-17 13:20:00) [10]


> [3] Роман Снегирев   (17.09.04 12:55)


> Кстати тебе не всегда подойдет StoredProcedure, для запросов,
> возвращающих наборы данных надо использовать FIBDataSet


Это да... я уже вычитал в книге... но хотелось бы узнать как лучше(у меня > 70 ХП используется), и если менять динамически размер exe-шника уменьшится, но насколько увеличится время выполнения процедур?
Что делать лучше, посрветуйте ЗНАТОКИ!!!


Роман Снегирев   (2004-09-17 12:55:00) [11]

ну вообщем по барабону, если их (ХП) немного и влом програмно менять их свойства то я бы повесил для каждой ХП одельный компонет. Кстати тебе не всегда подойдет StoredProcedure, для запросов, возвращающих наборы данных надо использовать FIBDataSet


Koala   (2004-09-17 12:50:00) [12]


> [1] Роман Снегирев   (17.09.04 12:47)
> смотря что за ХП, с параметрами или без, какие компоненты
> мспользуешь и пр.


ХП с параметрами и без, компоненты FIBPlus 5.3


Роман Снегирев   (2004-09-17 12:47:00) [13]

смотря что за ХП, с параметрами или без, какие компоненты мспользуешь и пр.


Наверх

Титульная страница Поиск, карта сайта Написать письмо