Código
var
valor1, valor2 : string;
begin
valor1 := cds.Fields[6].AsString;
valor2 := cds.Fields[7].AsString;
Insert('.',Valor1,Pos(',',cds.Fields[6].AsString));
Insert('.',Valor2,Pos(',',cds.Fields[7].AsString));
Delete(valor1,pos(',',cds.Fields[6].AsString) + 1,1);
Delete(valor2,pos(',',cds.Fields[7].AsString) + 1,1);
qrydados.Close;
qrydados.SQL.Clear;
qrydados.SQL.Add('UPDATE ' + EsquemaTabela + ' SET ' +
'"' + cds.Fields[0].FieldName + '" = ''' + DateToStr(Date) + ''',' +
'"' + cds.Fields[1].FieldName + '" = ''' + TimeToStr(Time) + ''',' +
'"' + cds.Fields[2].FieldName + '" = ''' + cds.Fields[2].AsString + ''',' +
'"' + cds.Fields[4].FieldName + '" = ''' + cds.Fields[4].AsString + ''',' +
'"' + cds.Fields[5].FieldName + '" = ''' + cds.Fields[5].AsString + ''',' +
'"' + cds.Fields[6].FieldName + '" = ''' + valor1 + ''',' +
'"' + cds.Fields[7].FieldName + '" = ''' + valor2 + ''',' +
'"' + cds.Fields[8].FieldName + '" = ''' + cds.Fields[8].AsString + ''',' +
'"' + cds.Fields[9].FieldName + '" = ''' + cds.Fields[9].AsString + '''' +
' WHERE "' + pkcampo + '" = ' + '''' + cds.Fields[idxchave].AsString + ''';');
qrydados.ExecSQL;
Criei dois campos Numeric(9,2) no Postgresql 8.3.
No formulário do Delphi 7, dava erro ao grava-lo. Então, a rotina acima substitui a vírgula por ponto - desaparecendo, dessa forma, o erro.
Observação: No ClientDataSet(cds) a propriedade do campo DisplayFormat = ,0.00;,0.00
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009