Страница 1 из 1

DataSet / Query vs SporedProc

Добавлено: 27 дек 2004, 10:20
Klyk
Просто ради интереса, что лучше, по каким причинам,
и в каких случаях?

Надо сделать выборку данных на клиента запросом типа
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.

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

Добавлено: 27 дек 2004, 11:39
kdv
я недавно смотрел код IBX TIBStoredProc, и хоть он и унаследован от DataSet, в нем хранимые процедуры выполняются только по EXECUTE.

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

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

Добавлено: 27 дек 2004, 13:22
Klyk
Вопрос несколько общий и зависящий от конкретной задачи.
Вопрос действительно общий. Ради собственного интереса.

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

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



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

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

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

Добавлено: 17 мар 2005, 15:57
ПтыцЪ
Вопрос снят.

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