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

Вот пример у меня:
Код: 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
Период между сообщениями больше года.
Изменение региональных настроек Windows
    #35141095
Добрый день. И Все-таки, камрады, как изменить параметры региональных настроек для текущего приложения? То, что посоветовал Pasha, это всего лишь параметр присоединения к СУБД. А, к примеру, String(1.1) даст '1,1' если разделитель ','
Спасибо.
...
Рейтинг: 0 / 0
Изменение региональных настроек Windows
    #35141574
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложение не должно менять региональные настройки или требовать от пользователя это сделать.
Надо писать программу так чтобы она одинаково работала при любых настройках.

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


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