|
Запрос к базе Oracle | ☑ | ||
---|---|---|---|---|
0
tvfox
19.08.20
✎
15:06
|
Добрый день !
Подключаюсь к базе Oracle, делаю запрос. Все нормально отрабатывает. Только в результате запроса вместо кирилицы стоят знаки ? . Что можно сделать ? Соединение = Новый COMОбъект("ADODB.Connection"); Соединение.ConnectionString = "Driver={Oracle in OraDb12g_home1};DSN=PLANT;Password=" + Пароль + ";User ID=" + Логин + ";Data Source=" + Сервер; Соединение.Open() ; ТекстЗапроса = " |SELECT | zpu_name AS ""Name"" |FROM PARUS.ZPU_TYPES"; rsRES = NEW COMObject("ADODB.Recordset"); rsRES.Open(ТекстЗапроса, Соединение); Пока rsRES.EOF() = 0 Цикл мм = СокрЛП(rsRES.Fields("Name").Value); Сообщить(мм) ; rsRES.MoveNext(); КонецЦикла ; |
|||
1
ДенисЧ
19.08.20
✎
15:09
|
там файлик конфигурации надо править *.ora как=то так
Там кодировку надо задать. М если не ошибаюсь - ещё в реестре где-то лет 10 назад ковырялся. Гуглил... За день справился |
|||
2
1CnikPetya
19.08.20
✎
15:13
|
На сервере с 1С русский язык установлен?
|
|||
3
tvfox
19.08.20
✎
15:44
|
(2) Установлен
|
|||
4
tvfox
19.08.20
✎
15:44
|
(1) Сейчас попрбую
|
|||
5
tvfox
19.08.20
✎
16:18
|
Пробовал переменную NLS_LANG менять на сервере, не помогло
|
|||
6
acht
19.08.20
✎
16:27
|
(5) Попробуй поиграться вот этим:
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm#SQLRF00620 |
|||
7
Лефмихалыч
19.08.20
✎
16:32
|
+(1) C:\oracle\client\11.2.0\client_1\network\admin\tnsnames.ora
для случая, когда клиент установлен в c:\oralce\client внутрях записи вида ${ALIAS_NAME} = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ${database_host})(PORT = ${LISTENER_PORT})) ) (CONNECT_DATA = (SERVICE_NAME = ${SERVICE_NAME}) ) ) ${ALIAS_NAME}, ${database_host}, ${LISTENER_PORT},${SERVICE_NAME} - заменить на настоящие |
|||
8
Лефмихалыч
19.08.20
✎
16:33
|
tnsnames.ora - это ораклизьменный аналог того, что в винде называется system dsn и управляется из оснастки управления ODBC-драйверами
|
|||
9
Лефмихалыч
19.08.20
✎
16:35
|
хотя, наверное, можно и через панель управления DSN настроить так, чтобы работало, без tnsnames. Но на практике у меня не вышло.
|
|||
10
acht
19.08.20
✎
16:36
|
(9) OraOLEDB.Oracle понимает параметры tns прямо в строке подключения
https://www.connectionstrings.com/oracle-provider-for-ole-db-oraoledb/tns-less-connection-string/ |
|||
11
Лефмихалыч
19.08.20
✎
16:45
|
(10) да, в теории так и написано
|
|||
12
acht
19.08.20
✎
17:11
|
(11) И фактически оно тоже работает. Возможно, конечно, не все разбирает, но работает
|
|||
13
tvfox
19.08.20
✎
17:46
|
Большое спасибо, завтра попробую.
О результатах отпишусь |
|||
14
tvfox
20.08.20
✎
14:37
|
Добрый день !
Заработало. Помогла установка значения переменной NLS_LANG = AMERICAN_AMERICA.CL8MSWIN1251 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |