Fórum Duvidas com Stored Procedure no Delphi #419601
09/07/2012
0
Código:
DELIMITER // DROP PROCEDURE IF EXISTS `NomeCli_CPFCli` // CREATE PROCEDURE NomeCli_CPFCli(v_cod_cli INT, v_nome VARCHAR(60), v_cpf VARCHAR(20)) BEGIN IF ((v_nome != ) && (v_cpf != )) THEN INSERT INTO fisico (cod_cli,nome_cli,cpf_) VALUES (v_cod_cli, v_nome, v_cpf); ELSE SELECT NOME e CPF devem ser fornecidos para o cadastro! AS Msg; END IF; END// DELIMITER;
Nela tem uma mensagem, qdo eu executar essa minha SP no delphi essa mensagem é disparada no delphi caso a pessoa não preencha os dados?
Tô perguntando, pq no meu banco essa mensagem foi disparada qdo não insiro os dados ou cpf ou nome.
O que eu quero é saber como essa mensagem é disparado no meu delphi, no delphi to usando DBEXPRESS e o ZSQLStoredprod
faço as ligações certo, e no meu botão de inserir coloquei:
SQLStoredProc1.Close;
SQLStoredProc1.ParamByName(v_cod_cli).Value := dbedit1.Text;
SQLStoredProc1.ParamByName(v_nome).Value := dbedit2.Text;
SQLStoredProc1.ParamByName(v_cpf).Value := dbedit3.Text;
SQLStoredProc1.ExecProc;
Tipo inseri normalmente, mais qdo eu deixo de preencher ou onome ou cpf, aquela mensagem não dispara.
COMO DISPARO ESSA MENSAGEM NO DELPHI?
Gabrielscorpion
Curtir tópico
+ 0Posts
09/07/2012
Bruno Leandro
DELIMITER // DROP PROCEDURE IF EXISTS `NomeCli_CPFCli` // CREATE PROCEDURE NomeCli_CPFCli(v_cod_cli INT, v_nome VARCHAR(60), v_cpf VARCHAR(20)) BEGIN DECLARE EXIT HANDLER FOR SQLSTATE 42000 SELECT NOME e CPF devem ser fornecidos para o cadastro!; IF ((v_nome != ) && (v_cpf != )) THEN INSERT INTO fisico (cod_cli,nome_cli,cpf_) VALUES (v_cod_cli, v_nome, v_cpf); ELSE CALL raise_error; END IF; END// DELIMITER;
ai no delphi
try SQLStoredProc1.Close; SQLStoredProc1.ParamByName(v_cod_cli).Value := dbedit1.Text; SQLStoredProc1.ParamByName(v_nome).Value := dbedit2.Text; SQLStoredProc1.ParamByName(v_cpf).Value := dbedit3.Text; SQLStoredProc1.ExecProc; except on E: Exception do ShowMessage(E.Message); end;
qualquer duvida estou a disposicao
Gostei + 0
09/07/2012
Deivison Melo
Acho que ficaria mais simples (apenas uma sugestão)!!!
Boa sorte e bons códigos aí!!!
Gostei + 0
09/07/2012
Gabrielscorpion
Tipo stored procedure aceita try e except no delphi? é que eu achava que num dava usar. Enfim...mesmo usando ou não não tipo sucesso aqui, ainda a mensagem não disparou. A SP não deixa inserir sem CPF ou NOME mais também não disparada a tal mensagem.
Gostei + 0
09/07/2012
Gabrielscorpion
Acho que ficaria mais simples (apenas uma sugestão)!!!
Boa sorte e bons códigos aí!!!
Entendi cara, mais o seguinte...isso aqui que coloquei é apenas um exemplo para entenderem melhor o que eu quero...no sistema é um pouco mais complexo. E eu tô preferindo fazer por banco de dados...pq meu sistema a maioria vai ser no banco de dados a programação atraves de SP,triggers e functions e também pq quero aprender como fazer o delphi disparar uma mensagem atraves de uma SP.
Gostei + 0
09/07/2012
Deivison Melo
Vc tera que utilizar componentes que possam interagir com o seu componente ou dbexpress ou zeoslib mesmo (nisso vc está correto), agora vc deverá fazer sua codificação de forma que possa ter essa interação entre o sistema e o banco, é que aqui no trabalho não tenho como fazer um exemplo por não trabalharmos com delphi...
Gostei + 0
09/07/2012
Gabrielscorpion
Gostei + 0
09/07/2012
Gabrielscorpion
Bom o jeito foi fazer a nivel de sistema mesmo, então fizassim:
if (sp.ParamByName(v_nome).Asstring <> ) and
(sp.ParamByName(v_cpf).Asstring <> )then
begin
sp.ExecProc;
// atualiza tabela
ClientDataSet1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.add(select * from clientes);
ClientDataSet1.open;
end
else
begin
ShowMessage(Preencha o CPF e Nome);
// atualiza tabela
ClientDataSet1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.add(select * from clientes);
ClientDataSet1.open;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)