Erro na hora de salvar Data
Bom dia para todos
estou criando um sistema e quando vo na tela de clientes e mando salvar o cliente novo esta dando o seguinte erro creio eu que referente a Data
Erro:
SQL Error code = -303
conversion error from string ´ - ´
Incompatible column/host variable data type
Error Code: 249´. Process stopped. use step or run to continue.
estou usando o seguinte codigo no botão salvar
procedure TFrmClientes.BitBtnSalvarClick(Sender: TObject);
begin
BitBtnNovo.Enabled := true;
BitBtnExcluir.Enabled := true;
BitBtnConsultar.Enabled := true;
BitBtnEditar.Enabled := true;
BitBtnSalvar.Enabled := false;
BitBtnCancelar.Enabled := false;
try
DM_systlab.SQLConnection1.StartTransaction(DM_systlab.Transacao);
DM_systlab.SQLDataSet1.Close;
DM_systlab.SQLDataSet1.CommandType := ctQuery;
DM_systlab.SQLDataSet1.CommandText := ´ insert into clientes (nome, endereco,´ +
´bairro, cidade, estado, cep, data_nascimento, documento, telefone1, contato1)´ +
´values (:nom, :end, :bair, :cid, :est, :cep, :dtn, :doc, :tel, :cont)´;
DM_systlab.SQLDataSet1.ParamByName(´nom´).AsString := EditName.Text;
DM_systlab.SQLDataSet1.ParamByName(´end´).AsString := EditEnd.text;
DM_systlab.SQLDataSet1.ParamByName(´bair´).AsString := EditBairro.Text;
DM_systlab.SQLDataSet1.ParamByName(´cid´).AsString := EditCid.Text;
DM_systlab.SQLDataSet1.ParamByName(´est´).AsString := ComboBoxEst.Text;
DM_systlab.SQLDataSet1.ParamByName(´cep´).AsString := MaskCep.Text;
DM_systlab.SQLDataSet1.ParamByName(´dtn´).AsString := DateToStr(Data);
DM_systlab.SQLDataSet1.ParamByName(´doc´).AsString := EditDocumento.Text;
DM_systlab.SQLDataSet1.ParamByName(´tel´).AsString := MaskEditTelefone.Text;
DM_systlab.SQLDataSet1.ParamByName(´cont´).AsString := EditContato.Text;
DM_systlab.SQLDataSet1.ExecSQL;
DM_systlab.SQLConnection1.Commit(DM_systlab.Transacao);
except
on Exc :Exception do
begin
ShowMessage(´ Erro ao Salvar Cliente´ + Exc.Message);
DM_systlab.SQLConnection1.Rollback(DM_systlab.Transacao);
end;
end;
end;
será que alguem poderia me dar uma força???
ficaria muito grato
des de ja obrigado
estou criando um sistema e quando vo na tela de clientes e mando salvar o cliente novo esta dando o seguinte erro creio eu que referente a Data
Erro:
SQL Error code = -303
conversion error from string ´ - ´
Incompatible column/host variable data type
Error Code: 249´. Process stopped. use step or run to continue.
estou usando o seguinte codigo no botão salvar
procedure TFrmClientes.BitBtnSalvarClick(Sender: TObject);
begin
BitBtnNovo.Enabled := true;
BitBtnExcluir.Enabled := true;
BitBtnConsultar.Enabled := true;
BitBtnEditar.Enabled := true;
BitBtnSalvar.Enabled := false;
BitBtnCancelar.Enabled := false;
try
DM_systlab.SQLConnection1.StartTransaction(DM_systlab.Transacao);
DM_systlab.SQLDataSet1.Close;
DM_systlab.SQLDataSet1.CommandType := ctQuery;
DM_systlab.SQLDataSet1.CommandText := ´ insert into clientes (nome, endereco,´ +
´bairro, cidade, estado, cep, data_nascimento, documento, telefone1, contato1)´ +
´values (:nom, :end, :bair, :cid, :est, :cep, :dtn, :doc, :tel, :cont)´;
DM_systlab.SQLDataSet1.ParamByName(´nom´).AsString := EditName.Text;
DM_systlab.SQLDataSet1.ParamByName(´end´).AsString := EditEnd.text;
DM_systlab.SQLDataSet1.ParamByName(´bair´).AsString := EditBairro.Text;
DM_systlab.SQLDataSet1.ParamByName(´cid´).AsString := EditCid.Text;
DM_systlab.SQLDataSet1.ParamByName(´est´).AsString := ComboBoxEst.Text;
DM_systlab.SQLDataSet1.ParamByName(´cep´).AsString := MaskCep.Text;
DM_systlab.SQLDataSet1.ParamByName(´dtn´).AsString := DateToStr(Data);
DM_systlab.SQLDataSet1.ParamByName(´doc´).AsString := EditDocumento.Text;
DM_systlab.SQLDataSet1.ParamByName(´tel´).AsString := MaskEditTelefone.Text;
DM_systlab.SQLDataSet1.ParamByName(´cont´).AsString := EditContato.Text;
DM_systlab.SQLDataSet1.ExecSQL;
DM_systlab.SQLConnection1.Commit(DM_systlab.Transacao);
except
on Exc :Exception do
begin
ShowMessage(´ Erro ao Salvar Cliente´ + Exc.Message);
DM_systlab.SQLConnection1.Rollback(DM_systlab.Transacao);
end;
end;
end;
será que alguem poderia me dar uma força???
ficaria muito grato
des de ja obrigado
Jeovanne
Curtidas 0
Respostas
Delphi32
03/12/2007
Como está definido o campo data_nascimento no seu banco? Date ou Varchar?
Se você modificar a SQL e não preencher o campo Data dá o erro também?
t+!
Se você modificar a SQL e não preencher o campo Data dá o erro também?
t+!
GOSTEI 0
Jeovanne
03/12/2007
o campo esta como date no banco
e se alterar o sql e salvar também da o mesmo erro
e se alterar o sql e salvar também da o mesmo erro
GOSTEI 0
Delphi32
03/12/2007
se removendo o campo data da SQL dá o mesmo erro então o erro não é na coluna da data. Tente ir removendo os campos até descobrir qual está gerando o erro. Acho que assim ficará mais fácil de detectar o problema.
t+!
t+!
GOSTEI 0
Gandalf.nho
03/12/2007
Passe a data para o parâmetro como data ao invés de string, isso evita problemas com conversões. Outra coisa, esse Data é uma variável?
GOSTEI 0
Jeovanne
03/12/2007
sim a Data é variavel
é de acordo com o cliente
é de acordo com o cliente
GOSTEI 0
Gandalf.nho
03/12/2007
Então, tente passar a data assim pro parâmetro (isso evita problemas com conversão) e veja se ajuda.
;
DM_systlab.SQLDataSet1.ParamByName(´dtn´).AsDateTime := Data
GOSTEI 0
Jeovanne
03/12/2007
cara continua o mesmo erro
não muda
não muda
GOSTEI 0
Daykas
03/12/2007
O delphi manda a data no padrão da linguagem do sistemam operacional. eis ai o seu erro.
GOSTEI 0