![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прочитать unicode данные из Oracle [D7]
gog © (2009-05-29 13:47:00)Данные в базе Oracle хранятся в unicode в нац. языке.
Пробую соединится через BDE, ADO, TOraSession. Во всех случях
данные искажаются (отображаются ???) уже в соответствующих Query компонентах, так что они не выводятся не в компонентах поддерживающие unicode, не в стандартных компонентах после преобразования.
ANB (2009-06-03 14:45:00) [1]1) Дернуть pl/sql developer и убедиться что ошибка повторяется
2) Если повторяется - лезть в реестр и исправлять параметр NLS_LANG
sniknik (2009-06-01 11:16:00) [2]> К сожалению Я не знаю немецкий
так почему бы не переключить страничку на родной для тебя язык? вроде -
http://msdn.microsoft.com/zh-cn/library/cc627448.aspx
Игорь Шевченко (2009-06-01 10:37:00) [3]
> Может быть значение имеет Regional Settings? Они у меня
> стоят Russian
гадать можно долго. обычно приводится проблемный код, структура таблицы, настройки Oracle на клиенте...
gog (2009-06-01 09:56:00) [4]К сожалению Я не знаю немецкий, но в строке подключения добавил Unicode=True, результат старый. Может быть значение имеет Regional Settings? Они у меня стоят Russian
Плохиш (2009-05-29 18:58:00) [5]
> gog © (29.05.09 18:26) [13]
Вот здесь http://msdn.microsoft.com/de-de/library/cc627448.aspx
упоминают
; Unicode="True"
gog (2009-05-29 18:26:00) [6]
> Показывай строку подключения. Только без домыслов, а обычным
> copy-paste.
Provider=MSDAORA.1;Password=sutg;User ID=utg_select;Data Source=bccdb
Игорь Шевченко (2009-05-29 18:26:00) [7]На всякий случай я покажу :)
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
Плохиш (2009-05-29 18:22:00) [8]
> gog © (29.05.09 18:20) [10]
Показывай строку подключения. Только без домыслов, а обычным copy-paste.
gog (2009-05-29 18:20:00) [9]
> Попробуй подключить к TNTDBGrid.
Пробовал, тот же результат
gog (2009-05-29 18:18:00) [10]Я тоже так думаю, проверил DataType соответствующего набора (FieldByName('Some_Field').DataType), он равен ftString, а не ftWideString. По тому думаю, что может быть надо как то настроить TADOConnection. У TOraSession есть параметр UseUnicode. Перевел его в True но никакого результата.
Плохиш (2009-05-29 18:17:00) [11]
> gog © (29.05.09 17:26) [6]
Попробуй подключить к TNTDBGrid.
Игорь Шевченко (2009-05-29 17:53:00) [12]Вообще странно, потому что ??? - это больше похоже на результат преобразования из юникода в Ansi.
gog (2009-05-29 17:26:00) [13]Я забираю данные из БД с помощью TADOQuery SELECT–ом, а потом
пробовал заполнить TNTStringGrid кодом Cells[i,j]:= FieldByName('Some_Field').Value
или записать вTNTEdit аналогичным методом но ничего не получается. Одни ???.
Проверил прямой набор с клавиатуры в элементы, всё нормально, Copy Past тоже правильно работает, а вот SELECT никак.
Игорь Шевченко (2009-05-29 17:00:00) [14]Я через через TNT-компоненты отображал данные из NCHAR, NVARCHAR колонок. Именно через ADO (ADOTable, если что)
Плохиш (2009-05-29 16:52:00) [15]
> gog © (29.05.09 14:41) [2]
>
> Может быть в ADO надо настроить параметры? Можете подсказать?
>
>
Забыть про свойство ToString и использовать свойство Value.
sniknik (2009-05-29 15:35:00) [16]нечего не надо, кроме того что уже написал...
gog (2009-05-29 14:41:00) [17]Может быть в ADO надо настроить параметры? Можете подсказать?
sniknik (2009-05-29 14:15:00) [18]> Пробую соединится через BDE, ADO, TOraSession.
про BDE забудь, не поддерживает unicode, что говорится у нутрях, и ничего с этим не поделать.
ADO пойдет, но обертки (грид/дбедиты/...) нужно менять, VCL также не поддерживает unicode, но есть замена компоненты TNT (так называлась бесплатная версия, ищи их).
пробовал access + ADO + TNT. получается.
TOraSession про него ничего не знаю, скорее тоже поддерживает, если он более менее новый, но про "обертки" и для него все в силе.