Forms Iguais Mais Não dá Certo
Boa Noite!!!
Tenho dois forms aonde eu altero e gravo o que eu cadastrei.O codigo é o mesmo, mais um não está alterando ele esta gravando uma nova informação ao invés de alterar.Alguem sabe me dizer aonde eu errei??
Form que está gravando certo!!!
Form que ao inves de alterar está gravando uma nova informação
Obs.: Eu debuguei no form que esta certo que esta gravando as informações ele verifica certinho se esta inserindo ou editando, se não tiver inserindo ele já pula para o o codigo de edição, mais o outro verifica também, mais só enxerga que está inserindo, esquesito.Parte que verifica se ta inserindo ou não
Tenho dois forms aonde eu altero e gravo o que eu cadastrei.O codigo é o mesmo, mais um não está alterando ele esta gravando uma nova informação ao invés de alterar.Alguem sabe me dizer aonde eu errei??
Form que está gravando certo!!!
procedure TFrm_Cad_Bandeiras.Btn_GravarClick(Sender: TObject);
begin
if Edt_Bandeira.Text='''' then
begin
Mess(Frm_Cad_Bandeiras.Handle,''Dados em Branco!Preencha os Dados Corretamente!!!'', mb_iconinformation or mb_ok);
Edt_Bandeira.SetFocus;
exit;
end;
TRY
Frm_Principal.ConexaoBanco.BeginTrans;
if f_operacao=''I'' then
begin
Cmd_Cad_Bandeiras.CommandText:=''INSERT into Cad_Bandeiras (DataCadastro,Bandeira) '';
Cmd_Cad_Bandeiras.CommandText:= Cmd_Cad_Bandeiras.CommandText+''VALUES(:P_DataCadastro,:P_Bandeira )'';
end
else
begin
Cmd_Cad_Bandeiras.CommandText:=''UPDATE Cad_Bandeiras SET '';
Cmd_Cad_Bandeiras.CommandText:=Cmd_Cad_Bandeiras.CommandText+''DataCadastro=:P_DataCadastro,Bandeira=:P_Bandeira '';
Cmd_Cad_Bandeiras.CommandText:=Cmd_Cad_Bandeiras.CommandText+''Where Codigo=:P_Codigo'';
end;
with Cmd_Cad_Bandeiras.Parameters do
begin
if f_operacao<>''I'' then ParamByName(''P_Codigo'').Value:=Edt_Codigo.Text ;
ParamByName(''P_Bandeira'').Value:=Edt_Bandeira.Text ;
ParamByName(''P_DataCadastro'').Value:=Msk_Data_Cadastro.Text ;
if Msk_Data_Cadastro.Text <> '' / / ''
then ParamByName(''P_DataCadastro'').value:=Msk_Data_Cadastro.Text ;
Cmd_Cad_Bandeiras.Prepared:=True ;
Cmd_Cad_Bandeiras.Execute;
Cmd_Cad_Bandeiras.Prepared:=False;
end;
Frm_Principal.ConexaoBanco.CommitTrans;
LimpaCampos;
Edt_Bandeira.Enabled:=false;
EXCEPT
Frm_Principal.ConexaoBanco.RollbackTrans;
Mess(Frm_Cad_Bandeiras.Handle,''Falha na Atualização da Tabela Cad_Bandeiras...'',mb_iconinformation or mb_ok);
END;
Btn_Pesquisar.Enabled := true;
Btn_Incluir.Enabled := true;
Btn_Sair.Enabled := true;
Btn_Alterar.Enabled:=false;
Btn_Gravar.Enabled:=false;
Btn_Cancelar.Enabled:=false;
end;
Form que ao inves de alterar está gravando uma nova informação
procedure TFrm_Cad_Cidades.Btn_GravarClick(Sender: TObject);
begin
if Edt_Cidade.Text='''' then
begin
Mess(Frm_Cad_Cidades.Handle,''Dados em Branco!Preencha os Dados Corretamente!!!'', mb_iconinformation or mb_ok);
Edt_Cidade.SetFocus;
exit;
end;
TRY
Frm_Principal.ConexaoBanco.BeginTrans;
if f_operacao=''I'' then
begin
Cmd_Cad_Cidades.CommandText:=''INSERT into Cad_Cidades (Cidade,Estado,Cep,CodigoIbge,DataCadastro) '';
Cmd_Cad_Cidades.CommandText:= Cmd_Cad_Cidades.CommandText+''VALUES(:P_Cidade,:P_Estado,:P_Cep,:P_CodigoIbge,:P_DataCadastro )'';
end
else
begin
Cmd_Cad_Cidades.CommandText:=''UPDATE Cad_Cidades SET '';
Cmd_Cad_Cidades.CommandText:=Cmd_Cad_Cidades.CommandText+''Cidade=:P_Cidade,Estado=:P_Estado,Cep=:P_Cep,CodigoIbge=:P_CodigoIbge,DataCadastro=:P_DataCadastro '';
Cmd_Cad_Cidades.CommandText:=Cmd_Cad_Cidades.CommandText+''Where Codigo=:P_Codigo'';
end;
with Cmd_Cad_Cidades.Parameters do
begin
if f_operacao<>''I'' then ParamByName(''P_Codigo'').Value:=Edt_Codigo.Text ;
ParamByName(''P_Cidade'').Value:=Edt_Cidade.Text ;
ParamByName(''P_DataCadastro'').Value:=Msk_Data_Cadastro.Text ;
if Msk_Data_Cadastro.Text <> '' / / ''
then ParamByName(''P_DataCadastro'').value:=Msk_Data_Cadastro.Text ;
ParamByName(''P_Estado'').Value:=ComBox_Estado.Text ;
ParamByName(''P_Cep'').Value:=Msk_Cep.Text ;
Cmd_Cad_Cidades.Prepared:=True ;
Cmd_Cad_Cidades.Execute;
Cmd_Cad_Cidades.Prepared:=False;
end;
Frm_Principal.ConexaoBanco.CommitTrans;
LimpaCampos;
Edt_Cidade.Enabled:=false;
ComBox_Estado.Enabled:=false;
Msk_Cep.Enabled:=false;
Edt_Codigo_Ibge.Enabled:=false;
EXCEPT
Frm_Principal.ConexaoBanco.RollbackTrans;
Mess(Frm_Cad_Cidades.Handle,''Falha na Atualização da Tabela Cad_Cidades...'',mb_iconinformation or mb_ok);
END;
Btn_Pesquisar.Enabled := true;
Btn_Incluir.Enabled := true;
Btn_Sair.Enabled := true;
Btn_Alterar.Enabled:=false;
Btn_Gravar.Enabled:=false;
Btn_Cancelar.Enabled:=false;
end;Obs.: Eu debuguei no form que esta certo que esta gravando as informações ele verifica certinho se esta inserindo ou editando, se não tiver inserindo ele já pula para o o codigo de edição, mais o outro verifica também, mais só enxerga que está inserindo, esquesito.Parte que verifica se ta inserindo ou não
TRY
Frm_Principal.ConexaoBanco.BeginTrans;
if f_operacao=''I'' thenBruno Henrique
Curtidas 0
Respostas
Bruno Henrique
25/07/2013
Alguém?
GOSTEI 0
Joel Rodrigues
25/07/2013
Como está a chamada dos forms?
GOSTEI 0
Alessandro Yamasaki
25/07/2013
Aonde vc está preenchendo a informação desta variavel?
GOSTEI 0
Bruno Henrique
25/07/2013
Olá...Bom dia!!!
A chamada dos Forms ...form.shomodal;
e o preenchimento da variavel só quando executo, que eu busco o form que ela verifica se esta no modo de inserção se tiver ela vai inserir no banco se não só vai fazer a alteração...mais acontece que ela só ta executando a inserção e não executa a alteração....meu outros forms eu fiz do mesmo jeito e funciona normal.
A chamada dos Forms ...form.shomodal;
e o preenchimento da variavel só quando executo, que eu busco o form que ela verifica se esta no modo de inserção se tiver ela vai inserir no banco se não só vai fazer a alteração...mais acontece que ela só ta executando a inserção e não executa a alteração....meu outros forms eu fiz do mesmo jeito e funciona normal.
GOSTEI 0
Bruno Henrique
25/07/2013
????
GOSTEI 0
Joel Rodrigues
25/07/2013
Essa é a questão: onde você define se é inserção ou alteração?
GOSTEI 0
Bruno Henrique
25/07/2013
Nessa parte aqui!!!
TRY
Frm_Principal.ConexaoBanco.BeginTrans;
if f_operacao=''I'' then
begin
Cmd_Cad_Cidades.CommandText:=''INSERT into Cad_Cidades (Cidade,Estado,Cep,CodigoIbge,DataCadastro) '';
Cmd_Cad_Cidades.CommandText:= Cmd_Cad_Cidades.CommandText+''VALUES(:P_Cidade,:P_Estado,:P_Cep,:P_CodigoIbge,:P_DataCadastro )'';
end
else
begin
Cmd_Cad_Cidades.CommandText:=''UPDATE Cad_Cidades SET '';
Cmd_Cad_Cidades.CommandText:=Cmd_Cad_Cidades.CommandText+''Cidade=:P_Cidade,Estado=:P_Estado,Cep=:P_Cep,CodigoIbge=:P_CodigoIbge,DataCadastro=:P_DataCadastro '';
Cmd_Cad_Cidades.CommandText:=Cmd_Cad_Cidades.CommandText+''Where Codigo=:P_Codigo'';
end;GOSTEI 0
Alessandro Yamasaki
25/07/2013
Coloque o trecho que está preenchendo a informação desta variavel.
GOSTEI 0
Bruno Henrique
25/07/2013
procedure TFrm_Pesquisa_Cidades.Dbg_Pesquisa_CidadesKeyPress(
Sender: TObject; var Key: Char);
begin
pesquisar1:=true;
Frm_Cad_Cidades.Msk_Data_Cadastro.Enabled:=false;
Frm_Cad_Cidades.Edt_Cidade.Enabled:=false;
Frm_Cad_Cidades.ComBox_Estado.Enabled:=false;
Frm_Cad_Cidades.Msk_Cep.Enabled:=false;
Frm_Cad_Cidades.Edt_Codigo.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Codigo').AsString;
Frm_Cad_Cidades.Msk_Data_Cadastro.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('DataCadastro').AsString;
Frm_Cad_Cidades.Edt_Cidade.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Cidade').AsString;
Frm_Cad_Cidades.ComBox_Estado.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Estado').AsString;
Frm_Cad_Cidades.Msk_Cep.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Cep').AsString;
f_operacao:='A';
Frm_Pesquisa_Cidades.Close;
Frm_Cad_Funcionarios.Edt_Codigo_Cidade.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Codigo').AsString;
Frm_Cad_Funcionarios.Edt_Nome_Cidade.Text:=Frm_Pesquisa_Cidades.Ads_Pesquisa_Cidades.FieldByName('Cidade').AsString;
end;GOSTEI 0
Bruno Henrique
25/07/2013
Detalhe!!!
Se eu alterar uma vez só, altera normalmente, mais se eu pesquisar de novo e clicar em alterar novamente ai faz uma nova inserção
GOSTEI 0
Bruno Henrique
25/07/2013
Como posto uma print aqui no forum???Por que eu posto um print ficará de mais facil entendimento
GOSTEI 0
Joel Rodrigues
25/07/2013
Compartilhe a imagem em algum site e poste o link usando as tags [ url ] que você encontra nos botões na hora de postar.
GOSTEI 0
Flávio Henr4ique
25/07/2013
Ta Faltando Coisa
GOSTEI 0
Bruno Henrique
25/07/2013
Flavio Henrique
O que está faltando????
Preciso compartilhar a imagem!!!Pois fiz igual a todos os outros forms.E ocorreu perfeitamente, sem erro algum!!!
O que falta nesse ????
Abraços
O que está faltando????
Preciso compartilhar a imagem!!!Pois fiz igual a todos os outros forms.E ocorreu perfeitamente, sem erro algum!!!
O que falta nesse ????
Abraços
GOSTEI 0