Could nt perform the edit because another user changed the record

Delphi

06/01/2012

Aqui no serviço contém um sistema em Delphi 5, utilizando o banco de dados SQL Server 2008, onde utiliza os componentes TTable, TDBEdit, TStoredProcedure, entre outros do mesmo estilo do TDBEdit. Em algumas máquinas quando vai alterar um registro aparece a seguinte mensagem de erro:

Could nt perform the edit because another user changed the record

Uma coisa que pude perceber é que essas máquinas quando vai alterar os registros, contém campos do tipo Money e está passando o separador decimal diferente, se tem que passar . (ponto final) passa a , (vírgula), com isso o objeto TTable monta o script de UPDATE que pegamos no PROFILE, contendo os filtros todos os campos que não foram alterados, e no SET somente os alterados, e no filtro contém o valor com o separador decimal trocado, creio que seja esse o erro. A configuração regional está tudo certo, a configuração do servidor está tudo correto, tem mais algum lugar que pode verificar a configuração do separador de milhar e decimal.
Bruno Batista

Bruno Batista

Curtidas 0

Respostas

Anizair Lopes

Anizair Lopes

06/01/2012

Isso é problema com as configaurações regionais, mas como você já falou que as configurações regionais estão todas configuradas corretamente, então a solução é você configurar as configurações no seu próprio sistema, ou seja, não depender mais do sistema operacional abaixo segue um pedaço de codigo que pode lhe ajudar
var
fs : TFormatSettings;
float : double;
myValueAsText : String;
begin
GetLocaleFormatSettings(0,fs);
fs.Decimalseparator := ,;
myValueAsText := 0,0039;
float := StrToFloat(MyValueAsText,fs);
end;
GOSTEI 0
POSTAR