Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос к базе Oracle

Запрос к базе Oracle
Я
   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 назад ковырялся. Гуглил... За день справился
   1CnikPetya
 
2 - 19.08.20 - 15:13
На сервере с 1С русский язык установлен?
   tvfox
 
3 - 19.08.20 - 15:44
(2) Установлен
   tvfox
 
4 - 19.08.20 - 15:44
(1) Сейчас попрбую
   tvfox
 
5 - 19.08.20 - 16:18
Пробовал переменную NLS_LANG менять на сервере, не помогло
   acht
 
6 - 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. Но на практике у меня не вышло.
   acht
 
10 - 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) да, в теории так и написано
   acht
 
12 - 19.08.20 - 17:11
(11) И фактически оно тоже работает. Возможно, конечно, не все разбирает, но работает
   tvfox
 
13 - 19.08.20 - 17:46
Большое спасибо, завтра попробую.
О результатах отпишусь
   tvfox
 
14 - 20.08.20 - 14:37
Добрый день !
Заработало.
Помогла установка значения переменной NLS_LANG = AMERICAN_AMERICA.CL8MSWIN1251

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.