Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.24;
Скачать: CL | DM;

Вниз

Передача в хранимую процедуру имени таблицы   Найти похожие ветки 

 
mefodiy   (2008-07-16 22:42) [0]

Создаю хранимую процедуру:

CREATE PROCEDURE DbName.MyProc
(IN f_table VARCHAR(20))
SELECT * FROM f_table;

Но когда вызываю ее:

CALL DbName.MyProc("Vendor");

то получаю ошибку
"Table DbName.f_table doesn"t exists".

Что, нельзя передавать в ХП имя таблицы как параметр, или я что-то не так делаю?
Спасибо.


 
mefodiy   (2008-07-16 22:43) [1]

Да, забыл сказать, что использую MySQL.


 
Правильный$Вася   (2008-07-16 23:01) [2]

не знаю, как в MySQL, но в нормальных серверах нельзя, т.к. сервер при компиляции ХП не может проверить корректность запроса
если MySQL Поддерживает динамический SQL внутри типа EXECUTE STATEMENT, то можно попробовать


 
turbouser ©   (2008-07-16 23:35) [3]


> mefodiy   (16.07.08 22:42)  

Стоит заметить, что такие вопросы возникают при неправильном проектировании.
Естественно, есть исключения, но врядли в этом случае.


 
Anatoly Podgoretsky ©   (2008-07-17 22:50) [4]

> turbouser  (16.07.2008 23:35:03)  [3]

> Стоит заметить, что такие вопросы возникают при неправильном проектировании.

такие вопросы возникают при неправильном выборе профессии.


 
stas ©   (2008-07-17 23:00) [5]

В Mssql это можно сделать, но не совсем так просто, в My - незнаю


 
mefodiy   (2008-07-19 12:25) [6]

Нашел в интернете следующее простое решение:

CREATE PROCEDURE DbName.MyProc
(IN f_table VARCHAR(20))
BEGIN
 SET @s=CONCAT("SELECT * FROM ",f_table);
 PREPARE stmt FROM @s;
 EXECUTE stmt;
END


 
turbouser ©   (2008-07-19 12:27) [7]


> mefodiy   (19.07.08 12:25) [6]

Всеравно в консерватории бардак.


 
Правильный$Вася   (2008-07-20 19:59) [8]


>  следующее простое решение:

в нормальных условиях такие танцы нужны только для черезчур вывихнутых ситуаций
а когда эта вывихнутость превращается в в обыденность, то [7]


 
ЮЮ ©   (2008-07-21 04:47) [9]

> Нашел в интернете следующее простое решение:


А дополнение к этому решению не предлагают, типа

CALL DbName.MyProc("Vendor DELETE FROM Vendor")


 
mefodiy   (2008-07-21 20:12) [10]

Оценил всеобщее остроумие!


 
ПРавильный$Вася   (2008-07-21 20:16) [11]


> Оценил всеобщее остроумие!

ты не на форму смотри, а на содержание
зри, как грится, в корень!



Страницы: 1 вся ветка

Текущий архив: 2008.08.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
3-1204262172
Kehnzo
2008-02-29 08:16
2008.08.24
Вопросы по DBGrid


15-1215103763
turbouser
2008-07-03 20:49
2008.08.24
Vista.


2-1216046956
Vikindos
2008-07-14 18:49
2008.08.24
Замена слов в массиве


2-1216209485
Newss
2008-07-16 15:58
2008.08.24
сохранение рисунков


2-1216559033
ДжоШуа
2008-07-20 17:03
2008.08.24
не понимаю