|
создание базы через ZEOSDB
|
|||
---|---|---|---|
#18+
Добрый день осваиваю Постгрес, через использование дельфи компонент ZEOSDB, и при попытке создания базы через использование ZSQLProcessor вылетает ошибка. Ошибка на комментарий на русском COMMENT ON ROLE FMBZ_Fokin_A IS 'борисыч'; в скрипте. Если комментарий на английском то все замечательно работает. Может ли кто нибудь подсказать как программно добавлять комментарии на русском языке? вот фрагмент кода Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
вот скрипт при помощи которого пытаюсь создать базу. [SRC PLSQL]----Creating Role SET client_encoding = 'UNICODE'; DROP ROLE IF EXISTS FMBZ_Fokin_A; CREATE ROLE FMBZ_Fokin_A WITH LOGIN PASSWORD 'FMBZ_Fokin_A' SUPERUSER CREATEDB CREATEROLE; UPDATE pg_authid SET rolcatupdate=false WHERE rolname='FMBZ_Fokin_A'; COMMENT ON ROLE FMBZ_Fokin_A IS 'борисыч'; CREATE DATABASE "FMBZ_Fokin_A" WITH OWNER=FMBZ_Fokin_A ENCODING='UNICODE' TABLESPACE = DEFAULT; COMMENT ON DATABASE "FMBZ_Fokin_A" IS 'фокин'; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 11:44 |
|
создание базы через ZEOSDB
|
|||
---|---|---|---|
#18+
maxfox111, Тут надо смотреть какую ошибку дает база. И в какой кодировке она инициализирована. Так как в нормальных условиях все работает: ***=# create role test; CREATE ROLE ***=# comment on role test is 'проверка'; COMMENT -- Maxim Boguk dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 16:03 |
|
создание базы через ZEOSDB
|
|||
---|---|---|---|
#18+
Добрый день осваиваю Постгрес, через использование дельфи компонент 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 фрагмент кода: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
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 скрипт Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
cmd запускалка для второго sql скрипта chcp 1251 "c:\Program Files\PostgreSQL\9.3\bin\psql.exe" --dbname FMBZ_BaseA --username fmbz_usera -f settings31.sql pause второй sql скрипт Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2018, 13:43 |
|
|
start [/forum/topic.php?fid=53&msg=39655570&tid=1995744]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 465ms |
0 / 0 |