![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранимые процедуры [D6, Win95/98]
TATIANA © (2003-10-30 10:16:00)
Здравствуйте мастера ! Помогите начинающему .
Работаю с IBExpert . Создаю хранимые процедуры для работы с таблицами . У меня 5 справочников - форма имеет один вид , чтобы не создавать 5 форм , решила сделать одну , с динамичечким запросом нет проблем , а вот присвоить имя хранимой процедуре и объявить входные и выходные рараметры не получается .
PER = 1 - справочник 1;
PER = 2 - справочник 2;
PER = 3 - справочник 3; и т.д.
do case PER of
1: StoredProc1.StoredProcName:="proc1";
2: StoredProc1.StoredProcName:="proc2";
3: StoredProc1.StoredProcName:="proc3";
4:
5:
end;
дает ошибку или зависает , в зависимости куда помещаю .
Не знаю как присвоить правильно свойству Params - входные и выходные параметры : 0 - kod (OutPut)(Integer)
1 - naim (InPut) (String).
Cпасибо .
Zacho (2003-10-31 09:40:00) [1]
> TATIANA (31.10.03 09:28) [8]
Крайне рекомендую http://www.ibase.ru/develop.htmТам и "курс молодого бойца" есть :-)
TATIANA (2003-10-31 09:28:00) [2]
Господа мастера , спасибо за советы . Но я пробую и не знаю как лучше , как правильно , в книгах нет четкой информации , в каких случаях как и что применять . Было бы очень хорошо , если бы действительно был курс "молодого бойца" .
Всем спасибо .
MsGuns (2003-10-30 15:44:00) [3]
>Zacho © (30.10.03 14:18) [6]
Из приведенного фрагмента понятно, что никакой логики в запросе нет. Если, конечно, не считать логикой выборку списка полей из единственной таблы. Ну и where, конечно, если он есть - офигенно крутая логика ;)
Zacho (2003-10-30 14:18:00) [4]
> MsGuns © (30.10.03 14:14) [5]
Прав. Но из вопроса не понятно, присутствует ли какая-нибудь логика в ХП, или нет.
MsGuns (2003-10-30 14:14:00) [5]
>Zacho © (30.10.03 14:02) [4]
Да я так и понял. Я не понял другого. Зачем для выборки из однойтаблицы создавать ХП ? Почему нельзя просто запросом с клиента (TIBDataSet, TIBQuery etc) ?
ИМХО, ХП нужны для переноса на сервер какой-то логики (выборка из многих таблиц, цепочки обновлений, например)
Иля и я не прав ?
Zacho (2003-10-30 14:02:00) [6]
> MsGuns © (30.10.03 13:58) [3]
SELECT именно из ХП. Судя по описанию автора вопроса, ХП у нее именно селективные.
MsGuns (2003-10-30 13:58:00) [7]
Запросы типа Select * from .. ?
И для этого делать ХП ???????
Narayan (2003-10-30 13:39:00) [8]
...
IBSQL1.Close;
IBSQL1.SQL.Clear;
do case PER of
1: Begin
IBSQL1.SQL.Append("select * From proc1(:P0,:P1,:P2,...);
IBSQL1.Params[0].AsInteger:=...; // если он интеджер
IBSQL1.Params[1].AsString:=...;
.........
end;
2: ...
......
end;
ExecQuery;
IBSQL1.FieldByName("имя_выходного_параметра").AsInteger; // если он интеджер
...
Zacho (2003-10-30 10:29:00) [9]
Не используй TStoredProc, используй обычный TQuery (или TIBDataSet, или еще что-то, в зависимости от того, какую библиотеку компонентов для доступа к IB используешь) и запрос вида SELECT * FROM MY_STORED_PROC(:param_1,..,:param_n) и никаких проблем не будет.