Fórum campo number #339739

02/04/2007

0

Olá!
Tenho um campo na minha tabela ´TempoProcSeleiro : Number(6,3)´
e não estou conseguindo gravar a informação... sempre diz que a informação q quero gravar é muito larga p o campo...
Estou usando o componente TCurrencyEdit, com a propriedade DisplayFormat= 00,000
e meu sql de gravação é:
qryGrava.SQL.Text := ´ Update DesenvolvimentoModelo set ´ +
´ AuxResp = ´ + QuotedStr(edtAuxResp.Text ) + ´ , ´ +
´ ProcessoReal = ´ + QuotedStr(edtProcesso.Text ) + ´ , ´ +
´ ObsProcesso = ´ + QuotedStr(memObs.Text ) + ´ , ´ +
´ DtProcesso = ´ + QuotedStr(DateToOracle(edtDtCadProcesso.Text)) + ´ , ´ +
´ TempoProcSeleiro = ´ + QuotedStr(edtTempoProcSeleiro.Text) + ´ , ´ +
´ TempoProcEnfiado = ´ + QuotedStr(edtTempoProcEnfiado.Text) +
´ Where cRefer = ´ + QuotedStr(edtcRefer.Text );

Sei q tem algo errado, mas não sei qual é o erro!!
Obrigada!


Daia

Daia

Responder

Posts

02/04/2007

Rjun

Pq vc não usa query parametrizada para fazer essa operação?


Responder

Gostei + 0

02/04/2007

Daia

como assim?? Nunca usei isso... poderia me explicar!!
Obrigada!


Responder

Gostei + 0

02/04/2007

Rjun

Essa sintaxe é baseado na tecnologia de acesso ADO. Não sei se você a está utilizando ou se está usando BDE ou DBExpress. Caso seja não seja ADO talvez tenha que mudar as linhas que ajustam os valores dos parâmetros.

Sugestão: Não fica enfiado código SQL no meio do código do seu aplicativo. Coloque esse código SQL dentro dos componentes do seu datamodule.

qryGrava.SQL.Text := ´ Update DesenvolvimentoModelo set ´ + 
  ´ AuxResp = :AuxResp, ProcessoReal = :ProcessoReal, ´ +
  ´ObsProcesso = :ObsProcesso, DtProcesso = :DtProcesso, ´ +
  ´TempoProcSeleiro = :TempoProcSeleiro, ´ +
  ´TempoProcEnfiado = :TempoProcEnfiado Where cRefer = :cRefer´;

qryGrava.Parameters.ParamByName(´AuxResp´).Value := edtAuxResp.Text;
qryGrava.Parameters.ParamByName(´ProcessoReal´).Value := edtProcesso.Text;
qryGrava.Parameters.ParamByName(´ObsProcesso´).Value := memObs.Text;
qryGrava.Parameters.ParamByName(´DtProcesso´).Value := DateToOracle(edtDtCadProcesso.Text));
qryGrava.Parameters.ParamByName(´TempoProcSeleiro´).Value := edtTempoProcSeleiro.Text;
qryGrava.Parameters.ParamByName(´TempoProcEnfiado´).Value := edtTempoProcEnfiado.Text;
qryGrava.Parameters.ParamByName(cRefer´).Value := edtcRefer.Text;



Responder

Gostei + 0

02/04/2007

Daia

não costumo fazer assim... uso BDE...
Mas sabe como resolver da minha maneira?


Responder

Gostei + 0

02/04/2007

Rjun

Tire esse QuotedStr.

´ TempoProcSeleiro = ´ + edtTempoProcSeleiro.Text



Responder

Gostei + 0

02/04/2007

Daia

Tirei o QuotedStr, mas continua dizendo q o valor q estou inserindo é muito largo para coluna...


Responder

Gostei + 0

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

Aceitar