Страница: 1 | 2 |
Вопрос: Как получить разделитель десятичных разрядов
Добавлено: 12.05.06 15:02
Автор вопроса: student-uni
Как получить какои знак используется как разделитель десятичных разрядов B WIN XP
VS2003
(напр 2,35 - запятая или 2.35 - точка )
Спасибо
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #1
Добавлено: 12.05.06 15:19
 im nfi As NumberFormatInfo = New CultureInfo("de-DE", False).NumberFormat
MsgBox(nfi.NumberDecimalSeparator.ToString())
nfi.NumberDecimalSeparator = "."
MsgBox(nfi.NumberDecimalSeparator.ToString())
Номер ответа: 2
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #2
Добавлено: 12.05.06 15:23
так можно определить , а как его программно переставить ?
Номер ответа: 3
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #3
Добавлено: 12.05.06 15:31
Сие свойство можно не только читать, но и устанавливать
Номер ответа: 4
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #4
Добавлено: 12.05.06 17:40
установить то можно, но если ты посмотришь потом в нац - настроиках там ничего не изменится.
Номер ответа: 5
Автор ответа:
mich
Вопросов: 0
Ответов: 2
Web-сайт:
Профиль | | #5
Добавлено: 12.05.06 21:27
поищи настройку в реестре.
Номер ответа: 6
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #6
Добавлено: 13.05.06 10:15
HKEY_CURRENT_USER\Control Panel\International\sDecimal
Номер ответа: 7
Автор ответа:
mich
Вопросов: 0
Ответов: 2
Web-сайт:
Профиль | | #7
Добавлено: 13.05.06 12:00
А зачем тебе програмно менять эту настройку?
Номер ответа: 8
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #8
Добавлено: 13.05.06 12:24
astoro - спасибо попробую
2 mich - если она стоит на запятую - у меня идёт ошибка в SQL-запросе с где присутствуют дробные числа. SQL-сервер воспринимает запятую как разделитель между значениями полей. Например
INSERT INTO ARTUKUL, PRICE VALUE (WATER, 2,35)
он "думает" , что я дал ему два поля и три значения.
Другое дело
INSERT INTO ARTUKUL, PRICE VALUE (WATER, 2.35)
тут всё окей.
Поскольку заставлять юзера менять ручками не совсем корректно, приходится изменять её программно.
Я ещё не проверил совет astoro, но когда я менял ручками, заметил следующую фигню,
настройка разрядов не меняется в моей программе до тех пор пока я не выйду и не зайду в неё снова!!!
То есть типа прога моя считала эту настройку при загрузке и живёт с этим дальше, хотя я настройку изменил уже руками.
Закрываю прогу открываю снова - изменена.
Такое вот.
Поетому если метод astoro работает - я это при инсталляции просто сменю. Есть конечно риск что у юзверя другие проги материться начнут.
Номер ответа: 9
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #9
Добавлено: 13.05.06 13:03
ну... приличные проги матерится обязательно начнут.
лучше при передаче данных в запрос изменить запятые на точки. например replace(cstr(MyVarFloating),",","."
Номер ответа: 10
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #10
Добавлено: 13.05.06 14:08
Нда...
Из всех вариантов заставить работать SQL был выбран самый ______________ (нужное вписать по настроению).
student-uni, дай мне доступ к твоей проге, я через неё запросто грохну твою базу.
Про параметрические запросы слышал ли автор вопроса что-нибудь?
Всё наоборот. Как раз за тихое изменение региональных настроек ручки надо отрывать вместе с ножками.
Номер ответа: 11
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #11
Добавлено: 13.05.06 14:19
GSerg, 5 баллов! )))
Блин,этож надо было до такого додуматься!
Нафиг надо SQL-запрос в поядок приводить, проще региональные настройки изменить!!
В юмор!!! адназначно!! ))))
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 13.05.06 17:07
Номер ответа: 13
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #13
Добавлено: 13.05.06 21:21
Погодите в Юмор. Это ещё не всё.
2 GSerg -
Про параметрические запросы слышал ли автор вопроса что-нибудь?
Передать значение через параметр ?
Я не знаю заранее как будет выглядеть запрос
и сколько мне потребуется параметров.
Дело в том, что я заполняю абсолютно свежесозданную пустую базу в SQL данными
хранящимися в БД Аксесс и делаю это следующим образом (держите лифчики)
1. считываю список имен таблиц в массив
2. По очереди открываю каждую таблицу
2.1 Создаю массив имен полей
3. Заливаю содержимое в Датасет
4. Беру строку из датасета
5. Клею в цикле в текстовую переменную в SQL-запрос - имена полей отдельно,
содержимое - отдельно:
INSERT INTO +
ARTUKUL + PRICE + итд...
+ VALUE +
""+ "WATER" + "," + 2.35+ итд... + ""
6. Выполняю запрос
7. Беру следующую строку из датасет.
И так до конца дата сета.
Потом другую таблицу.
Таблицы имеют разное число столбцов. Я не знаю сколько может потребоваться параметров, может два , а может сто.
Я спрашивал здесь как это по-умному сделать, но никто не ответил. Пришлось так вот.
(Вот теперь можно в Юмор
дай мне доступ к твоей проге, я через неё запросто грохну твою базу.
(Ломать не строить.) Это каким же образом ?
2 astoro
лучше при передаче данных в запрос изменить запятые на точки. например replace(cstr(MyVarFloating),",","."
То есть я преобразую 2,35 в строку и меняю запятую на точку (2.35) ?
Номер ответа: 14
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #14
Добавлено: 14.05.06 05:22
хранящимися в БД Аксесс и делаю это следующим образом
В принципе, я думаю стоит дать автору вопроса ссылку типа http://www.sysadmins.ru/rtfm/ask_howto.htm
Ответ: Если вы хотите сделать Y, надо так и спрашивать, не предполагая заранее использование метода, который может вовсе не подходить. Вопросы такого вида часто задают те, кто не просто ничего не знает об X, но сбит с толку решаемой проблемой Y и слишком сконцентрирован на деталях своей конкретной ситуации. Обычно лучше игнорировать таких людей, пока они не сформулируют свою проблему лучше.
Ввиду вышесказанного, автору вопроса рекомендуется переформулировать вопрос так, чтобы в нём содержалось исключительно описание настоящей конечной цели. Тогда посоветуем.
(Ломать не строить.) Это каким же образом ?
Поищи в гугле простую русскую фразу SQL injection.
Номер ответа: 15
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #15
Добавлено: 14.05.06 12:56
Вообще для перекидывания данных между БД лучше не париться, а заюзать
Import&Export Wizard из комплекта SQL Server Client Tools.
Я именно им пользуюсь, если надо перелить информацию между базами
SQL Server или из Access в SQL Server.