|
Модераторы: LSD |
|
maxfox111 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Добрый день осваиваю Постгрес, через использование дельфи компонент ZEOSDB, и при попытке создания базы через использование ZSQLProcessor
вылетает ошибка. Ошибка на комментарий на русском COMMENT ON ROLE FMBZ_Fokin_A IS 'борисыч'; в скрипте. Если комментарий на английском то все замечательно работает. Может ли кто нибудь подсказать как программно добавлять комментарии на русском языке? вот фрагмент кода
вот скрипт при помощи которого пытаюсь создать базу.
|
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Какую ошибку возвращает?
В PostgreSQL нет кодировки UNICODE. Используй UTF8 |
|||
|
||||
maxfox111 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Попытаюсь заново, не убивайте сильно
Добрый день осваиваю Постгрес, через использование дельфи компонент ZEOSDB, и при попытке создания базы через использование ZSQLProcessor вылетает ошибка. Ошибка на попытку создания комментария на русском COMMENT ON ROLE FMBZ_userA IS 'борисыч';. (скрипты и код приведен ниже. Скрипты сохранены в кодировке UTF8) Действия: 1)как супер пользователь подключаюсь к постгресу через использование TZConnection 2)и пытаюсь выполнить свой скрипт через использование TZSQLProcessor 3)при выполнении строки кода FMBZ_ZSQLProcessor.Execute в дебагере можно видеть что в цикле for I := 0 to Pred(StatementCount) do на выполнении вызова Statement.ExecuteUpdatePrepared; происходит ошибка при попытке выполнить строку создания комментария. И пользователь не создается. Если же комментарий и весть остальной текст написан по английски то скрипт выполняется совершенно нормально. Эта ошибка происходит только в том случае если в "Региональных стандартах" в текущем языке программ не поддерживающих юникод установлен Английский (любой). Если же в этом пункте установлен Русский язык то данной ошибки при выполнении через компоненты ZEOSDB нет. Так же нет этой ошибки, если выполнять sql скрипты не через дельфи, а просто в среде через вызов cmd. ВОПРОСЫ: 1) можно ли как избежать этой ошибки? То есть существуют ли пути обхода этой "региональной ситуации"? 2) можно ли где то прочитать или просмотреть код, который бы позволял бы запустить скрипт на моей машине, а результат выполнения скрипта был бы на другой машине где стоит постгрес? ZSqlProcessor.pas фрагмент кода:
cmd запускалка для первого sql скрипта chcp 1251 SET PGPASSWORD=bars1234 "c:\Program Files\PostgreSQL\9.3\bin\psql.exe" -U postgres --no-password -f settings30.sql pause первый sql скрипт
cmd запускалка для второго sql скрипта chcp 1251 "c:\Program Files\PostgreSQL\9.3\bin\psql.exe" --dbname FMBZ_BaseA --username fmbz_usera -f settings31.sql pause второй sql скрипт
|
||||||
|
|||||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: нет Всего: 484 |
Ну это проблема с дельфи, а не постгресом. Тут налицо ошибка кодировки при конвертировании в utf8. Попробуй при запуске приложения выполнить функцию:
Но лучше будет перейти на юникодную версию (delphi 2009 или выше) |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PostgreSQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |