Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aprendizporumavida

[Resolvido] Data como Parâmetro

Recommended Posts

Bom dia pessoal, estou usando esta quey para uma simples inserção no banco, mas quando executo, ela me retorna o erro

invalid precison value.

pois o problema é o ultimo parâmetro (XDT_VENCIMENTO ) pois se retiro ele do script a query é executada com sucesso,

se coloco me retorna o erro.

 

with ADOQuery1 do

begin

sql.Clear;

sql.Add(' Insert into TESTE ');

sql.Add(' (XCD_INT_VENDA, XCD_INT_PLANO_PAG, XCD_INT_FORMA_REC, XNUMERO_DOCUMENTO, XDT_ENTRADA )');

sql.Add(' values :XCD_INT_VENDA, :XCD_INT_PLANO_PAG, :XCD_INT_FORMA_REC, :XNUMERO_DOCUMENTO, :XDT_VENCIMENTO )');

 

Parameters.ParamByName('XCD_INT_VENDA').Value := cVendas.qryVendasEdit.fieldByName('XCD_INT_VENDA').AsInteger;

Parameters.ParamByName('XCD_INT_PLANO_PAG').Value := qryContasReceberEdit.fieldByName('XCD_INT_PLANO_PAG').AsInteger;

Parameters.ParamByName('XCD_INT_FORMA_REC').Value := qryContasReceberEdit.fieldByName('XCD_INT_FORMA_REC').AsInteger;

Parameters.ParamByName('XNUMERO_DOCUMENTO').Value := qryContasReceberEdit.fieldByName('XNUMERO_DOCUMENTO').AsInteger;

Parameters.ParamByName('XDT_VENCIMENTO').Value := FormatdateTime('yyyy"-"mm"-"dd',StrToDate(edtDtVencimento.Text));

ExecSQL;

end;

 

Já tentei de várias formas formatar esta data mas continua o erro, se alguem puder me dar um help.

 

Obrigado desde já pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

FormatdateTime('yyyy-mm-dd',StrToDate(edtDtVencimento.Text));

FormatdateTime('yyyy"/"mm"/"dd',StrToDate(edtDtVencimento.Text));

FormatdateTime('yyyy"/"mm"/"dd tt',StrToDate(edtDtVencimento.Text));

FormatdateTime('yyyy"-"mm"-"dd',StrToDate(edtDtVencimento.Text));

FormatdateTime('dd"/"mm"/"yyyy',StrToDate(edtDtVencimento.Text));

FormatdateTime('dd"-"mm"-"yyyy',StrToDate(edtDtVencimento.Text));

 

esses são os formatos que já tentei, mas até agora o mesmo erro, invalid precision value.

 

Mas obrigado pela dica. se souber uma forma diferente que eu possa fazer..

 

Desde já meu muito obrigado.

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

usei da seguinte forma e funcionou.

 

 

with ADOQuery1 do

begin

sql.Clear;

sql.Add(' Insert into TESTE ');

sql.Add(' (XCD_INT_VENDA, XCD_INT_PLANO_PAG, XCD_INT_FORMA_REC, XNUMERO_DOCUMENTO, XDT_VENCIMENTO )');

sql.Add(' values :XCD_INT_VENDA, :XCD_INT_PLANO_PAG, :XCD_INT_FORMA_REC, :XNUMERO_DOCUMENTO, ''' + FormatDateTime('yyyy"-"mm"-"dd',StrToDate(edtDtVencimento.Text)) + ''' )');

 

Parameters.ParamByName('XCD_INT_VENDA').Value := cVendas.qryVendasEdit.fieldByName('XCD_INT_VENDA').AsInteger;

Parameters.ParamByName('XCD_INT_PLANO_PAG').Value := qryContasReceberEdit.fieldByName('XCD_INT_PLANO_PAG').AsInteger;

Parameters.ParamByName('XCD_INT_FORMA_REC').Value := qryContasReceberEdit.fieldByName('XCD_INT_FORMA_REC').AsInteger;

Parameters.ParamByName('XNUMERO_DOCUMENTO').Value := qryContasReceberEdit.fieldByName('XNUMERO_DOCUMENTO').AsInteger;

//Parameters.ParamByName('XDT_VENCIMENTO').Value := FormatdateTime('yyyy"-"mm"-"dd',StrToDate(edtDtVencimento.Text));

ExecSQL;

end;

 

ou seja informando direto ele aceitou, eu consigo jogar esta linha

 

''' + FormatDateTime('yyyy"-"mm"-"dd',StrToDate(edtDtVencimento.Text)) + '''

 

aí em baixo no ultimo parametro onde esta comentado ?

 

obrigado.

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Marcio..

 

mas é justamente nesta linha que estou apanhando, como posso fazer para jogá-la atribuida ao parâmetro, estou apanhando acho que para as aspas.

 

obrigado.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Márcio, testei esta metodologia utilizando o SQL server e funcionou ok, mas no banco que utilizo atualmente..

 

 

vixi nem com reza brava.

 

mas obrigado mesmo, vou modificar a metodologia que estou trabalhando.

 

Abs.

 

Mais uma vez, obrigado mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.