DataSet / Query vs SporedProc
Модератор: kdv
DataSet / Query vs SporedProc
Просто ради интереса, что лучше, по каким причинам,
и в каких случаях?
Надо сделать выборку данных на клиента запросом типа
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.
и в каких случаях?
Надо сделать выборку данных на клиента запросом типа
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.
Вопрос несколько общий и зависящий от конкретной задачи.
На сколько я понимаю решения 1, 2, при наличии простых запросов, предназначены для вынесения логики с клиента на сервер. Для этого не обязательно использовать ХП. Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия). Т.о. нет необходимости простые запросы представлять в виде ХП.
ИМХО: ХП удобно использовать в случае невозможности получения данных одним запросом (невозможно в принципе, невозможно по причинам быстродействия) или при необходимости динамического формирования запросов.
Лично я оформляю все запросы ч/з Dataset. StoredProc и query практически не использую.
На сколько я понимаю решения 1, 2, при наличии простых запросов, предназначены для вынесения логики с клиента на сервер. Для этого не обязательно использовать ХП. Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия). Т.о. нет необходимости простые запросы представлять в виде ХП.
ИМХО: ХП удобно использовать в случае невозможности получения данных одним запросом (невозможно в принципе, невозможно по причинам быстродействия) или при необходимости динамического формирования запросов.
Лично я оформляю все запросы ч/з Dataset. StoredProc и query практически не использую.
я недавно смотрел код IBX TIBStoredProc, и хоть он и унаследован от DataSet, в нем хранимые процедуры выполняются только по EXECUTE.
т.е. набор записей из него не получить. Кроме того, см. www.ibase.ru/devinfo/ibstp.htm
после чего я бы советовал выбросить StoredProc, и пользоваться IBDataSet, IBQuery, IBSQ.
т.е. набор записей из него не получить. Кроме того, см. www.ibase.ru/devinfo/ibstp.htm
после чего я бы советовал выбросить StoredProc, и пользоваться IBDataSet, IBQuery, IBSQ.
Вопрос действительно общий. Ради собственного интереса.Вопрос несколько общий и зависящий от конкретной задачи.
А можно об это немного поподробнее, а то может я нерационально пользую FIBPlus ?Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия).
Однажды, примерно в августе этого года, "танцевал.."...т.е. набор записей из него не получить. Кроме того, см. www.ibase.ru/devinfo/ibstp.htm
после чего я бы советовал выбросить StoredProc, и пользоваться IBDataSet, IBQuery, IBSQ.
получалось плохо.... стал искать "Самоучитель игры на бубне" и, спасибо ДК, наашёл.
Собственно после чего от всех ХП (было их около 150) осталась штук 8
УПС.
А вот по поводу репозитория: было-бы интересно... PLS.
[/url]
Кидаешь на форму DataSet, из контекстного меню выбираешь создать репозиторий... В итоге у тебя в базе будет табличка в которую будешь писать свои запросы, а в Dataset указывать их DataSet_ID.Klyk писал(а):А можно об это немного поподробнее, а то может я нерационально пользую FIBPlus ?Например в FibPlus есть возможность для DataSet создать репозиторий в котором будут храниться запросы (SIUD и доп.условия).