Procedure de gravação

Delphi

08/06/2013

Boa noite!

Eu tenho uma aplicação que possui um botão Gravar que faz a inserção dos dados no banco de dados:

procedure TfrmClientes.btnGravarClick(Sender: TObject);
begin
    qyClientes.Close;
    qyClientes.SQL.Clear;
    qyClientes.SQL.Append('INSERT INTO tbCliente (Nome, DataNascimento, Endereco, Identidade, CPF, Observacao) VALUES (:Nome, :DataNascimento, :Endereco, :Identidade,  :CPF, :Observacao)');
    qyClientes.Parameters.ParamByName('Nome').Value := edtNome.Text;
    qyClientes.Parameters.ParamByName('Endereco').Value := edtEndereco.Text;
    qyClientes.Parameters.ParamByName('DataNascimento').Value := edtNascimento.Text;
    qyClientes.Parameters.ParamByName('Identidade').Value := edtIdentidade.Text;
    qyClientes.Parameters.ParamByName('CPF').Value := edtCPF.Text;
    qyClientes.Parameters.ParamByName('Observacao').Value := edtObservacao.Text;
    qyClientes.ExecSQL;
    edtCodigo.Enabled := False;
    edtNome.Enabled := False;
    edtNascimento.Enabled := False;
    edtEndereco.Enabled := False;
    edtIdentidade.Enabled:= False;
    edtCPF.Enabled := False;
    edtObservacao.Enabled := False;
    edtNome.Color := clWindow;
    edtNascimento.Color := clWindow;
    edtEndereco.Color := clWindow;
    edtIdentidade.Color := clWindow;
    edtCPF.Color := clWindow;
    edtObservacao.Color := clWindow;
    btnGravar.Enabled := False;
    btnAlterar.Enabled := True;
end;


Só que nessa aplicação existe um botão Alterar que habilita os edits e deixa o form em modo de alteração.

Dessa forma, o botão gravar deve funcionar com um update.

Tentei com if..else mas não consegui.

Alguém pode me ajudar?
Rafael Costa

Rafael Costa

Curtidas 0

Respostas

Rafael Costa

Rafael Costa

08/06/2013

Criei uma variável para controlar se será INSERT ou UPDATE a função do botão:

procedure TfrmClientes.btnGravarClick(Sender: TObject);
begin
    if (Gravacao = 'I') then
    qyClientes.Close;
    qyClientes.SQL.Clear;
    qyClientes.SQL.Append('INSERT INTO tbCliente (Nome, DataNascimento, Endereco, Identidade, CPF, Observacao) VALUES (:Nome, :DataNascimento, :Endereco, :Identidade,  :CPF, :Observacao)');
    qyClientes.Parameters.ParamByName('Nome').Value := edtNome.Text;
    qyClientes.Parameters.ParamByName('Endereco').Value := edtEndereco.Text;
    qyClientes.Parameters.ParamByName('DataNascimento').Value := edtNascimento.Text;
    qyClientes.Parameters.ParamByName('Identidade').Value := edtIdentidade.Text;
    qyClientes.Parameters.ParamByName('CPF').Value := edtCPF.Text;
    qyClientes.Parameters.ParamByName('Observacao').Value := edtObservacao.Text;
    qyClientes.ExecSQL;
    edtCodigo.Enabled := False;
    edtNome.Enabled := False;
    edtNascimento.Enabled := False;
    edtEndereco.Enabled := False;
    edtIdentidade.Enabled:= False;
    edtCPF.Enabled := False;
    edtObservacao.Enabled := False;
    edtNome.Color := clWindow;
    edtNascimento.Color := clWindow;
    edtEndereco.Color := clWindow;
    edtIdentidade.Color := clWindow;
    edtCPF.Color := clWindow;
    edtObservacao.Color := clWindow;
    btnGravar.Enabled := False;
    btnAlterar.Enabled := True;
    else
    if (Gravacao = A) then
    qyClientes.Close;
    qyClientes.SQL.Clear;
    qyClientes.SQL.Append('UPDATE tbCliente SET Nome = :Nome, DataNascimento = :DataNascimento, Endereco = :Endereco, Identidade = :Identidade, CPF = :CPF, Observacao = :Observacao')
    qyClientes.Parameters.ParamByName('Nome').Value := edtNome.Text;
    qyClientes.Parameters.ParamByName('Endereco').Value := edtEndereco.Text;
    qyClientes.Parameters.ParamByName('DataNascimento').Value := edtNascimento.Text;
    qyClientes.Parameters.ParamByName('Identidade').Value := edtIdentidade.Text;
    qyClientes.Parameters.ParamByName('CPF').Value := edtCPF.Text;
    qyClientes.Parameters.ParamByName('Observacao').Value := edtObservacao.Text;
    qyClientes.ExecSQL;
    edtCodigo.Enabled := False;
    edtNome.Enabled := False;
    edtNascimento.Enabled := False;
    edtEndereco.Enabled := False;
    edtIdentidade.Enabled:= False;
    edtCPF.Enabled := False;
    edtObservacao.Enabled := False;
    edtNome.Color := clWindow;
    edtNascimento.Color := clWindow;
    edtEndereco.Color := clWindow;
    edtIdentidade.Color := clWindow;
    edtCPF.Color := clWindow;
    edtObservacao.Color := clWindow;
    btnGravar.Enabled := False;
    btnAlterar.Enabled := True;
  end;


Mas não consigo fazer o IF funcionar, o que há de errado nele?
GOSTEI 0
Rafael Costa

Rafael Costa

08/06/2013

Resolvido
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

08/06/2013

Obrigado pelo retorno.
Tópico CONCLUÍDO.
GOSTEI 0
POSTAR