|
Запрос к базе 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) Попробуй поиграться вот этим:
|
|
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 прямо в строке подключения
|
|
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
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший