Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подменить любой разделитель на точку [D7, XP]


Сергей ©   (2013-03-22 16:47:00) 

Всем привет.
Работаю с дата сетом. пытаюсь занести значение.
F:TField
F.AsVariant:=nv;
В региональних настройках стоит разделитель "," а в базе всегда ".", поэтому появляется ошибка приведения типов. Можно ли как то настроить датасет на точку, без изменения региональных настроек?


Podgoretsky   (2013-03-23 20:48:00) [1]

И именно ее надо использовать, многопоточна.


Jeer   (2013-03-23 17:00:00) [2]

Понятно..
Дружба с TFormatSettings так и не освоена.


O'ShinW   (2013-03-23 00:02:00) [3]

как-то присылался нам текстовый файл, который делали, похоже, ногами,
и каждый раз числа были по-разному, то . то ,
У нас тоже, то с одного компа обрабатывают, то с другого (то . то ,)
Сделал аля
for CH in [зпт, точка ]
 sVal := StringReplace(sVal, CH, DecimalSeparator, [флаг] );
ну и nVal := StrToFloat( sVal)
и так же с датами, там тоже какая-то заморочка была


Smile   (2013-03-22 17:45:00) [4]

> Плохиш ©   (22.03.13 17:39) [6]

Да :)


Smile   (2013-03-22 17:44:00) [5]

> Плохиш ©   (22.03.13 17:39) [6]

Да :)


Плохиш   (2013-03-22 17:39:00) [6]


> Не забыть вернуть "на место! при выходе из программы

1. Зачем?
2. В приведённом коде, нет никакой гарантии, что при последующем выполнении программы DecimalSeparator всё ещё не изменился на системный.


Плохиш   (2013-03-22 17:39:00) [7]


> Не забыть вернуть "на место! при выходе из программы

1. Зачем?
2. В приведённом коде, нет никакой гарантии, что при последующем выполнении программы DecimalSeparator всё ещё не изменился на системный.


Smile   (2013-03-22 17:34:00) [8]

Ну, например:
procedure TForm1.FormCreate(Sender: TObject);
begin
DecimalSeparator:= '.';
end;

Не забыть вернуть "на место! при выходе из программы
:)


Плохиш   (2013-03-22 17:28:00) [9]


> В региональних настройках стоит разделитель "," а в базе
> всегда "."

В базе нет даже такого понятия "разделитель".


Игорь Шевченко   (2013-03-22 17:18:00) [10]

SysUtils.DecimalSeparator влияет только на твоей приложение


Ega23   (2013-03-22 17:04:00) [11]


> а в базе всегда "."


Ты хранишь числа в строках?
Оригинально.


Inovet   (2013-03-22 16:51:00) [12]

У тебя в программе что-то не так.


Наверх

Титульная страница Поиск, карта сайта Написать письмо