dinamic store procedure on mysql
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



dinamic store procedure on mysql Expand / Collapse
Автор
Сообщение
22.08.2006 18:40
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.09.2008 12:13
Сообщ.: 98, Visits: 1 110
DELIMITER $$

DROP PROCEDURE IF EXISTS `financedb`.`select_count` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `select_count`(table_name varchar(255),str_fields varchar(255))
BEGIN

SELECT COUNT(*) FROM table_name where str_fields;

END $$

DELIMITER ;

ничего не получается. очень нужно создать динамическую процедуру.помогите пожалуиста.

Сообщ. #903130
23.08.2006 9:42
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Для таких целей существует конструкция PREPARE - MySQL 5.1 Reference Manual :: 13.7. SQL Syntax for Prepared Statements. Примеры там приведены. Можешь также прочитать заметку MySQL 5: Prepared statement syntax and Dynamic SQL.
Сообщ. #903156
23.08.2006 10:39
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.03.2007 15:48
Сообщ.: 113, Visits: 1 257
Вопрос: а что ты хотела сделать в этой проседуре?

Ты написала селект, но никуда результат не присвоила.
Я думаю ошибка возникает в этом месте.

Попробуй убрать эту строку.

DELIMITER $$

DROP PROCEDURE IF EXISTS `financedb`.`select_count` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `select_count`(table_name varchar(255),str_fields varchar(255))
BEGIN

END $$

DELIMITER ;

А вообще есть хороший форум http://www.sql.ru/forum/actualtopics.aspx?bid=6, там есть знающие люди по работе с базами.
Сообщ. #903165
27.08.2006 19:26
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.09.2008 12:13
Сообщ.: 98, Visits: 1 110
DELIMITER $$

DROP PROCEDURE IF EXISTS `financedb`.`SelectAllWhithLimit` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SelectAllWhithLimit`(table_name varchar(255),limit_var varchar(100))
BEGIN
DECLARE variableleSQL varCHAR(6000);
set @variableleSQL:=concat('select * from ',table_name,' limit ',limit_var);
PREPARE stmt1 FROM @variableleSQL;
EXECUTE stmt1;
deallocate prepare stmt1;
END $$

DELIMITER ;

tak zarabotala.

10x bazili. v kotoryi raz vy menja vyruchete.

Сообщ. #903413
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 8:16