Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменение региональных настроек Windows / 4 сообщений из 4, страница 1 из 1
15.08.2006, 08:44
    #33917938
ilgizm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение региональных настроек Windows
В Delphi есть глобальные переменные DecimalSeparator и ShortDateFormat, с помощью которых можно установить формат представления даты и разделитель между целой и дробной частями числа. Установленные параметры будут действовать только в рамках текущего приложения, не затрагивая региональных настроек Windows.
Есть ли подобный механизм в PowerBuilder (версия 9)?
...
Рейтинг: 0 / 0
15.08.2006, 09:40
    #33918043
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение региональных настроек Windows
да есть
можно указывать при подключении

Вот пример у меня:
Код: plaintext
1.
2.
3.
4.
//	Getting Desimal Separator From Registry
string ls_DecimalSeparator
RegistryGet( "HKEY_CURRENT_USER\Control Panel\International", "sDecimal", RegString!, ls_DecimalSeparator)
ls_DecimalSeparator = "'" + ls_DecimalSeparator + "'"
SQLCA.DBParm = lstr_connectparm.s_DBParm + "DecimalSeparator = " + ls_DecimalSeparator
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
19.02.2008, 12:11
    #35141095
Изменение региональных настроек Windows
Добрый день. И Все-таки, камрады, как изменить параметры региональных настроек для текущего приложения? То, что посоветовал Pasha, это всего лишь параметр присоединения к СУБД. А, к примеру, String(1.1) даст '1,1' если разделитель ','
Спасибо.
...
Рейтинг: 0 / 0
19.02.2008, 14:24
    #35141574
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение региональных настроек Windows
Приложение не должно менять региональные настройки или требовать от пользователя это сделать.
Надо писать программу так чтобы она одинаково работала при любых настройках.

Например вместо
Код: plaintext
String( 1 . 1 )
писать
Код: plaintext
to_string( 1 . 1 )
которая всегда возвращает в едином формате (с ".", а не ",")

Я использую две таких ф-й для приведения значений в литералы пригодные для передачи в DW expression и для передачи в динамический SQL:
to_pb(any data)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
String ls_data
n_cst_string	s

Choose Case Lower(ClassName(data))
	Case "string"
		ls_data = s.of_GlobalReplace(data,'~~', '~~~~')
		ls_data = s.of_GlobalReplace(data,'"', '~~"')
		ls_data = "~"" + ls_data + "~""
	Case "datetime"
		//DateTime( 2004 - 12 - 30 ,  15 : 30 : 40 )
		ls_data = "DateTime(" + String(data,"yyyy-mm-dd") + ","+String(data,"hh:mm:ss")+")"
	Case "date"
		ls_data = String(data,"yyyy-mm-dd")
	Case "decimal"
		ls_data = String(data)
		ls_data = s.of_GlobalReplace(ls_data,",", ".")
	Case "time"
		// 15 : 30 : 40 
		ls_data = String(data,"hh:mm:ss")
	Case Else
			ls_data = String(data)
End Choose

Return ls_data

и аналогичная - to_ora, только там другой синтаксис для преобразования дат, строк.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменение региональных настроек Windows / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]