campo number
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!
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
Curtidas 0
Respostas
Rjun
02/04/2007
Pq vc não usa query parametrizada para fazer essa operação?
GOSTEI 0
Daia
02/04/2007
como assim?? Nunca usei isso... poderia me explicar!!
Obrigada!
Obrigada!
GOSTEI 0
Rjun
02/04/2007
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.
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;
GOSTEI 0
Daia
02/04/2007
não costumo fazer assim... uso BDE...
Mas sabe como resolver da minha maneira?
Mas sabe como resolver da minha maneira?
GOSTEI 0
Rjun
02/04/2007
Tire esse QuotedStr.
´ TempoProcSeleiro = ´ + edtTempoProcSeleiro.Text
GOSTEI 0
Daia
02/04/2007
Tirei o QuotedStr, mas continua dizendo q o valor q estou inserindo é muito largo para coluna...
GOSTEI 0