|
|
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
У меня опять вопрос по Oracle . Имеем: PowerBuilder 10.5.1 Build 6565 Oracle 10g Соединение с базой идет через драйвер Oracle in OraHome92, version 9.02.00.00. Настройки для ODBC оставлены такими, какими они есть по умолчанию. Database Profiles в PowerBuilder : // Profile My_Test SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=ODBC_TEST;UID=USERTEST;PWD=[EQDFV',PBCatalogOwner='USERTEST'" Вот законектился к нашему новому серверу. Заметил, что при создании DataWindow возникает вот что: Если поле в базе varchar2(50) , то данное поле создается в DataWindow , как char(150) . Для char(1) - char(3) С чем может быть связано увеличение длины стринговых полей ровно в три раза? Видимо, с кодировкой базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 18:22 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
я так думаю, это значит что ODBC возвращает char 150. ..а галочка UTF8 не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 22:33 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Dmitry...а галочка UTF8 не помогает? Что за галку ты имеешь ввиду? На вкладках, связанных с настройками источника ODBC, такой галки нет. Если речь идет про Database Profiles , то вкладка EAServer/COM+ , здесь явно не при делах. Есть, конечно, UTF8 database parameter , которую можно выставить через SQLCA.DBParm = "UTF8=1" , но судя по Help -у, эта опция применима только к: Код: plaintext 1. Может, я тебя не так понял? Поясни свою мысль. Кстате, а как можно проверить, что у оракловой базы действительно стоит юникодная кодировка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 10:06 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
... да. я о database profiles/ вот и прочитал что это только для sybase :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 10:35 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Black SavageС чем может быть связано увеличение длины стринговых полей ровно в три раза? Видимо, с кодировкой базы? Может быть и в 4 раза: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:17 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Denis PopovВидать, длину поля PowerBuilder определяет из DATA_LENGTH, а не из CHAR_LENGTH.Тогда уж, не эхотаг, а ODBC драйвер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:38 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
PL99Тогда уж, не эхотаг, а ODBC драйвер. Black SavageЕсли поле в базе varchar2(50), то данное поле создается в DataWindow , как char(150). Для char(1) - char(3) Всё-таки эхотаг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:42 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
У меня вот что получилось: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. При селекте из уже сужествующей таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:42 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Сорри, за плохое форматирование. Да, похоже, дело в кодировке базы или, как написал PL99 , в ODBC драйвере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:44 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
To Denis Popov А можно как-то это исправить? Дайте совет, только нужны очень серьезные аргументы, чтобы подкрутить базу, желательно подкрепленные из авторитетных источников на аглицком языке, а то меня просто нах пошлют. Конечно, можно и так, как сейчас, разрабатывать DataWindow , но уж больно не хорошо это. Раньше со старой базой (тоже Oracle десятка и тот же драйвер) таких проблем не было... To PL99 У меня тоже была мысль на драйвер. По идеи, драйвер то должен быть от десятки, а не от девятки. Может в этом дело? Хотелось бы тоже развить это направление в решении вопроса, просто так тоже никто драйвер менять не даст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 11:53 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Black Savage To Denis Popov А можно как-то это исправить? Дайте совет, только нужны очень серьезные аргументы, чтобы подкрутить базу, желательно подкрепленные из авторитетных источников на аглицком языке, а то меня просто нах пошлют. Думаю, изменить данные в поле DATA_LENGTH, если база создана в юникоде, не получится. Остается решить, нужно ли использовать юникод в полях CHAR и VARCHAR2, для этого читать документацию (сайт требует бесплатной регистрации): Oracle® Database Globalization Support Guide 10g Release 2 (10.2) 2 Choosing a Character Set http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm Обдумайте ответы на вопросы под Choosing an Oracle Database Character Set , имхо интересно было бы узнать, например: How well does the application handle the character set? What are the performance implications of the character set? и остальное тоже. Black SavageРаньше со старой базой (тоже Oracle десятка и тот же драйвер) таких проблем не было... Видать, старая база была создана не в юникодной кодировке. Заметь, что даже если кодировка базы не юникод, то наряду с типами CHAR, VARCHAR2 и т.п. есть еще типы NCHAR, NVARCHAR2 и т.д, позволяющие хранить данные различных языком. Тип кодировки для этих полей также определяется при создании БД и виден в NLS_DATABASE_PARAMETERS через параметр NLS_NCHAR_CHARACTERSET. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:20 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
To Denis Popov Спасибо, придется навоять соответствующее письмо омерикосам, вероятнее всего, пошлют нах :(( А что можно сказать по поводу влияния ODBC драйвера? Может, все-таки это он так себя ведет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:40 |
|
||
|
Oracle again
|
|||
|---|---|---|---|
|
#18+
Black SavageА что можно сказать по поводу влияния ODBC драйвера? Может, все-таки это он так себя ведет? Да он-то имхо ни при чем, он честно выполняет sql-запросы, какие ему сказано, а интерпретировать их результаты - дело приложения, использующего этот драйвер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:49 |
|
||
|
|

start [/forum/topic.php?fid=15&gotonew=1&tid=1337108]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
7ms |
get first new msg: |
44ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 185ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...