![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.10.2011
Сообщений: 6
|
![]()
Доброе утро!
При формировании запроса SQL необходимо данные (вещественного типа) сравнивать с числом (вещественного типа). в первом запросе вытягиваю число с которым необходимо будет сравнивать.запоминаю его в переменную. во втором запросе происходит отбор в зависимости от этого числа. Как сделать так что бы вещественное число запоминалось с "." (для использования в щапросе) а не с ","? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
Объяви в своей программе, чтобы по умолчанию вещественное число разделялось точкой, вне зависимости от настроек Windows. Где нибудь в OnCreate
DecimalSeparator := '.'; Вот почитай про это http://www.delphibasics.ru/DecimalSeparator.php |
![]() |
![]() |
![]() |
#3 |
Регистрация: 25.10.2011
Сообщений: 6
|
![]()
Спасибо!! Совсем про этот момент забыла!
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 977
|
![]()
if Pos(',', Str1) > 0 then Str1[Pos(',', Str1)] := '.';
где str1 это число в текстовом формате. (тоесть в строке подразумевается всего 1 ",")
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]()
Илья: Есть более гуманные методы
StringReplace(',', '.', Str); Кажется такой формат, если нет - есть справка. А вообще верный ответ уже дали |
![]() |
![]() |
![]() |
#6 | |||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
![]() Лучшее решение - использовать TFormatSettings с фиксированными настройками и передавать его в функции вроде StrToFloat. Ещё лучше - вообще не использовать строковое формирование запроса. Это крайне плохая практика. Особенно для текстовых данных. Просто используйте параметризированный запрос - а всё остальное сделает за вас код поддержки. Цитата:
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|||
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]()
В вопросе пользователь не вводит число, а оно берётся из БД, да даже если и вводит, то при StrToFloat оно всё равно превратиться в тот формат который указан в DecimalSeparator.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
А я про что? В том-то и дело, что ты предлагаешь для решения локальной проблемы (интерфейс программа-БД) использовать глобальное решение (смена настроек профиля пользователя в программе).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 | ||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Если ты в своей программе меняешь разделитель "вообще", то это означает, что ты меняешь его не только для работы с БД, а вообще всюду - даже там, где это не требуется. Например, если в программе ("которая работает с БД") есть поле ввода какого-то числа (а если программа вставляет в БД какие-то числа, то даю 90% на то, что такое поле ввода будет и в интерфейсе программы), то это поле ввода будет использовать подменённый тобой разделитель - вопреки настройкам пользователя. Это - грубый плевок ему в лицо. Вот почему я указал, что разделитель нужно менять местно - только для необходимых операций: через TFormatSettings. Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |