Fórum Erro ao Gravar - AdoConnection + Firebird + AdoQuery #510914
17/02/2015
0
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
Curtir tópico
+ 0Posts
17/02/2015
Bruno Henrique
Gostei + 0
17/02/2015
Bruno Henrique
Gostei + 0
17/02/2015
Bruno Henrique
Gostei + 0
18/02/2015
Bruno Henrique
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)