Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com execução de um Stored Procedure


Paulo Reis

Pergunta

Olá pessoal. Estou implementando um sistema de cadastro de clientes, e criei a seguinte SP pra inserir os dados do cliente:

DROP PROCEDURE IF EXISTS CadastraClientePessoaFisica $
CREATE PROCEDURE CadastraClientePessoaFisica(
 IN cpfP CHAR(14),
 IN nomeP VARCHAR(50),
 IN paiP VARCHAR(50),
 IN maeP VARCHAR(50),
 IN enderecoP VARCHAR(80),
 IN complementoP VARCHAR(40),
 IN bairroP VARCHAR(30),
 IN telefoneP VARCHAR(13),
 IN celularP VARCHAR(13),
 IN cidadeP VARCHAR(30),
 IN estadoP CHAR(2),
 IN cepP CHAR(9),
 IN data_nascimentoP DATE,
 IN estado_civilP VARCHAR(10),
 IN empresaP VARCHAR(30),
 IN emp_enderecoP VARCHAR(80),
 IN emp_bairroP VARCHAR(30),
 IN emp_compP VARCHAR(30),
 IN emp_foneP VARCHAR(13),
 IN emp_cidadeP VARCHAR(30),
 IN emp_estadoP CHAR(2),
 IN emp_cepP CHAR(9),
 IN cargoP VARCHAR(20),
 IN salarioP double,
 IN data_admissaoP DATE,
 IN ref_pessoalP VARCHAR(50),
 IN ref_pessoal_foneP VARCHAR(13),
 IN ref_comercialP VARCHAR(50),
 IN ref_comercial_foneP VARCHAR(13),
 IN cartaoP CHAR(3),
 IN cartao_nomeP VARCHAR(15),
 IN cartao_numeroP VARCHAR(16),
 IN cartao_validadeP DATE,
 IN cheque_espP CHAR(3),
 IN bancoP VARCHAR(15),
 IN agenciaP VARCHAR(6),
 IN conta_correnteP VARCHAR(10),
 IN conta_corrente_desdeP DATE,
 IN c_rgP VARCHAR(10),
 IN c_rg_emitido_porP VARCHAR(10),
 IN c_rg_dataP DATE,
 IN c_cnh_nP VARCHAR(15),
 IN c_cnh_emitido_porP VARCHAR(10),
 IN c_1_habP DATE,
 IN c_cnh_validadeP DATE,
 IN c_cartao_nomeP VARCHAR(15),
 IN c_cartao_numeroP VARCHAR(16),
 IN c_cartao_cod_segP VARCHAR(5),
 IN c_cheque_espP CHAR(3),
 IN c_conta_correnteP VARCHAR(10),
 IN c_cartao_validadeP DATE,
 IN c_tel_resP VARCHAR(13),
 IN c_res_falado_comP VARCHAR(30),
 IN c_grauP VARCHAR(15),
 IN c_res_informou_queP VARCHAR(100),
 IN c_tel_comP VARCHAR(13), 
 IN c_com_falado_comP VARCHAR(30),
 IN c_cargoP VARCHAR(30),
 IN c_com_informou_queP VARCHAR(100),
 IN c_ref_pessoal_telP VARCHAR(13),
 IN c_ref_pessoal_falado_comP VARCHAR(30),
 IN c_ref_pessoal_informou_queP VARCHAR(100),
 IN c_ref_com_telP VARCHAR(13),
 IN c_ref_com_falado_comP VARCHAR(30),
 IN c_ref_com_informou_queP VARCHAR(100),
 IN observacoesP text
)
COMMENT 'rotina para inserção de cliente pessoa física.'
BEGIN
   DECLARE EXIT HANDLER FOR SQLEXCEPTION
   BEGIN
      SELECT 'A operação não foi realizada com sucesso' AS MSGERRO;
      ROLLBACK; -- a transação sofre um ROLLBACK
   END;


   START TRANSACTION;
      INSERT INTO pessoafisica(CPF, Nome, Pai, Mae, Endereco, Complemento, Bairro, Telefone, Celular, Cidade, 
         Estado, CEP, DataNascimento, EstadoCivil, DataCadastro)
     VALUES(cpfP, nomeP, paiP, maeP, enderecoP, complementoP, bairroP, telefoneP, celularP, cidadeP, estadoP, 
         cepP, data_nascimentoP, estado_civilP, CURDATE());

      /*GUARDA CODIGO DO NOVO CLIENTE INSERIDO PARA NOVOS INSERTS*/
      SELECT DISTINCT LAST_INSERT_ID() INTO @novoCodPF FROM pessoafisica;
      /*---------------------------------------------------------*/

      INSERT INTO pfdadosprofissionais(CodPF, EmpNome, EmpEndereco, EmpBairro, EmpComplemento, EmpFone,
          EmpCidade, EmpEstado, EmpCEP, Cargo, Salario, DataAdmissao)
      VALUES(@novoCodPF, empresaP, emp_enderecoP, emp_bairroP, emp_compP, emp_foneP, emp_cidadeP, 
         emp_estadoP, emp_cepP, cargoP, salarioP, data_admissaoP);

      INSERT INTO pfreferencias(CodPF, RefPessoal, RefPessoalFone, RefComercial, RefComercialFone, Cartao, 
         CartaoNome, CartaoNumero, CartaoValidade, ChequeEsp, Banco, Agencia, ContaCorrente, 
         ContaCorrenteDesde)
      VALUES(@novoCodPF, ref_pessoalP, ref_pessoal_foneP, ref_comercialP, ref_comercial_foneP, cartaoP, 
         cartao_nomeP, cartao_numeroP, cartao_validadeP, cheque_espP, bancoP, agenciaP, conta_correnteP,   
         conta_corrente_desdeP);
      INSERT INTO pfchecagemdocumentacao(CodPF, RG, RGEmitidoPor, RGData, CNH, CNHEmitidoPor, 
         PrimeiraHabilitacao, CNHValidade, CartaoDeCredito, CartaoNumero, CartaoCodigoSeguranca, ChequeEsp, 
         ContaCorrente, CartaoValidade)
      VALUES(@novoCodPF, c_rgP, c_rg_emitido_porP, c_rg_dataP, c_cnh_nP, c_cnh_emitido_porP, c_1_habP, 
         c_cnh_validadeP, c_cartao_nomeP, c_cartao_numeroP, c_cartao_cod_segP, c_cheque_espP, 
         c_conta_correnteP, c_cartao_validadeP);

      INSERT INTO pfchecagemtelefone(CodPF, TelRes, ResFaladoCom, ResGrau, ResInformouQue, TelCom, 
         ComFaladoCom, ComCargo, ComInformouQue, RefPessoalTel, RefPessoalFaladoCom, 
         RefPessoalInformouQue, RefComTel, RefComFaladoCom, RefComInformouQue)
      VALUES(@novoCodPF, c_tel_resP, c_res_falado_comP, c_grauP, c_res_informou_queP, c_tel_comP, 
         c_com_falado_comP, c_cargoP, c_com_informou_queP, c_ref_pessoal_telP, c_ref_pessoal_falado_comP, 
         c_ref_pessoal_informou_queP, c_ref_com_telP, c_ref_com_falado_comP, c_ref_com_informou_queP);

      INSERT INTO pfobservacoes(CodPF, Observacoes)
      VALUES(@novoCodPF, observacoesP);

   COMMIT;
END$

quando eu executo no phpMyAdmin da seguinte maneira:

CALL CadastraClientePessoaFisica('021.741.222-40', 'José Luis da Silva', 'Pai dele', 'Mae dele', 'Rua do SobeDesce', 'Bairro CSA', 'casa', '(31)3251-3671', '(71)8438-3643', 'Contagem', 'AC', '32285-160', '1978-10-22', 'solteiro', 'Empresa', 'Av. JK 1200', 'São Luis', 'N/A', '(31)3599-2000', 'Belo Horizonte', 'AC', '33425-260', 'Estagiario', 1200.00, '2008-07-02', 'alguém', '(31)3345-2334', 'ninguém', '(31)3422-1223', 'sim', 'Itau', '22345', '2014-11-01', 'sim', 'Itau', '2234', '34233-9', '1999-12-11', 'MG-4628621', 'SSP', '2006-02-01', '234.254.345-2', 'alguém', '2008-09-03', '2011-09-03', 'Mastercard', '1234.2342.1231', '3378', 'sim', '2345-5', '2011-11-21', '(31)3342-2121', 'Manuel', 'Tio torto', 'Um monte de abobrinha', '(31)3244-1223', 'Maguila', 'Seguranca', 'Vai tudo bem', '(31)3456-3322', 'Totonho', 'não sabe de nada', '(31)3544-1212', 'Luizim', 'Tambem não sabe de nada', 'Tudo foi muito bem observado');

o erro que ocorre é:

#1312 - PROCEDURE cadastroclientes.CadastraClientePessoaFisica can't return a result set in the given context

Quando eu executo pela minha aplicação em PHP apenas informa que não foi executada com sucesso minha query.

já pesquisei sobre, mas não tenho a mínima ideia do que fazer para contornar o problema.

Eu executei esses comandos fora da SP, trocando as variáveis pelos parâmetros, e não houve problema.. o que foi até uma surpresa.

Será que alguém pode me ajudar? Preciso resolver isso com urgência

Obrigado, []'s

Editado por Jonathan Queiroz
Melhorar entendimento
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
será que ninguém pode me ajudar?

Não são permitidos up's no fórum de acordo com a regra 3.8 (ver regras)

3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...