![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TpFIBStoredProc vs TpFIBDataSet [FB1.0.3]
starik30 © (2004-07-21 16:56:00)Добрый день ...
Не подскажите в чем преимущества и недостатки (включая накладные расходы для сервера) использования
TpFIBDataSet вместо TpFIBStoredProc при вызове хранимой процедуры, когда процедура возвращает результат ?.. когда не возвращает результат ?
Заранее благодарен за ответ
Юра
Курдль (2004-07-21 17:34:00) [1]
> Соловьев © (21.07.04 17:29) [17]
> не знаю где - возможно в MS SQL такое канает, а в ИБ нет.
А! Вот где собака порылась! :)
Я как раз и имел в виду параметры, объявленные в процедуре, как OUT или INOUT. Это для Sybase (а значит и для MS SQL) и Oracle.
Соловьев (2004-07-21 17:29:00) [2]
> DataSet.Sql.Text := 'begin TestProc(@PARAM1); end;';
> (За синтаксис вызова процедуры на ИБ не ручаюсь).
не знаю где - возможно в MS SQL такое канает, а в ИБ нет.
Там будет это выглядеть так
DataSet.Sql.Text := 'select param_out from TestProc(:PARAM_IN)';
Курдль (2004-07-21 17:26:00) [3]
> Соловьев © (21.07.04 17:23) [15]
DataSet.Sql.Text := 'begin TestProc(@PARAM1); end;';
DataSet.ExecSQL;
x := DataSet.FieldByName('PARAM1').Value;
Так оно и сработает???
(За синтаксис вызова процедуры на ИБ не ручаюсь).
Соловьев (2004-07-21 17:23:00) [4]
> x := DataSet.ParamByName('PARAM1').Value;
x := DataSet.FieldByName('PARAM1').Value;
Курдль (2004-07-21 17:20:00) [5]
> Соловьев © (21.07.04 17:13) [12]
> а как ты думаешь там работает insert, update, delete, refresh?
Т.е. если если в датасэте прописать вызов процедуры, меняющей параметр PARAM1, то можно будет получить значение этого параметра в переменнуюхпосле выполнения таким образом:
DataSet.ExecSQL;
x := DataSet.ParamByName('PARAM1').Value;
Johnmen (2004-07-21 17:15:00) [6]>Не подскажите : какой максимальный размер базы данных для FB1.5 (win32) ?
http://www.ibase.ru/v6/ib6faq.htm
Соловьев (2004-07-21 17:13:00) [7]
> Как? Разве он обучен принимать параметры?
а как ты думаешь там работает insert, update, delete, refresh?
Курдль (2004-07-21 17:11:00) [8]
> Соловьев © (21.07.04 17:10) [10]
> это все реализуется нормально и в датасете.
Как? Разве он обучен принимать параметры?
Соловьев (2004-07-21 17:10:00) [9]
> удобен при нескольких исходящих или двунаправленных параметрах
> SP.
это все реализуется нормально и в датасете.
Курдль (2004-07-21 17:07:00) [10]
> Соловьев © (21.07.04 17:01) [4]
> Шоб було:)
> И пора перейти уже на FireBird 1.5
Я не пользовал IB (в таких количествах) но думаю, что T...StoredProc может быть удобен при нескольких исходящих или двунаправленных параметрах SP.
starik30 (2004-07-21 17:05:00) [11]Не подскажите : какой максимальный размер базы данных для FB1.5 (win32) ?
Соловьев (2004-07-21 17:05:00) [12]
> Извините а зачем тогда TpFIBStoredProc ?
есть небольшая фича - читает из системной таблицы параметры.
Johnmen (2004-07-21 17:04:00) [13]>Извините а зачем тогда TpFIBStoredProc ?
Шоб выполнять безответные ХП или немногословные ХП, т.е. "однословные"...:)
Соловьев (2004-07-21 17:02:00) [14]
> когда не возвращает результат ?
кстати, результат не всегда запись:) это надо учесть читая [1]
Соловьев (2004-07-21 17:01:00) [15]Шоб було:)
И пора перейти уже на FireBird 1.5
starik30 (2004-07-21 17:01:00) [16]Извините а зачем тогда TpFIBStoredProc ?
starik30 (2004-07-21 17:00:00) [17]Извините а зачем тогда TpFIBStoredProc ?
Соловьев (2004-07-21 16:58:00) [18]все что возращает записи - TpFIBDataSet
все что не возвращает - TpFIBQuery, TpFIBDatabase