Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Проблема при переводе float в string |
Автор: Кнопа 6.2.2007, 17:42 | ||||||
Всем привет! При формировании запроса на вставку записи в базу, столкнулась с проблемой разделителя целой и дробной части числа. В список Values запроса Insert нужно включить два значения, которые хранятся в переменных типа double. Когда я преобразую их (явно или неявно) к типу String, разделителем целой и дробной части стоновится запятая, а не точка. Это приводит к формированию неправильного запроса. например:
При этом, результирующий запрос выглядит так:
Варианты:
дают тоже самое ![]() Как мне преобразовать числа в строку, чтобы разделителем была точка? (крайний вариант найти символ ',' и заменить на '.' не привлекает ![]() |
Автор: Кнопа 6.2.2007, 17:56 |
СУБД MS SQL, там вроде в кавычки строчные поля заключаются, а у меня поля числовые. Но надо попробовать, спасибо. |
Автор: _hunter 6.2.2007, 18:00 |
для этого (да и вообще) рекомендуется использовать параметры. поэтому среду разработки указать не помешалобы... |
Автор: Rodman 6.2.2007, 18:30 | ||
ну если есть необходимость с парамтрами, то
|
Автор: Кнопа 7.2.2007, 10:26 | ||||
Rodman, Кавычки не проходят, так как поля типа float, а не varchar/char. Сервер отказывается исполнять такой инсерт.
Во-первых, не узнает компилятор такой функции Float(), а во-вторых, даже если явно приводить тип: ... values ('"+(double)a1+... то во время формирования строки, компилятор преобразовывает эти переменные к типу строка (насколько я понимаю), и эффект тот же (разделитель - запятая).
Так-то правильно, но я не знаю изначально значений а1, а2 - они вводятся пользователем. _hunter, Компилятор: BORLAND C++ BUILDER 6.0 Параметры не очень хотелось бы использовать, так как хотела использвать один TADOQuery для всех запросов вставки/удаления... Но если другого варианта нет, то прийдется использовать параметры... |
Автор: Rodman 7.2.2007, 11:59 | ||
Кнопа, допустим данные вводятся в эдиты, то
что на такое вариант отвечает??? |
Автор: Кнопа 7.2.2007, 12:03 | ||
Rodman, Большое спасибо, с параметрами все работает. Просто не хотелось использовать параметры, т.к.
А по-другому никак не выходит. ![]() |
Автор: Rodman 7.2.2007, 12:36 | ||
попробуй в самом MS SQL ручками написать запрос
если не прокатит - попробуй: - с кавычками поэкспериментируй - с запятыми... - т.д. но найди вариант который пракатит, и выложи... попробуем его привести в нормальный вид из борланда... |
Автор: _hunter 7.2.2007, 13:05 | ||
а чем тут мешают параметры? |
Автор: Кнопа 7.2.2007, 14:24 |
Rodman, Уже пробовала, работает. И в борланде работает с параметрами так, как ты написал. Все ра-бо-та-ет! Нужно было использовать параметры. _hunter, Да вроде ничем, если хорошо подумать. ![]() |
Автор: Rodman 7.2.2007, 15:25 | ||
я понял что работает... хотелось бы довести до конца задание... т.е. - без параметров... если тебе реально такое необходимо - то попробуй найти результат в моей прошлой http://forum.vingrad.ru/topic-135689.html# |
Автор: JackYF 8.2.2007, 18:07 |
А что мешает в полученных String'ах перед передачей в функцию заменять "," на "."? |