Работа с ODBC без внешнего источника

1. babys 90 24.08.22 13:24 Сейчас в теме
Граждане, мы сами не местные поможите кто чем может :)

В проекте необходимо напрямую подключаться к sql базе, ну там прочитать или записать. Проблема в том , что никакого MS нет, то есть чистый odbc, и использовать внешние источники не получается, т.к. имена баз время от времени меняются, вместе со структурой и каждый раз править продуктовую базу .....
Поэтому прошу кусок кода подключения где имя базы задаётся программно, что-й то я запутался.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 24.08.22 13:29 Сейчас в теме
(1)в строке подключения
3. VPanin56 546 24.08.22 13:49 Сейчас в теме
(1) Ответ на вопрос находится в поиске за 1 сек.
https://infostart.ru/public/652774/

а если лень искать и читать, то вот так

АДОСоединение = Новый COMОбъект("ADODB.Connection");
    
    Если АДОСоединение.State = 0 // 0 - adStateClosed
        Тогда
        SRV = "..."; //адрес сервера MySQL
        DB = "..";//имя базы MySQL
        UID = "..";//имя пользователя MySQL
        PWD = "...";//пароль пользователя MySQL        
        PORT = "";//порт сервера MySQL, например 3306
        cstr = "DRIVER={MySQL ODBC 5.3 Unicode Driver};
                |SERVER=" + SRV + ";UID=" + UID + ";
                |PASSWORD=" + PWD + ";DATABASE=" + DB + ";PORT=" + PORT + ";";
        Попытка
            АДОСоединение.Open (cstr);
        Исключение
            АДОСоединение = Неопределено;
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;

//выполняем запрос к MySQL:

   ТекстЗапроса = "SEL ECT ITEMS.ID FR OM ITEMS";

  Table = АДОСоединение.Execute(ТекстЗапроса); 
    
  Пока Table.EOF() = 0 Цикл 
        
      Сообщить(Table.Fields("ID").Value); 
      Table.MoveNext();
        
  КонецЦикла;
  Table.Close();
Показать
Vitaly1C8; Prikum; +2 Ответить
4. VPanin56 546 24.08.22 13:51 Сейчас в теме
(3) только свою версию драйвера укажите, а то будете потом писать что почему то не работает.
5. babys 90 24.08.22 15:11 Сейчас в теме
(3) Нет мелкомягких, совсем нет. Полная среда пингвиноидных, нет COMобъект :(
6. nomad_irk 76 24.08.22 15:16 Сейчас в теме
(5)погуглить на тему "ODBC linux" не предлагать?
7. babys 90 24.08.22 15:25 Сейчас в теме
(6) первые несколько страниц что яндекса, что гугла, все подразумевают внешние источники, а я не могу их описать :(
9. nomad_irk 76 24.08.22 15:41 Сейчас в теме
(7)что вам мешает это сделать?
11. babys 90 24.08.22 16:10 Сейчас в теме
(9) динамическое изменение названия и состава внешних баз
10. spacecraft 24.08.22 15:53 Сейчас в теме
(7) вариантов масса, только они еще сложнее.
Например, поднять RESTfull API сервис на любом подходящем ЯП в качестве прокси.
12. babys 90 24.08.22 16:14 Сейчас в теме
(10) Если бы можно было в web, а низзя :(
13. spacecraft 24.08.22 16:18 Сейчас в теме
14. babys 90 24.08.22 16:49 Сейчас в теме
15. spacecraft 24.08.22 17:01 Сейчас в теме
(14) конфигуратор хоть запускать дают? Технических ограничений нет, значит "нельзя" чисто организационно.
Раз ничего "нельзя", значит и не нужно по факту.
16. babys 90 24.08.22 17:42 Сейчас в теме
(15) так конфигуратор то дают запустить, а вот базы для интеграции лежат на другом сервере (физически) и к ним надо подключиться, и там mssql for unix самописка я бы сказал, т.к. api у этой системы нет от слова совсем.
17. Prikum 3 24.08.22 17:48 Сейчас в теме
(16)
mssql for unix
mssql - самописка? ;)
18. spacecraft 24.08.22 17:58 Сейчас в теме
(16) да не важно что там на удаленном серваке. Доступ к odbc есть. Создаете проект (на своем серваке), к примеру, на FastAPI python. Подключаете pyodbc. Создаете подключение к odbc и раздаете по http протоколу. В 1С подключаетесь к созданному сервису и получаете данные.
Ну или прикидываете сложность и перекидываете ответственность на выдачу нормальных данных по rest к тем, кто поддерживает удаленный сервер :)
8. VPanin56 546 24.08.22 15:26 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот