DataSet / Query vs SporedProc

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

DataSet / Query vs SporedProc

Сообщение Klyk » 27 дек 2004, 10:20

Просто ради интереса, что лучше, по каким причинам,
и в каких случаях?

Надо сделать выборку данных на клиента запросом типа
Select * from Table1

1. Создать ХП и вытягивать результат на клиента с помощью компоненты StoredProc (FIBPlus, IBX)
2. Создать ХП и вытягивать на клиента с помощю DataSet / Query (FIBPlus, IBX)
3. Не делать ХП, а просто использовать DataSet / Query (FIBPlus, IBX).
4. другие варианты

З.Ы. Про первый пункт более или менее понятно из http://www.ibase.ru/devinfo/ibstp.htm.

Лысый
Сообщения: 177
Зарегистрирован: 08 ноя 2004, 08:20

Сообщение Лысый » 27 дек 2004, 10:41

Вопрос несколько общий и зависящий от конкретной задачи.
На сколько я понимаю решения 1, 2, при наличии простых запросов, предназначены для вынесения логики с клиента на сервер. Для этого не обязательно использовать ХП. Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия). Т.о. нет необходимости простые запросы представлять в виде ХП.
ИМХО: ХП удобно использовать в случае невозможности получения данных одним запросом (невозможно в принципе, невозможно по причинам быстродействия) или при необходимости динамического формирования запросов.
Лично я оформляю все запросы ч/з Dataset. StoredProc и query практически не использую.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 27 дек 2004, 11:39

я недавно смотрел код IBX TIBStoredProc, и хоть он и унаследован от DataSet, в нем хранимые процедуры выполняются только по EXECUTE.

т.е. набор записей из него не получить. Кроме того, см. www.ibase.ru/devinfo/ibstp.htm

после чего я бы советовал выбросить StoredProc, и пользоваться IBDataSet, IBQuery, IBSQ.

Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

Сообщение Klyk » 27 дек 2004, 13:22

Вопрос несколько общий и зависящий от конкретной задачи.
Вопрос действительно общий. Ради собственного интереса.

Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия).
А можно об это немного поподробнее, а то может я нерационально пользую FIBPlus ?
т.е. набор записей из него не получить. Кроме того, см. www.ibase.ru/devinfo/ibstp.htm

после чего я бы советовал выбросить StoredProc, и пользоваться IBDataSet, IBQuery, IBSQ.
Однажды, примерно в августе этого года, "танцевал.."...
получалось плохо.... стал искать "Самоучитель игры на бубне" и, спасибо ДК, наашёл.
Собственно после чего от всех ХП (было их около 150) осталась штук 8
УПС.



А вот по поводу репозитория: было-бы интересно... PLS.
[/url]

Лысый
Сообщения: 177
Зарегистрирован: 08 ноя 2004, 08:20

Сообщение Лысый » 27 дек 2004, 13:28

Klyk писал(а):
Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия).
А можно об это немного поподробнее, а то может я нерационально пользую FIBPlus ?
Кидаешь на форму DataSet, из контекстного меню выбираешь создать репозиторий... В итоге у тебя в базе будет табличка в которую будешь писать свои запросы, а в Dataset указывать их DataSet_ID.

Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

Сообщение Klyk » 27 дек 2004, 13:48

Лысый писал(а): Кидаешь на форму DataSet, из контекстного меню выбираешь создать репозиторий... В итоге у тебя в базе будет табличка в которую будешь писать свои запросы, а в Dataset указывать их DataSet_ID.
сорри, тормозю...
тормозавр, однако :)

ПтыцЪ
Сообщения: 2
Зарегистрирован: 17 мар 2005, 15:12

Сообщение ПтыцЪ » 17 мар 2005, 15:57

Вопрос снят.
Последний раз редактировалось ПтыцЪ 28 мар 2005, 12:53, всего редактировалось 1 раз.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 мар 2005, 16:02

Итак, есть Builder 5 и Interbase 6.0.
На этом безобразии пишется АИС.
там же и ответили про это безобразие.
SET TERM!!
это тоже безобразие. возьми IBExpert, сотри IBConsole.

Ответить