-rafael- 1 Denunciar post Postado Dezembro 1, 2010 ola a todos por que sera que essa procedure não funciona: CREATE DEFINER=`usuario`@`%` PROCEDURE `Proc1`() LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE done INT DEFAULT 0; DECLARE nome CHAR(145); DECLARE cur1 CURSOR FOR SELECT nomeuser FROM user; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO nome; UNTIL done END REPEAT; CLOSE cur1; END CALL `Proc1`(); -- que é a procedure acima /* 0 rows affected, 0 rows found. Duration for 1 query: 0,000 sec. */ porem se fizer o select sem a procedure SELECT nomeuser FROM user; /* 0 rows affected, [b]8 rows found[/b]. Duration for 1 query: 0,000 sec. */ nenhuma msg de erro é retornada pelo mysql. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Dezembro 2, 2010 tudo isso pra fazer um select ? expecifique o seu real motivo .... e que você pretende fazer exemplo de uma procedure que fiz... CREATE DEFINER=`root`@`localhost` PROCEDURE `Cad_Carro_Cliente`(Erro INT , v_id_cli INT,v_renavam INT, v_placa VARCHAR(8), v_data_cad VARCHAR(10) ) BEGIN if ((v_id_cli!='') and (v_renavam!='') and (v_placa!='') and (v_data_cad!='')) then if exists (SELECT id_cliente, renavam, placa FROM carro_cliente WHERE renavam=v_renavam or placa=v_placa) then select 'Ja existe um CARRO cadastrado com esses dados.....' as MSG; SET Erro=1; else insert into carro_cliente (id_cliente,renavam,placa,data_cad) values (v_id_cli,v_renavam,v_placa,v_data_cad); select 'Carro Cadastrado....' as MSG; SET Erro=0; end if; else select 'Existem dados em branco....' as MSG; SET Erro=2; end if; SELECT Erro; END Compartilhar este post Link para o post Compartilhar em outros sites
-rafael- 1 Denunciar post Postado Dezembro 2, 2010 ola, obrigado pela ajuda na verdade, o select da procedure acima é apenas um exemplo. o select que realmente vai ser executado é MUITO mais complexo, e deverá ser executado em diversas paginas do site. o problema real é que ao executar o procedure somente com o select, na pagina php ocorre o erro 2014 commands out of sync you can't run this command now depois de muita andança, descobri que TALVEZ a solução fosse usar CURSOR e FETCH na procedure. mas depois de feito isso o select para de funcionar, ou melhor, a procedure não executa nada. agora, por que isso? não ha mensagens de erro. obrigado Compartilhar este post Link para o post Compartilhar em outros sites