bg

Экспорт данных в базу данных MySQL с помощью модуля SQL Database Professional

Описание проблемы:

Нам нужно получить штрих-код и вес, обработать их, и записать данные в таблицу в базе данных MySQL. Данные должны быть сохранены в одной строке с меткой даты и времени.

Требования:

  • Advanced Serial Data Logger Professional, Enterprise, или пробная версия;
  • Aggregator, ASCII data parser and query, DDE server, ODBC database, SQL Database Professional

Подразумевается что:

Вы подготовили переменные парсера для экспорта.

Для данного примера данные подготовлены в предыдущей части.

Также вы можете просмотреть другие примеры парсинга данных (разные типы парсеров)

Решение:

Замечание: Этот процесс довольно сложный и может быть непонятен для неподготовленного пользователя.

Подразумевается, что у вас есть доступ к базе данных, и вы можете управлять ею. Прежде всего, создайте таблицу в базе данных. Для этого выберите существующую базу данных или создайте новую БД. Самый простой способ это использовать MySQL Administrator для сервера MySQL. Это программное обеспечение поставляется вмести с базой данных и доступно из меню"MySQL" в группе "Programs". В этом примере мы создали таблицу с именем "DATA_LOG" в тестовой базе данных "test". Структура таблицы показана на рис.1 ниже.

Экспорт данных в MySQL. Таблица MySQL.
Рис.1. Экспорт данных в MySQL. Таблица MySQL.

Обратите внимание, что мы внесли изменения в структуру таблицы, добавив 4 новых столбца для всех переменных обеих конфигураций. Эти дополнительные столбцы обеспечивают более полное представление данных и позволяют легче управлять информацией. Кроме того, мы добавили отдельный столбец с именем "ID". Этот столбец предназначен для хранения счетчика значений, который будет автоматически увеличиваться при добавлении новых записей. Это нововведение поможет вам лучше организовать и отслеживать данные, упрощая их последующую обработку и анализ.

Замечание: Вы должны указать уникальные имена колонок. Запрещено использование в качестве имени колонки зарезервированных слов ANSI92 SQL. В этом примере мы могли бы использовать имя "Datetime" для первой колонки. Но поскольку это зарезервированное слово, то мы должны добавить префикс "d_", для того, чтобы было отличие от зарезервированного слова.

Теперь таблица готова и пришло время настроить права доступа к ней в свойствах MySQL. В MySQL, каждый пользователь имеет строго определенные права доступа к определенным объектам базы данных. В нашем случае, новый пользователь может быть создан, или разрешен доступ уже существующей учетной записи. Также вы можете настроить соединение от имени администратора, который имеет все права, но из-за соображений безопасности рекомендуется использовать учетную запись администратора только для отладки и тестирования. Мы создали пользователя с именем "uvt" (рис.2).

Экспорт данных в MySQL. Новый пользователь MySQL.
Рис.2. Экспорт данных в MySQL. Новый пользователь MySQL.

По умолчанию, у пользователя нет никаких прав. Необходимо разрешить доступ новому пользователю к нашей таблице (рис.3).

Экспорт данных в MySQL. Права пользователя
Рис.3. Экспорт данных в MySQL. Права пользователя"uvt".

Модуль "SQL Database Professional" использует метод прямого доступа к базе данных, но модулю необходимо наличие системной библиотеки "libmysql.dll". Вы можете скачать эту библиотеку с сайта MySQL в составе ODBC драйвера или нашего сайта, и поместить файл из архива в папку "Windows\system32". С помощью метода прямого доступа к базе данных необходимо настроить параметры подключения только в настройках модуля.

Хорошо. База данных и таблица готовы. Далее, перейдите к настройкам модуля "SQL Database Professional" и откройте страницу "Общие" с помощью кнопки на левой стороне окна (рис.4).

Экспорт данных в MySQL. SQL Database Prof. Включение соединения.
Рис.4. Экспорт данных в MySQL. SQL Database Prof. Включение соединения.

Выключенное состояние опции в позиции №1 на рис. 4 указывает на то, что программа будет записывать данные в базу данных, а группа параметров в позиции №2 указывает на то, что соединение будет постоянно активно. Это позволит минимизировать время, затрачиваемое на запись данных. Группа параметров в позиции №3 позволяет переподсоединяться к базе данных, если возникла ошибка или было потеряно соединение с базой данных.

На следующей странице "Соединение" (рис.5) вы можете указать параметры вашей базы данных. Выберите тип вашей базы "MySQL" (поз.1), укажите имя или адрес компьютера, имя базы данных (поз. 2), имя пользователя и пароль (поз.3). Теперь необходимо протестировать соединение. Для этого, кликните на кнопке "Протестировать" (поз.4).

Экспорт данных в MySQL. SQL Database Prof. Параметры соединения.
Рис.5. Экспорт данных в MySQL. SQL Database Prof. Параметры соединения.

В нашем примере дополнительные параметры соединения не требуются.

На третьей странице "Обработка ошибок" модуля "SQL Database Professional" (рис.6), укажите, как программа должна реагировать на ошибки записи в базу данных.

Экспорт данных в MySQL. SQL Database Prof. Обработка ошибок.
Рис.6. Экспорт данных в MySQL. SQL Database Prof. Обработка ошибок.

В этом примере, третья опция (поз. #1) была выбрана, не останавливать запись в базу данных при возникновении ошибок. Остальные варианты используются при отладке и настройке модуля. Опция в позиции №2 позволяет избежать потери данных, если прервано соединение с базой данных или есть ошибка в SQL запросы. При этом, программа будет сохранять данные во временный файл и восстанавливать их, когда конфигурация будет изменена. При этом группа параметров в позиции №3 позволяет указать режим восстановления данных. Если SQL скрипт (на следующей странице) содержит больше SQL запроса, и один запрос зависит от другого, то вы можете выбрать первую опцию в этой группе.

Последняя страница "Очередь SQL" (рис.7) очень важна. На этой странице указываются SQL запрос и поля базы данных, которые вы должны связать с переменными парсера. Модуль позволяет использовать ваши собственные SQL запросы и записывать данные, как вам хочется. Для примера, вы можете вызывать хранимые процедуры или записывать данные в несколько таблиц.

Экспорт данных в MySQL. SQL Database Prof. Очередь SQL.
Рис.7. Экспорт данных в MySQL. SQL Database Prof. Очередь SQL.

Вы можете последовательно создать SQL запрос за SQL запросом, выбирая пункт меню "Действие - Добавить SQL в очередь" (рис.7, поз. #3). В этом случае модуль создаст элемент в списке (рис.7, поз. #1) и позволит редактировать вам SQL запрос (рис.7 поз. #2). Вы можете открыть редактор SQL (рис.8), кликнув на кнопке с точками, которая появляется при клике на поле для ввода текста SQL запроса (рис.7, поз. #5).

Экспорт данных в MySQL. SQL Database Prof. Редактор SQL.
Рис.8. Экспорт данных в MySQL. SQL Database Prof. Редактор SQL.

Вы должны создать правильный SQL запрос в редакторе SQL. Вы можете использовать любой синтаксис и команды, которые поддерживаются вашей базой данных. Вы можете использовать параметры в вашем запросе вида ":P1". Модуль будет автоматически связывать переменные парсера и эти параметры перед выполнением SQL запроса.

После того как вы закроете окно редактора, кликнув по кнопке "OK" в редакторе SQL, модуль создаст список параметров в очереди SQL запросов (рис.7 поз. #3).

Каждый параметр в очереди SQL запросов имеет ряд свойств:

  1. Имя переменной парсера - это имя, которое мы определили в парсере. Вы можете выбрать имя переменной из выпадающего списка, когда вы кликните на ссылке рядом с этим свойством. Обратите внимание, что имя переменной "WEIGHT" отсутствует в списке, поскольку задано в другой конфигурации. Поэтому нужно указать это имя переменной вручную;
  2. Тип данных - тип данных колонки в базе данных. Программа будет пытаться конвертировать переменную парсера в этот тип данных, используя стандартные системные функции;
  3. Значение по умолчанию - это значение будет использоваться, когда данные не могут быть преобразованы в указанный тип данных.

Кликните на кнопке "OK" и закройте окно настройки модуля "SQL Database Professional", а затем и окно настройки конфигурации.

Хорошо, все настройки завершены и мы готовы к записи данных от устройств в базу данных.

Если вы настроили все верно, то при удачной записи в базу данных программа будет отображать соответствующее сообщение в главном окне программы, в списке сообщений программы.

Сопутствующие статьи: