Сторонние БД: MySQL и компонент сценария "SQL запрос"

Столкнулся с ситуацией, когда элемент сценария "SQL запрос" должен был обращаться в стороннюю БД (MySQL).

Для решения этого потребуется три последовательных шага :
1. Установка MySQL ODBC Driver на Oktell сервер (Без него работать ничего не будет). Скачиваем последнюю версию (5.1.8 на момент написания статьи), запускаем msi-инсталлятор, все как обычно. После  этого переходим: 
Пуск —> Администрирование —> Источники данных ODBC —> Системный DSN.

Создаем новый инстанс "Добавить" , выбираем наш установленный драйвер (MySQL ODBC 5.1 Driver), далее заполняем параметры коннектора. Ничего сложного. Для верности нажимаем Test

2. Идем в Oktell. В параметрах компонента "SQL запрос" выбираем вкладку "Подключение",заполняем строчку как на скриншоте. 

database - имя базы
uid - логин к базе,
pwd - пароль


3. Важный момент — мало того, что синтаксис MySQL слегка отличается от MSSQL (например вместо TOP — LIMIT итд), если мы хотим указать пользовательску входную переменную , то @a не сработает, тут нужно использовать просто знак вопроса- ?


В "Параметрах" появится аттрибут "1(вх)", которому мы сможем присвоить свое значение.

Сохранение результата произойдет в переменную с именем "STAT"

  1. mysql-connector-odbc-5.1.8-winx64.msi (10.14 Mb) 
  2. mysql-connector-odbc-5.1.8-win32.msi (2.5 Mb) 

mysql, бд, sql запрос, sql, синтаксис

Комментарии

125

ООО "Первый Контактный Центр"


16 мая 201108:56

обратите внимание, что данный коннектор будет работать только в 32-битной системе !

    143

    ООО "ПроТелеком"Айрат


    22 июня 201116:30

    а выходной параметр как появится?

      187

      ООО "Первый Контактный Центр"


      29 февраля 201207:39

      Аналогично со входными

        296

        ООО «Газтехноторг»


        14 ноября 201213:27

        Картинку бы, которой сейчас нет а точнее строку запроса с присвоением переменной.
        Не получается присвоить значение переменной. Приходиться лезть через веб-запрос и парсить результат.

          297

          ООО «Газтехноторг»


          14 ноября 201215:51

          Шалавин Дмитрий

          14 ноября14:24

          В запросе к внешним БД можно использовать только входные неименованные параметры, которые указываются с помощью символа ?.
          Для получения результата запроса нужно создать в сценарии переменную с именем таким же как возвращаемое поле, т.е. запрос будет выглядеть так

          select se from t1 where ft='123'
          а в сценарии нужно будет создать строковую переменную с именем se

            357

            ООО "МИАКОМ"


            14 мая 201317:39

            Небольшое уточнение:
            1. Добавлять нужно не Пользовательский DSN, а Системный.
            2. Если добавлять инстанс через оснастку Источники данных ODBС, то в строке подключения к БД достаточно указать DSN=dsnname, которое Вы задали в предыдущем шаге.

            Можно вообще не добавлять инстанс через оснастку, но в этом случае в строке подключения к БД придется прописывать все параметры как на скриншоте.

              363

              Этажи


              11 июня 201314:48

              Здравствуйте, почему ? не обрабатывается в LIKE '%?%' или LIKE '%'+?+'%'.

                Новое сообщение

                Прикрепить файлы

                Написать