Fórum Inserir data no sql com delphi #4515
14/04/2009
0
proc_CadMotoqueiro.Params[1].AsString := edtMotoqueiro.Text;
proc_CadMotoqueiro.Params[2].AsInteger := StrToInt(edtidTurno.Text);
proc_CadMotoqueiro.Params[3].AsInteger := StrToInt(edtidlogradouro.Text);
proc_CadMotoqueiro.Params[4].AsString := edtNumero.Text;
proc_CadMotoqueiro.Params[5].AsString := edtComplemento.Text;
proc_CadMotoqueiro.Params[6].AsInteger := StrToInt(edtidBairro.Text);
proc_CadMotoqueiro.Params[7].AsString := edtCep.Text;
proc_CadMotoqueiro.Params[8].AsInteger := StrToInt(edtidcidade.Text);
proc_CadMotoqueiro.Params[9].AsString := edtLocalNascimento.Text;
proc_CadMotoqueiro.Params[10].AsString := edtUF.Text;
proc_CadMotoqueiro.Params[11].AsString := edtTelefone.Text;
proc_CadMotoqueiro.Params[12].AsString := FormatDateTime('yyyy/mm/dd ,dtpDataNascimento.Date);
proc_CadMotoqueiro.Params[13].AsString := edtpai.Text;
proc_CadMotoqueiro.Params[14].AsString := edtmae.Text;
proc_CadMotoqueiro.Params[15].AsString := edtCategoriaCnh.Text;
proc_CadMotoqueiro.Params[16].AsInteger := 1; //id do usuario
proc_CadMotoqueiro.Params[17].AsString := edtEmail.Text;
proc_CadMotoqueiro.Params[18].AsInteger := StrToInt(edtLimiteDebito.Text);
proc_CadMotoqueiro.Params[19].AsString := edtCnh.Text;
// proc_CadMotoqueiro.Params[20].AsDateTime := StrToDateTime(edtValidadeCnh.Text);
proc_CadMotoqueiro.Params[21].AsString := edtColete.Text;
proc_CadMotoqueiro.Params[22].AsString := edtCelular.Text;
proc_CadMotoqueiro.Params[23].AsInteger := StrToInt(edtidEstadocivil.Text);
proc_CadMotoqueiro.Params[24].asstring := edtPlaca.Text;
proc_CadMotoqueiro.Params[25].AsInteger := StrToInt(edtidCategoriaDiaria.Text);
proc_CadMotoqueiro.Params[26].AsInteger := StrToInt(edtidmodelo.Text);
proc_CadMotoqueiro.Params[27].AsInteger := StrToInt(edtidcor.Text);
proc_CadMotoqueiro.Params[28].AsInteger := StrToInt(edtidConservacao.Text);
proc_CadMotoqueiro.Params[29].AsInteger := StrToInt(edtiddocumentos.Text);
proc_CadMotoqueiro.Params[30].AsInteger := StrToInt(edtIdveiculoMunicipio.Text);
proc_CadMotoqueiro.Params[31].AsInteger := StrToInt(edtidlocalnascimento.Text);
proc_CadMotoqueiro.Params[32].AsString := edtCPF.Text;
proc_CadMotoqueiro.Params[33].AsString := edtIdentidade.Text;
proc_CadMotoqueiro.Params[34].AsString := edtrgEmissor.Text;
// proc_CadMotoqueiro.Params[35].AsDateTime := StrToDateTime(edtrgDataexpedicao.Text);
proc_CadMotoqueiro.Params[36].AsString := edtAno.Text;
proc_CadMotoqueiro.ExecProc;
ShowMessage('Motoqueiro cadastrado com sucesso !'); O erro aparece sempre no componente que precisa inserir uma data no banco ex data de nascimento e etc Qual o melhor componente para se usar nesse caso ? Vc poderia montar um exemplo para mim ? abs
Carlos Faria
Curtir tópico
+ 0Posts
14/04/2009
Wesley Yamazack
Existe diversas formas de se inserir datas no Delphi.
Ex :
1 - proc_CadMotoqueiro.Params[12].AsDate := dtpDataNascimento.Date;
2 - proc_CadMotoqueiro.Params[12].AsString := FormatDateTime('yyyy/mm/dd' ,dtpDataNascimento.Date); ( este aqui é onde esta teu problema, você não colocou o ultimo " ' " >>> 'yyyy/mm/dd'
Mas antes disso, qual é o banco de dados ? Qual é o formato de data do mesmo?
dd/mm/yyyy ? yyyy-mm-dd? Você no FormatDateTime tem que passar o formato que seu banco suporta.
Quanto ao melhor componente, o bom seria você usar o DateTimePicker, acho que você esta usando o mesmo, já!
Att,
Wesley Y
Gostei + 0
15/04/2009
Carlos Faria
Gostei + 0
15/04/2009
Wesley Yamazack
Vamos lá.
1 - Coloque um maskedit no teu formulário, na propriedade EdtMask coloque o seguinte . !99/99/9999;1;_
2 - Seguinte agora, na hora de salvar, vai ficar meio complexo mas é tranquilo;
- proc_CadMotoqueiro.Params[12].AsString := Copy(MaskEdit1.Text, 7,4) + '/' + Copy(MaskEdit1.Text, 4,2) + '/' + Copy(MaskEdit1.Text, 1,2);
3 - Motivo pelo qual estou usando o Copy, você na hora de digitar os dados geralmente digitamos, DD/MM/YYYY, para os usuários fica mais facil, agora no nosso programa nos devemos tratar para poder mandar para nosso banco de dados, usando o Copy(yyyy), Copy(mm), Copy(DD)
4 - Exemplo , se informarmos no MaskEdit 15/04/2009, o que será gravado no banco será 2009/04/15.
Espero que ajude.
Att,
Wesley Y
Gostei + 0
15/04/2009
Carlos Faria
Gostei + 0
15/04/2009
Wesley Yamazack
Vamos primeiro por partes.
1 - Mude para datetime no lugar de timestamp no SQLServer
2 - Params[12].Value := StrToDatetime(MaskEdt1.text)
Att,
Wesley Y
Gostei + 0
15/04/2009
Carlos Faria
Gostei + 0
15/04/2009
Wesley Yamazack
Não é como dizem por ai "se compilou funcionou, rsrsr", to brincando mas é isso mesmo, esta certinho.
Forte abraço amigo, espero poder ajudar em outros chamados.
Att,
Wesley Y
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)