PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro ao Gravar - AdoConnection + Firebird + AdoQuery #510914

17/02/2015

0

Boa noite!!!

Já faz dias que estou quebrando a cabeça com este erro e não consigo resolver!!!Alguém ajuda?

Esse é o erro
[img:descricao=Erro]http://arquivo.devmedia.com.br/forum/imagem/316964-20150217-003655.jpg[/img]

Essa é minha tabela
[img:descricao=Tabela]http://arquivo.devmedia.com.br/forum/imagem/316964-20150217-003839.jpg[/img]

Esses são meus fields -> Estão dos corretos os DataType
[img:descricao=Fields]http://arquivo.devmedia.com.br/forum/imagem/316964-20150217-004011.jpg[/img]

E para quem tiver paciência para me ajudar abaixo o meu código!!!

unit UCadClientes;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, ExtCtrls, ADODB, DB;

type
  TFrmCadClientes = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    EdtCodigo: TEdit;
    EdtNomeRazao: TEdit;
    EdtNumero: TEdit;
    EdtEndereco: TEdit;
    EdtBairro: TEdit;
    EdtCidade: TEdit;
    EdtNomeCidade: TEdit;
    Label20: TLabel;
    EdtEstado: TEdit;
    EdtComplemento: TEdit;
    EdtRgIe: TEdit;
    EdtNumeroCpfCnpj: TEdit;
    EdtLimiteCredito: TEdit;
    EdtEmail: TEdit;
    EdtContato: TEdit;
    MemoObservacoes: TMemo;
    DataCadastro: TLabel;
    EdtNumeroAtivoInativo: TEdit;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    EdtApelidoFantasia: TEdit;
    Label27: TLabel;
    MskDataCadastro: TMaskEdit;
    MskUltimaAlteracao: TMaskEdit;
    MskCpfCnpj: TMaskEdit;
    MskDataNascimento: TMaskEdit;
    MskTelefone3: TMaskEdit;
    MskCelular: TMaskEdit;
    MskTelefone1: TMaskEdit;
    MskTelefone2: TMaskEdit;
    MskCep: TMaskEdit;
    PanelBotoes: TPanel;
    BtnIncluir: TButton;
    BtnGravar: TButton;
    BtnAlterar: TButton;
    BtnExcluir: TButton;
    BtnCancelar: TButton;
    BtnPesquisar: TButton;
    BtnSair: TButton;
    QueryCadClientes: TADODataSet;
    CmdCadClientes: TADOCommand;
    procedure MemoObservacoesKeyPress(Sender: TObject; var Key: Char);
    procedure EdtNumeroCpfCnpjExit(Sender: TObject);
    procedure EdtNumeroCpfCnpjKeyPress(Sender: TObject; var Key: Char);
    procedure BtnSairClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnIncluirClick(Sender: TObject);
    procedure BtnCancelarClick(Sender: TObject);
    procedure BtnAlterarClick(Sender: TObject);
    procedure EdtNumeroAtivoInativoKeyPress(Sender: TObject;
      var Key: Char);
    procedure DesabilitarEdit;
    procedure DesabilitarMascara;
    procedure DesabilitarMemo;
    procedure HabilitarEdit;
    procedure HabilitarMascara;
    procedure HabilitarMemo;
    procedure BtnPesquisarClick(Sender: TObject);
    procedure LimpaCampos;
    procedure BtnGravarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure EdtLimiteCreditoEnter(Sender: TObject);
    procedure EdtLimiteCreditoExit(Sender: TObject);
    procedure EdtLimiteCreditoKeyPress(Sender: TObject; var Key: Char);
    procedure Preenche;
    procedure MskDataNascimentoExit(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmCadClientes: TFrmCadClientes;
  pesquisar: Boolean;
  f_operacao: char;


implementation

uses UDm, UPesquisarClientes, UBiblioteca, UPrincipal;


{$R *.dfm}

procedure TFrmCadClientes.DesabilitarEdit;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TEdit Then
      TEdit(Components[Cont]).Enabled :=False;
  end;
end;

procedure TFrmCadClientes.DesabilitarMascara;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TMaskEdit Then
      TMaskEdit(Components[Cont]).Enabled :=False;
  end;
end;

procedure TFrmCadClientes.DesabilitarMemo;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TMemo Then
      TMemo(Components[Cont]).Enabled :=False;
  end;
end;

procedure TFrmCadClientes.HabilitarEdit;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TEdit Then
      TEdit(Components[Cont]).Enabled :=True;
  end;
end;

procedure TFrmCadClientes.HabilitarMascara;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TMaskEdit Then
      TMaskEdit(Components[Cont]).Enabled :=True;
  end;
end;

procedure TFrmCadClientes.HabilitarMemo;
var cont:integer;
begin
  for cont := 0 To ComponentCount -1 Do
  begin
    If Components[cont] Is TMemo Then
      TMemo(Components[Cont]).Enabled :=True;
  end;
end;

procedure TFrmCadClientes.LimpaCampos;
var i:Integer;
Begin
  For i:=0 To (ComponentCount - 1) Do
    If Components[i] Is TCustomEdit Then (Components[i] As TCustomEdit).Clear;
    EdtLimiteCredito.Text:='         0,00';
end;


procedure TFrmCadClientes.Preenche;
begin
    EdtCodigo.Text := trim(QueryCadClientes.FieldByName('CODIGO').AsString);
    EdtNumeroAtivoInativo.Text := trim(QueryCadClientes.FieldByName('SITUACAO').AsString);
    if (QueryCadClientes.FieldByName('DATACADASTRO').AsString<>'') or (not QueryCadClientes.FieldByName('DATACADASTRO').isnull) then
    MskDataCadastro.Text := trim(QueryCadClientes.FieldByName('DATACADASTRO').AsString);
    EdtNomeRazao.Text := trim(QueryCadClientes.FieldByName('NOME').AsString);
    if (QueryCadClientes.FieldByName('ULTIMAALTERACAO').AsString<>'') or (not QueryCadClientes.FieldByName('ULTIMAALTERACAO').isnull) then
    MskUltimaAlteracao.Text := trim(QueryCadClientes.FieldByName('ULTIMAALTERACAO').AsString);
    EdtApelidoFantasia.Text := trim(QueryCadClientes.FieldByName('NOMEFANTASIA').AsString);
    EdtEndereco.Text := trim(QueryCadClientes.FieldByName('ENDERECO').AsString);
    EdtNumero.Text := trim(QueryCadClientes.FieldByName('NUMERO').AsString);
    EdtBairro.Text := trim(QueryCadClientes.FieldByName('BAIRRO').AsString);
    EdtNomeCidade.Text := trim(QueryCadClientes.FieldByName('CIDADE').AsString);
    EdtEstado.Text := trim(QueryCadClientes.FieldByName('ESTADO').AsString);
    MskCep.Text := trim(QueryCadClientes.FieldByName('CEP').AsString);
    EdtRgIe.Text := trim(QueryCadClientes.FieldByName('RG').AsString);
    MskCpfCnpj.Text := trim(QueryCadClientes.FieldByName('CPF').AsString);
    if (QueryCadClientes.FieldByName('DATANASCIMENTO').AsString<>'') or (not QueryCadClientes.FieldByName('DATANASCIMENTO').isnull) then
    MskDataNascimento.Text := trim(QueryCadClientes.FieldByName('DATANASCIMENTO').AsString);
    MskTelefone1.Text := trim(QueryCadClientes.FieldByName('TELEFONE1').AsString);
    MskTelefone2.Text := trim(QueryCadClientes.FieldByName('TELEFONE2').AsString);
    MskTelefone3.Text := trim(QueryCadClientes.FieldByName('TELEFONE3').AsString);
    MskCelular.Text := trim(QueryCadClientes.FieldByName('CELULAR').AsString);
    EdtEmail.Text := trim(QueryCadClientes.FieldByName('EMAIL').AsString);
    EdtContato.Text := trim(QueryCadClientes.FieldByName('CONTATO').AsString);
    EdtLimiteCredito.Text := Converte(QueryCadClientes.FieldByName('LIMITE').AsString,4,2);
    MemoObservacoes.Text := trim(QueryCadClientes.FieldByName('OBSERVACOES').AsString);
end;

procedure TFrmCadClientes.MemoObservacoesKeyPress(Sender: TObject;
  var Key: Char);
begin
inherited;
Key := AnsiUpperCase(Key)[Length(Key)]; 
end;


procedure TFrmCadClientes.EdtNumeroCpfCnpjExit(Sender: TObject);
begin
  if EdtNumeroCpfCnpj.text = '1' then
  MskCpfCnpj.EditMask:= '000.000.000\-99;1;_'
  else
  if EdtNumeroCpfCnpj.Text = '2' then
  MskCpfCnpj.EditMask:= '000\.000\.000/0000\-99;1;_';
end;

procedure TFrmCadClientes.EdtNumeroCpfCnpjKeyPress(Sender: TObject;
  var Key: Char);
begin
  if EdtNumeroCpfCnpj.text = '1' then
  MskCpfCnpj.EditMask:= '000.000.000\-99;1;_'
  else
  if EdtNumeroCpfCnpj.Text = '2' then
  MskCpfCnpj.EditMask:= '00\.000\.000/0000\-99;1;_';
end;

procedure TFrmCadClientes.BtnSairClick(Sender: TObject);
begin
Close;
end;

procedure TFrmCadClientes.FormCreate(Sender: TObject);
begin
DesabilitarEdit;
DesabilitarMascara;
DesabilitarMemo;
BtnGravar.Enabled := false;
BtnAlterar.Enabled := false;
BtnExcluir.Enabled := false;
BtnCancelar.Enabled := false;
end;

procedure TFrmCadClientes.BtnIncluirClick(Sender: TObject);
begin
HabilitarEdit;
HabilitarMascara;
HabilitarMemo;
EdtNumeroAtivoInativo.SetFocus;
MskDataCadastro.Text := DateToStr(Date);
BtnIncluir.Enabled := false;
BtnGravar.Enabled := true;
BtnCancelar.Enabled := true;
BtnPesquisar.Enabled := false;
BtnSair.Enabled := false;

QueryCadClientes.Close;
QueryCadClientes.CommandText:='SELECT MAX(CODIGO)+1 AS COD FROM CLIENTES';
QueryCadClientes.Open;
QueryCadClientes.Insert;
EdtCodigo.Text:=IntToStr(QueryCadClientes.FieldByName('COD').AsInteger + 1);


end;

procedure TFrmCadClientes.BtnCancelarClick(Sender: TObject);
begin
DesabilitarEdit;
DesabilitarMascara;
DesabilitarMemo;
BtnIncluir.Enabled := true;
BtnPesquisar.Enabled := true;
BtnGravar.Enabled := false;
BtnCancelar.Enabled := false;
BtnSair.Enabled := true;
LimpaCampos;
end;

procedure TFrmCadClientes.BtnAlterarClick(Sender: TObject);
begin
MskUltimaAlteracao.Text := DateToStr(Date);
HabilitarEdit;
HabilitarMascara;
HabilitarMemo;
BtnAlterar.Enabled := False;
BtnIncluir.Enabled := False;
BtnPesquisar.Enabled := False;
BtnCancelar.Enabled := True;
BtnExcluir.Enabled := False;
BtnGravar.Enabled := True;
BtnSair.Enabled := False;
EdtNumeroAtivoInativo.SetFocus;
end;

procedure TFrmCadClientes.EdtNumeroAtivoInativoKeyPress(Sender: TObject;
  var Key: Char);
begin
      if ( Key In ['b'..'h','j'..'z','B'..'H','J'..'Z','0'..'9', '0'..'9', '@','!','#','$', '%','^',
              '&','`','~','*','(',')','-','_','=','+','|',',','/','<','>',
               '"',';',':','[',']','{','}',''''  ]) then   
    begin
      KEY := #0; //retorna 'null' como c nada fosse precionado
    end;
end;

procedure TFrmCadClientes.BtnPesquisarClick(Sender: TObject);
begin
FrmPesquisarClientes.ShowModal;
BtnExcluir.Enabled := True;
BtnGravar.Enabled := False;
if pesquisar then
BtnAlterar.Enabled := True
else
BtnAlterar.Enabled := False;
end;

procedure TFrmCadClientes.BtnGravarClick(Sender: TObject);
begin
  if EdtNomeRazao.Text = '' then
          begin
              Mess(FrmCadClientes.Handle,'Dados em Branco!Preencha os Dados Corretamente!!!', mb_iconinformation or mb_ok);
              EdtNomeRazao.SetFocus;
              exit;
          end
  else
  if EdtNumeroAtivoInativo.Text = '' then
          begin
              Mess(FrmCadClientes.Handle,'Dados em Branco!Preencha os Dados Corretamente!!!', mb_iconinformation or mb_ok);
              EdtNumeroAtivoInativo.SetFocus;
              exit;
          end ;


TRY
    FrmPrincipal.ConexaoBd.BeginTrans;
      if f_operacao='I' then
        begin
          CmdCadClientes.CommandText:='INSERT INTO CLIENTES (SITUACAO,DATACADASTRO,NOME,ULTIMAALTERACAO,NOMEFANTASIA,ENDERECO,NUMERO,BAIRRO,CIDADE,ESTADO,CEP,RG,CPF,DATANASCIMENTO,TELEFONE1,TELEFONE2,TELEFONE3,CELULAR,EMAIL,CONTATO,LIMITE,OBSERVACOES) ';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'VALUES(:PSITUACAO,:PDATACADASTRO,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+':PNOME,:PULTIMAALTERACAO,:PNOMEFANTASIA,:PENDERECO,:PNUMERO,:PBAIRRO,:PCIDADE,:PESTADO,:PCEP,:PRG,:PCPF,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+':PDATANASCIMENTO,:PTELEFONE1,:PTELEFONE2,:PTELEFONE3,:PCELULAR,:PEMAIL,:PCONTATO,:PLIMITE,:POBSERVACOES )';
        end
        else
        begin
          CmdCadClientes.CommandText:='UPDATE CLIENTES SET ';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'SITUACAO=:PSITUACAO,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'DATACADASTRO=:PDATACADASTRO,NOME=:PNOME,ULTIMAALTERACAO=:PULTIMAALTERACAO,NOMEFANTASIA=:PNOMEFANTASIA,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'ENDERECO=:PENDERECO,NUMERO=:PNUMERO,BAIRRO=:PBAIRRO,CIDADE=:PCIDADE,ESTADO=:PESTADO,CEP=:PCEP,RG=:PRG,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'CPF=:PCPF,DATANASCIMENTO=:PDATANASCIMENTO,TELEFONE1=:PTELEFONE1,TELEFONE2=:PTELEFONE2,TELEFONE3=:PTELEFONE3,';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'CELULAR=:PCELULAR,EMAIL=:PEMAIL,CONTATO=:PCONTATO,LIMITE=:PLIMITE,OBSERVACOES=:POBSERVACOES ';
          CmdCadClientes.CommandText:=CmdCadClientes.CommandText+'WHERE CODIGO=:PCODIGO';
        end;
with CmdCadClientes.Parameters do
        begin
          if f_operacao<>'I' then ParamByName('PCODIGO').Value:=EdtCodigo.Text;
            ParamByName('PSITUACAO').Value:=EdtNumeroAtivoInativo.Text;
            ParamByName('PDATACADASTRO').Value:=MskDataCadastro.Text;
            ParamByName('PNOME').Value:=EdtNomeRazao.Text;
            ParamByName('PULTIMAALTERACAO').Value:=MskUltimaAlteracao.Text;
            ParamByName('PNOMEFANTASIA').Value:=EdtApelidoFantasia.Text;
            ParamByName('PENDERECO').Value:=EdtEndereco.Text;
            ParamByName('PNUMERO').Value:=EdtNumero.Text;
            ParamByName('PBAIRRO').Value:=EdtBairro.Text;
            ParamByName('PCIDADE').Value:=EdtNomeCidade.Text;
            ParamByName('PESTADO').Value:=EdtEstado.Text;
            ParamByName('PCEP').Value:=MskCep.Text;
            ParamByName('PRG').Value:=EdtRgIe.Text;
            ParamByName('PCPF').Value:=MskCpfCnpj.Text;
            ParamByName('PDATANASCIMENTO').Value:=MskDataNascimento.Text;
            if MskDataNascimento.Text <> '  /  /    '
          then ParamByName('PDATANASCIMENTO').value:=MskDataNascimento.Text
          else ParamByName('PDATANASCIMENTO').value:='01/01/1900';
            ParamByName('PTELEFONE1').Value:=MskTelefone1.Text;
            ParamByName('PTELEFONE2').Value:=MskTelefone2.Text;
            ParamByName('PTELEFONE3').Value:=MskTelefone3.Text;
            ParamByName('PCELULAR').Value:=MskCelular.Text;
            ParamByName('PEMAIL').Value:=EdtEmail.Text;
            ParamByName('PCONTATO').Value:=EdtContato.Text;
            ParamByName('PLIMITE').Value:=StrToFloat(Converte2(EdtLimiteCredito.Text));
            ParamByName('POBSERVACOES').Value:=MemoObservacoes.Text; 
        end;
    CmdCadClientes.Prepared:=True;
    CmdCadClientes.Execute;
    CmdCadClientes.Prepared:=False;
    FrmPrincipal.ConexaoBd.CommitTrans;
    LimpaCampos;
    DesabilitarEdit;
    DesabilitarMascara;
    DesabilitarMemo;
EXCEPT
    FrmPrincipal.ConexaoBd.RollbackTrans;
    Mess(FrmCadClientes.Handle,'Falha na Gravação...',mb_iconinformation or mb_ok);
    LimpaCampos;
    DesabilitarEdit;
    DesabilitarMascara;
    DesabilitarMemo;
END;
    BtnPesquisar.Enabled := True;
    BtnIncluir.Enabled := True;
    BtnSair.Enabled := True;
    BtnAlterar.Enabled := False;
    BtnGravar.Enabled := False;
    BtnCancelar.Enabled := False;
    LimpaCampos;
end;

procedure TFrmCadClientes.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
    FrmCadClientes := nil;
    Action:=caFree;
end;

procedure TFrmCadClientes.EdtLimiteCreditoEnter(Sender: TObject);
begin
  EdtLimiteCredito.Text:=Converte2(EdtLimiteCredito.Text);
  EdtLimiteCredito.SelectAll;
end;

procedure TFrmCadClientes.EdtLimiteCreditoExit(Sender: TObject);
begin
  EdtLimiteCredito.Text:=Converte(EdtLimiteCredito.Text,4,2);
end;

procedure TFrmCadClientes.EdtLimiteCreditoKeyPress(Sender: TObject;
  var Key: Char);
begin
  Key:=FkeyPress(EdtLimiteCredito.Text,Key);
end;

procedure TFrmCadClientes.MskDataNascimentoExit(Sender: TObject);
VAR data : TDate;
begin
if BtnCancelar.focused then
 exit;
try
data := StrToDate(MskDataNascimento.Text);
except
begin
  Mess(FrmCadClientes.Handle,'Data Incorreta.Verifique!!!',mb_iconinformation or mb_ok);
 //MessageDLG('Verifique!!!',mtInformation,[mbok],1);
  MskDataNascimento.SelectAll;
  MskDataNascimento.SetFocus;
  Abort;
 end;
 end;
 if StrToDate(MskDataNascimento.Text) > now then
   begin
      MessageDLG('Data Inserida Maior Que a Data Atual.Verifique!!!',mtInformation,[mbok],0);
      MskDataNascimento.SetFocus ;
   end;

end;

end.

Bruno Henrique

Bruno Henrique

Responder

Posts

17/02/2015

Bruno Henrique

Alguém por favor?
Responder

Gostei + 0

17/02/2015

Bruno Henrique

Ninguém vai poder me ajudar?
Responder

Gostei + 0

17/02/2015

Bruno Henrique

????
Responder

Gostei + 0

18/02/2015

Bruno Henrique

Ninguém consegue me ajudar????
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar