Динамический запрос

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
infopol
Сообщения: 4
Зарегистрирован: 07 ноя 2006, 17:56

Динамический запрос

Сообщение infopol » 07 ноя 2006, 18:17

Привет!Такая проблема..в моей базе...есть основные журналы например :Журнал движения ТМЦ (тут все операции по движению ТМЦ (приход от поставщиков,вн.перемещения,списания,реализация и т.п.)..Но есть и вспомогательные которые используются для отдельных операций (ЖУР инвентаризации,реализации ) но переносящие свои данные в журнал ТМЦ..Но вся хитрость в том что связи между журналами описаны в спец.таблице СВЯЗЕЙ в которой есть поля ИСТОЧНИК(имя таблицы источника),ИСТОЧНИК_ИД - ИД источника ,ПРИЕМНИК (имя таблицы приемника) ,ПРИЕМНИК_ИД
B_KNINV,23,B_KNDVTMZ,1120 ///в клиенте я сделал процедуру которая при удалении записи в источнике удаляет запись в журнале СВЯЗЕЙ,именно тут и определяется какие записи в ПРИЕМНИКах нужно удалить но через ЕСЛИ... можно ли создать на сервере процедуру типа DELETE FROM <переменная_параметр_имени_табл_приемника>(ПРИЕМНИК)
WHERE <ID_приемник >= ПРИЕМНИК_ИД?
Может можно придумать что либо?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 07 ноя 2006, 19:34

Версия сервера?

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 08 ноя 2006, 10:13

Нельзя. Только динамически создавать SQL-запрос.

mdfv
Сообщения: 119
Зарегистрирован: 23 май 2006, 15:53

Сообщение mdfv » 08 ноя 2006, 10:31

я делаю такие извраты в процедуре ч-з EXECUTE STATEMENT,
это если ФБ >=1.5

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 08 ноя 2006, 10:47

CyberMax писал(а):Нельзя. Только динамически создавать SQL-запрос.
Можно. Но после сдачи экзамена у KDV.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 08 ноя 2006, 12:08

2 WildSery. Уточняю. Нельзя - это про:
Можно ли создать на сервере процедуру типа DELETE FROM <переменная_параметр_имени_табл_приемника>(ПРИЕМНИК)
WHERE <ID_приемник >= ПРИЕМНИК_ИД?
Но в любом случае (даже при Execute Statement), запрос должен формироваться динамически.

И поподробней про экзамен :).

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 08 ноя 2006, 13:25

Вопрос спорный. Это строка для execute statement формируется динамически. А процедура будет статической. На входе - нужные названия таблиц и id, на выходе - результат.

Экзамен - это про уже пару раз разгоравшиеся споры о том, а не запретить ли вообще ES до успешного прохождения тестов на знание FB, потому как каждый новичек пытается неправильно приспособить его для "шоб було" или ещё как не по назначению. И как следствие, начинающего возмущаться, какого ... это всё неправильно (не как ему показалось должно быть) работает.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Re: Динамический запрос

Сообщение Ivan_Pisarevsky » 08 ноя 2006, 16:36

infopol писал(а):<переменная_параметр_имени_табл_приемника>
их вполне обозримый десяток-другой или неизвестное заранее кол-во?

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

Сообщение kdv » 08 ноя 2006, 20:09

И поподробней про экзамен
http://course.ibase.ru , тест.

infopol
Сообщения: 4
Зарегистрирован: 07 ноя 2006, 17:56

Re: Динамический запрос

Сообщение infopol » 08 ноя 2006, 22:25

Ivan_Pisarevsky писал(а):
infopol писал(а):<переменная_параметр_имени_табл_приемника>
их вполне обозримый десяток-другой или неизвестное заранее кол-во?
Версия FB 1.5.3//
ЗАПРОС таков что имеет 2 параметра ИМЯ_ТАБЛИЦЫ и ИД таблицы ...
И все!!!!По поводу высказывания для "чого було".. "за нещо"...
"ако си пърчеве то и говорям съм със теб не трябва.."
Вопрос задан корректно ..используя какие операторы SQL на FB можно создать динамический запрос или нечто подобное
.

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

Сообщение kdv » 09 ноя 2006, 09:19

Вопрос задан корректно ..используя какие операторы SQL на FB можно создать динамический запрос или нечто подобное
тебе уже ответили, как.

infopol
Сообщения: 4
Зарегистрирован: 07 ноя 2006, 17:56

Сообщение infopol » 09 ноя 2006, 17:57

Сделал..все работает..Няма проблеми

Ответить