|
|
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые гуру! Обращаюсь к вам и вашему опыту! Подскажите, пожалуйста, как в хранимой процедуре осуществить передачу имени таблицы, имя генератора, имя другой хранимой процедуры как параметра. Ниже привожу хранимую процедуру, в уоторой необходимо подставить имя генератора. У меня не проходит синтаксис :( CREATE PROCEDURE GET_NEW_CODID ( NAME_TABLE VARCHAR(20), NAME_FIELD VARCHAR(20), NAME_GEN VARCHAR(50)) RETURNS ( NEW_CODID SMALLINT) AS begin execute procedure get_free_id (:NAME_TABLE,:NAME_FIELD') returning_values :new_codid; if (new_codid is null) then new_codid=GEN_ID( :NAME_GEN , 1) ; suspend; end а вот еще не решенная мною ситуация ALTER PROCEDURE GET_FREE_ID ( PNAMETABLE VARCHAR(30), PNAMETABLEFREE VARCHAR(30), PNAMEFIELD VARCHAR(30)) RETURNS ( COD_ID SMALLINT) AS begin cod_id = null; for select CODID from :PNAMETABLEFREE where NAME_TABLE = :pNameTable and NAME_FIELD = :pNameField into : cod_id do begin delete from :PNAMETABLEFREE where CODID=:cod_id and NAME_TABLE=:pNameTable and NAME_FIELD=:pNameField; suspend; end end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 13:49:56 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
mv , я молчу. Хоть это и нелегко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 13:52:55 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
1. Нельзя. 2. Динамические запросы (только для FireBird) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 13:53:40 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Для SQL сервера такая возможность есть !! Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. а как реализовать это для FireBird !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 14:58:25 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Если у тебя FireBird 1.5, то скачай ReleaseNotes . Многие вопросы отпадут сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:03:19 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
у меня FireBird 1.0 ! Ок! Установлю 1.5 и попробую разобраться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:10:58 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
... а как решить эту проблему оптимально окольными путями, на FireBird 1.0 (не оптимальный я знаю, необходимо написать 40 процедур для каждой из таблиц ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:13:36 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Процедура в данном случае вообще нафиг не нужна. Твои траблы в том, что ты уже заранее загнал себя в рамки выбранного решения (неверно выбранного), а теперь мужественно воюешь сам с собой и сервером. С другой стороны подойти не пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:18:16 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Бэкап -> ( Firebird 1.0 -> FireBird 1.5) -> Restore -> Делаем, например, так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:18:49 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Процедура в данном случае вообще нафиг не нужна. Твои траблы в том, что ты уже заранее загнал себя в рамки выбранного решения (неверно выбранного), а теперь мужественно воюешь сам с собой и сервером. С другой стороны подойти не пробовал? Может и так, зациклился я на одном месте с этой проблемой. Стремился перенести максимально всю бизнес-логику на сервер... Последняя проблемка с которой я столкнулся, это при Inserte необходимо вернуть код записи, а код этот формируется автоматически, тригером. Вот я и пытаюсь написать хранимую процедуру, которая возвращала бы прогнозируемый код записи для указаной таблицы. Хотел это перенести на клиентскую часть, но не знаю, как управлять генератором. Может подсажете? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:47:28 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
2 IgorD а триггер как генератором управляет? так и в ХП им управлять... я так понял, что примерно так это будет выглядеть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:50:20 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:51:35 |
|
||
|
Передача имени таблицы как параметр
|
|||
|---|---|---|---|
|
#18+
Ух, на граблях уже мозоли, похоже. 1. Формируем Id записи ДО ее поста с пом. генераторов. 2. Юзаем для этого, например, IBX, или, личше FIBPlus. 3. Если BDE - то компонент Query, подсказка: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:53:46 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=471&tid=1578621]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 310ms |

| 0 / 0 |
