[ gorancho @ 23.03.2014. 00:20 ] @
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `esPrimer0`(IN `Prebrojano` INT, IN `TabelaIme` VARCHAR(50), IN `PoljeIme` VARCHAR(50), IN `Vrednost` vARCHAR(50))
COMMENT 'Prebrojavanje broja pojavljivanja u proizvoljnoj tabeli proizvoljnog polja proizvoljne vrednosti'
BEGIN

SET @upit := CONCAT("SELECT COUNT(*) INTO '",Prebrojano,"' FROM '",TabelaIme,"' WHERE (`",PoljeIme,"' = '",Vrednost,"')");
PREPARE u FROM @upit;
EXECUTE u;

END$$
DELIMITER ;
[ bogdan.kecman @ 23.03.2014. 01:07 ] @
ovo INTO te zeza

SELECT COUNT(*) INTO '0' FROM ...

to nije validna sintaksa i za to posle INTO ti kaze da nije deklarisana varijabla

posebno kada si stavio da ti je prebrojano IN a onda ga stavljas u '' i to kao vrednost .. nece to tako da ide

[ gorancho @ 23.03.2014. 01:20 ] @
izbacih problematičan deo pa sada izgleda ovako :

DELIMITER $$
CREATE DEFINER=`Goran`@`%` PROCEDURE `esTest01`(IN `TabelaIme` VARCHAR(50), IN `PoljeIme` VARCHAR(50), IN `Vrednost` vARCHAR(50))
COMMENT 'Prebrojavanje broja pojavljivanja u proizvoljnoj tabeli proizvoljnog polja proizvoljne vrednosti'
BEGIN
SET @upit := CONCAT("SELECT COUNT(*) FROM '",TabelaIme,"' WHERE (`",PoljeIme,"' = '",Vrednost,"')");
PREPARE u FROM @upit;
EXECUTE u;

END$$
DELIMITER ;


Tek sada kaže da je problem sa SQL sintaksom,
GDE GREŠIM??? činimi se jednostavan zahtev
'Prebrojavanje broja pojavljivanja u proizvoljnoj tabeli proizvoljnog polja proizvoljne vrednosti'
[ bogdan.kecman @ 23.03.2014. 01:33 ] @
oko Poljeime (odma posle where) prvi apostrof ti je "BackTick" a drugi
apostrof ti je "single quote"
verovatno si hteo da oba budu backtick:

SET @upit := CONCAT("SELECT COUNT(*) FROM '",TabelaIme,"' WHERE
(`",PoljeIme,"` = '",Vrednost,"')");
[ bogdan.kecman @ 23.03.2014. 01:35 ] @
dalje takodje oko tabelaime su ti "single quotes" a trebalo bi da turis "backtick"


i, da, moram da napisem, nadam se da ti je ovo samo za vezbu posto pisanje ovakvih storage procedura nema mnogo smisla!
[ gorancho @ 23.03.2014. 01:50 ] @
e da ga j.

Za "tri" oka konj ćorav

Ovako tek radi
CONCAT("SELECT COUNT(*) FROM `",TabelaIme,"` WHERE (`",PoljeIme,"` = '",Vrednost,"')");
[ gorancho @ 23.03.2014. 02:17 ] @
Naravno da je ovo samo učenje jer računam da tek kad mogu da napravim ono šta hoću mogu da vidim ima li to smisla.
Molim Vas ako možete, prokomentarišite ".. posto pisanje ovakvih storage procedura nema mnogo smisla!"
[ bogdan.kecman @ 23.03.2014. 05:52 ] @
nema tu sta da se komentarise, pravljenje stored procedure koja ce da
pozove jednostavan sql je beskorisno iz prostog razloga, sta dobijas
time?! lakse ti je da pozoves count(*) nego da zoves proceduru koja radi
count