Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Прочитать unicode данные из Oracle   Найти похожие ветки 

 
gog ©   (2009-05-29 13:47) [0]

Данные в базе Oracle хранятся в unicode в нац. языке.
Пробую соединится через BDE, ADO, TOraSession. Во всех случях
данные искажаются (отображаются ???) уже в соответствующих Query компонентах, так что они не выводятся не в компонентах поддерживающие unicode, не в стандартных компонентах после преобразования.


 
sniknik ©   (2009-05-29 14:15) [1]

> Пробую соединится через BDE, ADO, TOraSession.
про BDE забудь, не поддерживает unicode, что говорится у нутрях, и ничего с этим не поделать.

ADO пойдет, но обертки (грид/дбедиты/...) нужно менять, VCL также не поддерживает unicode, но есть замена компоненты TNT (так называлась бесплатная версия, ищи их).
пробовал access + ADO + TNT. получается.

TOraSession про него ничего не знаю, скорее тоже поддерживает, если он более менее новый, но про "обертки" и для него все в силе.


 
gog ©   (2009-05-29 14:41) [2]

Может быть в ADO надо настроить параметры? Можете подсказать?


 
sniknik ©   (2009-05-29 15:35) [3]

нечего не надо, кроме того что уже написал...


 
Плохиш ©   (2009-05-29 16:52) [4]


> gog ©   (29.05.09 14:41) [2]
>
> Может быть в ADO надо настроить параметры? Можете подсказать?
>
>

Забыть про свойство ToString и использовать свойство Value.


 
Игорь Шевченко ©   (2009-05-29 17:00) [5]

Я через через TNT-компоненты отображал данные из NCHAR, NVARCHAR колонок. Именно через ADO (ADOTable, если что)


 
gog ©   (2009-05-29 17:26) [6]

Я забираю данные из БД с помощью TADOQuery SELECT–ом, а потом
пробовал заполнить TNTStringGrid кодом Cells[i,j]:= FieldByName("Some_Field").Value
или записать вTNTEdit аналогичным методом но ничего не получается. Одни ???.
Проверил прямой набор с клавиатуры в элементы, всё нормально, Copy Past тоже правильно работает, а вот SELECT никак.


 
Игорь Шевченко ©   (2009-05-29 17:53) [7]

Вообще странно, потому что ??? - это больше похоже на результат преобразования из юникода в Ansi.


 
Плохиш ©   (2009-05-29 18:17) [8]


> gog ©   (29.05.09 17:26) [6]

Попробуй подключить к TNTDBGrid.


 
gog ©   (2009-05-29 18:18) [9]

Я тоже так думаю, проверил DataType соответствующего набора (FieldByName("Some_Field").DataType), он равен ftString, а не ftWideString. По тому думаю, что может быть надо как то настроить TADOConnection. У TOraSession есть параметр UseUnicode. Перевел его в True но никакого результата.


 
gog ©   (2009-05-29 18:20) [10]


> Попробуй подключить к TNTDBGrid.


Пробовал, тот же результат


 
Плохиш ©   (2009-05-29 18:22) [11]


> gog ©   (29.05.09 18:20) [10]

Показывай строку подключения. Только без домыслов, а обычным copy-paste.


 
Игорь Шевченко ©   (2009-05-29 18:26) [12]

На всякий случай я покажу :)

 object ADOConnection: TADOConnection
   Connected = True
   ConnectionString =
     "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=u" +
     "ser;Data Source=orca"
   Provider = "OraOLEDB.Oracle.1"
   Left = 44
   Top = 16
 end


 
gog ©   (2009-05-29 18:26) [13]


> Показывай строку подключения. Только без домыслов, а обычным
> copy-paste.


Provider=MSDAORA.1;Password=sutg;User ID=utg_select;Data Source=bccdb


 
Плохиш ©   (2009-05-29 18:58) [14]


> gog ©   (29.05.09 18:26) [13]

Вот здесь http://msdn.microsoft.com/de-de/library/cc627448.aspx
упоминают
; Unicode="True"


 
gog ©   (2009-06-01 09:56) [15]

К сожалению Я не знаю немецкий, но в строке подключения добавил Unicode=True, результат старый. Может быть значение имеет Regional Settings? Они у меня стоят Russian


 
Игорь Шевченко ©   (2009-06-01 10:37) [16]


> Может быть значение имеет Regional Settings? Они у меня
> стоят Russian


гадать можно долго. обычно приводится проблемный код, структура таблицы, настройки Oracle на клиенте...


 
sniknik ©   (2009-06-01 11:16) [17]

> К сожалению Я не знаю немецкий
так почему бы не переключить страничку на родной для тебя язык? вроде -
http://msdn.microsoft.com/zh-cn/library/cc627448.aspx


 
ANB   (2009-06-03 14:45) [18]

1) Дернуть pl/sql developer и убедиться что ошибка повторяется
2) Если повторяется - лезть в реестр и исправлять параметр NLS_LANG



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.053 c
15-1275560855
Kerk
2010-06-03 14:27
2010.08.27
В России стартует эксперимент по имитации полета на Марс


15-1275078583
Юрий
2010-05-29 00:29
2010.08.27
С днем рождения ! 29 мая 2010 суббота


15-1264741981
Урсулапов_
2010-01-29 08:13
2010.08.27
Можно ли так забивать?


2-1275332438
Delphi
2010-05-31 23:00
2010.08.27
Как это будет на Delphi?


2-1266580325
NovichoK111
2010-02-19 14:52
2010.08.27
TreeView