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
Pergunta
Paulo Reis
Olá pessoal. Estou implementando um sistema de cadastro de clientes, e criei a seguinte SP pra inserir os dados do cliente:
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 QueirozMelhorar entendimento
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados