Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf ·...

60
Wonderware FactorySuite SQL Access Manager Руководство пользователя Редакция A Декабрь 1997 Wonderware Corporation

Transcript of Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf ·...

Page 1: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Wonderware FactorySuite

SQL Access Manager

Руководство пользователяРедакция AДекабрь 1997

Wonderware Corporation

Page 2: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Все права сохранены. Никакая часть настоящей документации не можетвоспроизводиться, храниться в информационно системе или передаватьсялюбым способом, электронным или механическим, или путемфотокопирования, записи или как-то иначе без предварительного письменногосогласия корпорации Wonderware Corporation. Использование содержащейсяздесь информации не влечет за собой никакой ответственности, связанной савторскими или патентными правами. Хотя при подготовке этойдокументации авторами и издателями были приложены все усилия, они ненесут ответственность за возможные ошибки или неточности, равно как завозможный ущерб, причиненный в результате использования содержащейсяздесь информации.

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

Данное руководство переведено с английской версии А от 12/97.

1997 Wonderware Corporation. Все права сохранены.100 Technology DriveIrvine, CA 92618U.S.A.(949) 727-3200http://www.wonderware.com

Торговые маркиВсе упоминаемые в этой книге названия, известные как торговые илисервисные марки, помечены должным образом. Корпорация Wonderware неможет гарантировать точность этой информации. Использование любыхназваний в этой книге не следует считать нарушением каких-либо торговыхили сервисных марок.

Wonderware – зарегистрированная торговая марка Wonderware Corporation.

Wonderware FactorySuite, InTouch, WindowMaker, WindowViewer, SQL AccessManager, Recipe Manager, SPC Pro, DBDump, DBLoadd, HDMerge, HistData,Wonderware Logger, InControl, InTrack, InBatch, IndustrialSQL, FactoryOffice,Scout, SuiteLink и NetDDE – торговые марки Wonderware Corporation.

Page 3: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

i

Глава 1 - SQL Access Manager ........................................... 1-1Введение .......................................................................................................... 1-2Об этом руководстве........................................................................................ 1-3Техническая поддержка ................................................................................... 1-4Просмотр лицензии FactorySuite ..................................................................... 1-4Совместимость с ODBC................................................................................... 1-5

Глава 2 -Настройка и соединение баз данных ......................... 2-1Работа с Oracle 6.............................................................................................. 2-2

Настройка клиента .................................................................................... 2-2Работа с Oracle 7.2 ........................................................................................... 2-4

Настройка клиента .................................................................................... 2-4Запись даты и времени в поле даты Oracle .............................................. 2-7

Работа с Sybase или Microsoft SQL Server....................................................... 2-8Настройка клиента .................................................................................... 2-8Поддерживаемые типы данных ................................................................ 2-9

Работа с dBASE ............................................................................................. 2-10Работа с Microsoft Access............................................................................... 2-12Работа с Paradox ............................................................................................ 2-13Значения типов данных для поддерживаемых СУБД................................... 2-14

Глава 3 - Настройка SQL Access Manager ............... 3-1Обзор программы SQL Access Manager .......................................................... 3-2

Настройка списка привязок ...................................................................... 3-2Использование специальных разделителей..................................................... 3-6Настройка шаблонов таблиц............................................................................ 3-7Файл SQL.DEF............................................................................................... 3-10

Глава 4 - Использование функций SQL ................... 4-1Функции SQL................................................................................................... 4-2Параметры SQL ............................................................................................... 4-5Использование функций SQL в сценариях InTouch........................................ 4-8Определение сложных запросов ...................................................................... 4-8

Динамическое создание запросов ............................................................. 4-9Чтение инструкций SQL из файла ............................................................ 4-9Изменение расширенных инструкций SQL ............................................ 4-10Выполнение расширенных инструкций SQL.......................................... 4-11Поддержка хранимых в памяти процедур .............................................. 4-12

Оглавление

Page 4: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

ii Оглавление

Глава 5 - Отладка ........................................................................... 5-1Функции отладки ............................................................................................. 5-2

Сообщения об ошибках с кодом результата ............................................. 5-2Сообщения об ошибках базы данных.............................................................. 5-3

Приложение A - Резервные ключевые словаSQL Accessи ODBC .................................................................................................... A-1

Предметный указатель .............................................................. I-1

Page 5: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

1-1

Г Л А В А 1

SQL Access Manager

Входящая в пакет Wonderware FactorySuite программа SQL Access Managerпозволяет обращаться к базе данных, изменять, создавать или удалять в нейтаблицы. Информация базы данных хранится в таблицах, имеющих общиеатрибуты или поля. Structured Query Language (SQL) — это язык,используемый для получения этой информации.

Содержание! Введение! Об этом руководстве! Техническая поддержка! Просмотр лицензии FactorySuite! Совместимость с ODBC

Page 6: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

1-2 Глава 1

ВведениеПрограмма InTouch SQL Access Manager разработана для передачи данных,таких как пакетные рецепты, из базы данных SQL в приложения InTouch. Этапрограмма используется также для ускоренной передачи данных, статусаалармов или архивных данных в среде выполнения из приложения InTouch вбазу данных SQL. Например, после завершения машинного цикла можетпотребоваться сохранение части данных для различных приложений. Базаданных SQL легко обеспечивает обмен информацией между различнымиприложениями третьих фирм. SQL Access Manager позволяет получать доступк этим данным и просматривать их из любого приложения InTouch.

Продукт InTouch SQL Access состоит из программы SQL Access Manager иSQL функций. Программа SQL Access Manager используется для созданияколонок базы данных и их привязки к тэгам в имеющемся словаре тэговInTouch. Процесс привязки колонок базы данных к тэгам называется"связыванием". Связывание позволяет программе SQL Access Managerманипулировать данными непосредственно в базе данных. SQL AccessManager сохраняет имена полей базы данных и их связи в файле форматапеременных, разделенных запятыми (CSV). Этот файл называется "SQL.DEF"и постоянно хранится в каталоге приложения InTouch, где его можнопросмотреть или изменить с помощью программы SQL Access Manager илилюбого текстового редактора, такого как Notepad (Блокнот). Кроме того,программа SQL Access Manager создает шаблоны таблиц, определяющиеструктуру и формат базы данных.

" Для получения дополнительной информации по спискам связей ишаблонам таблиц смотри главу 3, "Настройка SQL Access Manager".

Функции SQL могут использоваться в любом действующем сценарии InTouchи автоматически выполняться при вводе оператором, при изменении значениятэга или при существовании ряда условий. Например, если возникает ситуацияаларма, то приложение будет выполнять команду SQLInsert() илиSQLUpdate(), чтобы сохранить все используемые точки данных и состояниеаларма. С помощью функций SQL можно создавать новые таблицы, заноситьновые записи в таблицу, редактировать уже существующие записи, очищатьили удалять таблицы, выбирать записи, перемещаться по ним и т. п.

Продукт InTouch SQL Access использует библиотеку Intersolv/Q+E SoftwareDatabase Library QELIB, которая работает со множеством различных СУБД ивключает все коды, необходимые для взаимодействия с драйверами ODBC.Эти драйверы не включены в программный продукт InTouch SQL Access идолжны приобретаться отдельно у третьих фирм (например, Intersolv/Q+E илиMicrosoft). Драйверы ODBC необходимы для непосредственного «соединения»с базой данных. Например, для внедрения функций SQL в базу данныхMicrosoft Access необходимо приобрести и должным образом установитьнабор драйверов Microsoft ODBC Desktop. Следущий раздел этой главысодержит некоторые общие примеры по конфигурации драйверов.

Примечание. СУБД, о которых не идет речь в этом руководстве, неподдерживаются.

Page 7: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Об этом руководстве 1-3

Об этом руководствеЭто руководство логически разделено на несколько глав, которые описываютразличные аспекты использования программы SQL Access Manager. Онинаписаны в форме «процедур», которые по шагам рассказывают, каквыполнять те или иные функции и задачи.

" Если при просмотре электронной версии данного руководства вамвстретилась подобная ссылка, то это — «переход» к другому разделу.Нажав на него, вы окажетесь в указанном разделе или главедокументации. После перехода в другой раздел у вас всегда имеетсявозможность перейти «назад» к исходному разделу.

# Такой тип перекрестных ссылок указывает, что дополнительнаяинформация содержится в другой книге FactorySuite.

$ Такие "подсказки" указывают более легкий или быстрый путь выполненияфункции или задачи.

«Руководство администратора FactorySuite» содержит исчерпывающуюинформацию об общих компонентах FactorySuite и требованиях к системе,советы по работе в сети, интеграции продуктов, сведения о техническойподдержке и многое другое.

«Руководство пользователя InTouch» поможет ознакомиться со средойразработки и инструментальными средствами WindowMaker (глава 1,"Программные компоненты WindowMaker"). О том, как работать с окнами,графическими объектами, мастерами, элементами ActiveX и т. п.,рассказывается в главе 2, "Работа с WindowMaker".

Подробное описание среды выполнения InTouch (WindowViewer) содержитсяв книге «Руководство пользователя InTouch Runtime».

«Справочное руководство по InTouch» содержит детальные сведения о языкесценариев InTouch, о системных тэгах и полях тэгов.

$ В пакет программ FactorySuite входит электронная документация по всемкомпонентам, включенным в пакет. Например, FactorySuite SystemAdministrator's Guide, SPC Pro, SQLAccess Manager, Recipe Manager,IndustrialSQL Server, InControl и все 32-битные серверы ввода/выводаWonderware. Если вы приобрели пакет FactorySuite Plus, то в нем такжеимеется электронная документация для компонентов InTrack и InBatch.

Требования к пользователюЭто руководство рассчитано на пользователя, который:

• Знаком с операционными системами Windows 95 и/или Windows NT.

• Умеет работать с мышью, меню Windows, выбирать параметры ипользоваться справочной системой.

• Имеет опыт программирования или знаком с одним из макроязыков.Необходимо также иметь представление об основных понятияхпрограммирования, таких как переменные, выражения, функции иметоды.

Page 8: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

1-4 Глава 1

Техническая поддержкаСлужба технической поддержки корпорации Wonderware оказываетразличные виды помощи, связанные с любыми аспектами использованияпродуктов Wonderware.

Прежде чем обращаться в службу технической поддержки, попытайтесь найтив соответствующих главах "Руководства пользователя SQL Access Manager "возможные решения тех проблем, которые возникли у вас при работе ссистемой. Если же обращение в службу технической поддержки окажетсянеобходимым, будьте готовы сообщить следующую информацию:

1. Серийный номер программного обеспечения.

2. Номер версии InTouch.

3. Тип и номер версии используемой операционной системы. Например,Microsoft Windows NT workstation версии 4.0.

4. Точный текст полученного сообщения об ошибке.

5. Любые, важные на ваш взгляд, листинги Wonderware Logger, утилитыMicrosoft Diagnostic (MSD) или другой утилиты диагностики.

6. Описание предпринятых вами попыток по устранению проблемы иполученных результатов.

7. Инструкции по воспроизведению проблемы.

8. Номер, присвоенный вашему запросу службой технической поддержкиWonderware (если вы обращаетесь с этой проблемой не первый раз).

# Подробные сведения о службе технической поддержки даны вэлектронном «Руководстве администратора системы FactorySuite».

Просмотр лицензии FactorySuiteИнформация о лицензии на систему FactorySuite может быть получена припомощи утилиты просмотра лицензии, которая запускается из диалоговогоокна InTouch Справка/О программе.

$ Для обращения к диалоговому окну О программе выберите команду Опрограмме в меню Справка.

# Дополнительная информация об этой утилите содержится в «Руководствеадминистратора системы FactorySuite».

Page 9: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Совместимость с ODBC 1-5

Совместимость с ODBCПрограмма SQL Access Manager является приложением, совместимым сODBC, и поэтому обеспечивает связь с любой СУБД, для которой имеетсядрайвер ODBC. Перед тем, как использовать драйвер ODBC, его необходимосконфигурировать программой Microsoft ODBC Administrator для установкисвязей между приложением ODBC и базой данных.

% Как сконфигурировать драйвер ODBC:

1. Запустите программу Microsoft ODBC Administrator.

2. Выберите драйвер или источник данных и нажмите на Add New Name,Set Default или Configure. Появится диалоговое окно ODBC DriverSetup.

Параметр ОписаниеData Source Name Имя, определяемое пользователем и

идентифицирующее источник данных.Description Определяемое пользователем описание

источника данных.Database Directory Каталог, содержащий файлы базы данных. Если

каталог не определен, берется текущий.

$ Введите любую другую информацию,которая требуется для настройкивыбранного драйвера.

3. Нажмите OK.

$ Драйвер записывает значение каждого поля в файл ODBC.INI. Этизначения используются по умолчанию для соединения с источникомданных. Значения, действующие по умолчанию, могут быть измененыпутем редактирования полей источника данных. Для любогоатрибута, который не поддерживается в диалоговом окне ODBCDriver Setup, можно ввести соответствующие записи вручную враздел источника данных файла ODBC.INI.

Требования к соединениюСтрока соединения, используемая функцией SQLConnect() в версии 4.xпрограммы InTouch SQL Access Manager, вводится как условие"DRV=database_dll".

Поскольку версия 5.6 (и более поздние) является совместимой с ODBC, полеdatabase_dll в условии "DRV=database_dll" должно иметь точное имяисточника данных, которое вы установили при помощи программы ODBCAdministrator Program (см. выше). Вместо "DRV" можно использовать "DSN".

Page 10: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware
Page 11: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-1

Г Л А В А 2

Настройка и соединение базданных

Базы данных, описываемые в этой главе, прошли испытания и в настоящеевремя поддерживаются. Требования к каждой базе данных уникальны испецифичны. Эта глава содержит отдельные разделы по каждой базе данных,где описывается, как сконфигурировать конкретную базу данных длясоединения с программой SQL Access Manager.

Содержание! Работа с Oracle 6! Работа с Oracle 7.2! Работа с Sybase или Microsoft SQL Server! Работа с dBASE! Работа с Microsoft Access! Работа с Paradox! Значения типов данных для поддерживаемых СУБД

Page 12: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-2 Глава 2

Работа с Oracle 6" Как обеспечить соединение с Oracle 6:

1. Настройте модуль клиента базы данных в Windows.

2. Запустите SQL*Net TSR и программу NETINIT.EXE.

3. Установите соединеие с Oracle путем выполнения функции

SQLConnect() в действующем сценарии InTouch.

# За дополнительной информацией о функции SQLConnect()обращайтесь к главе 4, "Использование функций SQL".

Настройка клиента Для доступа к базе данных Oracle необходимо установить на локальномкомпьютере продукт Oracle's SQL*Net, состоящий из SQL*Net TSR ипрограммы NETINIT.EXE. Чтобы обеспечить соединение с сервером базыданных Oracle, обе программы — SQL*Net TSR и NETINIT.EXE — должнывыполняться.

Запуск SQL*Net TSR и NETINIT.EXEПрограмма SQL*Net TSR, предназначенная для использования в сети, должнызагружаться из DOS перед запуском Windows. Выполнение программыNETINIT.EXE необходимо для инициализации соединения с сервером Oracle.Для автоматического запуска NETINIT.EXE при загрузке Windowsпереместите ее значок в группу программ Windows "Автозагрузка".

Формат функции SQLConnect()Функция SQLConnect() необходима для соединения с базой данных Oracle.Формат строки соединения функции SQLConnect следующий:SQLConnect(ConnectionId,"<attribute>=<value>;<attribute>=<value>;...");

Далее описываются атрибуты, используемые Oracle. Они должны бытьопределены в следующем порядке:

Атрибут ЗначениеDSN Имя источника данных, такое же как в Microsoft ODBC

Administrator илиDRV Это значение используется для совместимости с SQL

Access Manager, если имя источника данных (DSN) непредставлено в строке соединения. QELIB изменяет егодля имени источника данных.

UID Имя пользователя.PWD Пароль.SRVR Строка соединения SQL*Net, задающая компьютер

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

Page 13: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с Oracle 6 2-3

Пример:SQLConnect(ConnectionId,"DSN=Oracle_Data;UID=SCOTT;PWD=TIGER;

SRVR=B:MKTG_SRV");

Где: B: определяет префикс уровня соединения NetBIOS (в данномпримере SRVR=B:MKTG_SRV) илиT: определяет префикс TCP/IP илиP: определяет префикс Named PipesMKTG_SRV имя сервера базы данных Oracle.

Примечание. Некоторую сложность для определения представляет значениеатрибута SRVR. Требуемая информация зависит от драйвера SQL*Net. Ееможно найти в документации по SQL*Net (или в файле CONFIG.ORA, встроке "remote=").

Поддерживаемые типы данныхПрограмма SQL Access Manager поддерживает два типа данных Oracle 6.Символьный тип данных использует переменную длину символьных строк.Тэги InTouch типа Message требуют данные символьного типа. Если длина неопределена, то по умолчанию она равна одному (1) символу. Oracleподдерживает символьные поля с максимальной длиной в 255 символа.Однако тэги InTouch типа Message имеют ограничение в 131 символ. Еслитекстовая переменная включает в себя больше символов, чем допускается дляполя базы данных, то строка будет усечена перед сохранением в базе.

Числовые типы данных представлены тэгами InTouch типа Integer и Real.Если длина не определена, то значение будет задано с плавающей точкой сточностью до 38 знаков. Если длина определена, то используется форматWidth.Decimal. Значение Width определяет максимальное количество знаковстолбца. Значение Decimal определяет количество знаков справа от точки.Определение длины поля для этого типа данных не требуется.

Page 14: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-4 Глава 2

Работа с Oracle 7.2" Как обеспечить соединение с Oracle 7.2:

1. Установите модель Oracle Standard Client на узле InTouch.

2. Запустите программу SQL_Net Easy Configuration, чтобы определитьDatabase Alias (псевдоним базы данных) для строки соединения SQL.

3. Задайте имя источника данных.

4. Выполните соединение с Oracle с помощью функции SQLConnect() вдействующем сценарии InTouch.

# За дополнительной информацией о функции SQLConnect()обращайтесь к главе 4, "Использование функций SQL".

Настройка клиента" Как запустить программу установки Oracle 7:

1. В окне Oracle7 Workgroup Server выберите тип установки StandardClient и нажмите OK.

2. Выберите Application User Setup Client и нажмите кнопку OK.

3. В окне Database Connection Setup введите базовое имя узла, гдеустановлен Oracle7 Workgroup Server. Например: WWServer.

4. Нажмите кнопку OK.

Настройка SQL_Net1. На панели задач Windows нажмите кнопку Пуск. Выберите Программы,

Oracle, затем нажмите на пункт SQL_Net Easy Configuration.

2. По умолчанию псевдоним сервера будет начинаться сwgs_ServerName_orcl. Но его можно изменить.

$ Псевдоним базы данных используется функцией SQLConnect() вприложении InTouch.

3. Для изменения псевдонима базы данных выберите имя сервера и нажмитеOK.

4. Нажмите Modify Database Alias Select Network protocol. Именемкомпьютера, на котором работает сервер Oracle, является Named PipeServer. Работа программы SQL_Net на этом завершена.

$ Запишите псевдоним базы данных — это пригодится в дальнейшем.

Page 15: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с Oracle 7.2 2-5

Настройка имени источника данных" Как настроить драйверы ODBC на узле клиента:

1. На панели задач нажмите кнопку Пуск. Выберите Настройка, затемПанель управления. Откроется панель управления Windows.

2. Дважды нажмите значок ODBC. Появится диалоговое окно ODBC DataSource Administrator.

3. Откройте вкладку System DSN:

4. Нажмите кнопку Add. Появится диалоговое окно Create New DataSource.

5. Выберите драйвер Oracle7 ODBC и нажмите кнопку Finish. Появитсядиалоговое окно ODBC Oracle Driver Setup.

6. В окне Data Source Name введите имя сервера Oracle.

7. Нажмите кнопку Advanced. Используйте настройку по умолчанию вдиалоговом окне ODBC Oracle Advanced Driver Setup. Нажмите кнопкуClose. Снова появится диалоговое окно ODBC Data SourceAdministrator.

8. Нажмите OK.

Page 16: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-6 Глава 2

Формат функции SQLConnect()Функция SQLConnect() используется для соединения с базами данных Oracle.Формат строки соединения SQLConnect() следующий:SQLConnect(ConnectionId,"<attribute>=<value>;<attribute>=<value>;...");Далее описываются атрибуты, используемые Oracle. Они должны бытьопределены в следующем порядке:

Атрибут ЗначениеDSN Имя источника данных, заданное в программе Microsoft

ODBC Administrator.UID Имя пользователя.PWD Пароль.SRVR Псевдоним базы данных SQL_NET.Пример:SQLConnect(ConnectionId,"DSN=Oracle;UID=SCOTT;PWD=TIGER;SRVR=wsg_wwServer_orcl");

Примечание. Если псевдоним базы данных был изменен, т. е. он отличаетсяот формата по умолчанию (wsg_ИмяСервера_orcl), используйте новыйпсевдоним, заданный в SQL_NET Easy Configuration, SRVR=WWServer.

Page 17: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с Oracle 7.2 2-7

Запись даты и времени в поле даты OracleЧтобы записать дату и время в поле даты Oracle date field, нужносконфигурировать список связей, используя функцию delim.

" Как записать дату и время в поле даты Oracle:

1. В программе Аpplication Explorer под веткой SQL Access Managerнажмите дважды нажмите на Bind List. Появится диалоговое окно BindList Configuration:

2. В окне Tagname.FieldName напишите тэг, который вы хотитеиспользовать.

3. В окне Column Name напишите функцию DATE_TIME delim().

Примечание. В окне ввода Column Name пространство должно бытьиспользовано функцией delim(). Например, DATE_TIME. Должен бытьвведен пробел между DATE и TIME.

4. В приложении InTouch создайте QuickScript для подготовки данных вводаиз настоящих дат и времени. Например:DATE_TIME_TAG = "TO_DATE('" + $DateString + "" +StringMid($TimeString,1,8) + "','mm/dd/yy hh24:mi:ss')";

$ Имя Date_Time_Tag будет отображено так, как в следующемпримере:TO_DATE('08/22/97 23:32:18' ,'mm/dd/yy hh24:mi:ss')

Page 18: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-8 Глава 2

Работа с Sybase или Microsoft SQLServer

" Как обеспечить соедиенние с Sybase или Microsoft SQL Server:

1. Настройте модуль клиента базы данных в Windows.

2. Используя функцию SQLConnect() в сценарии InTouch, установитесоединение с Sybase или Microsoft SQL Server.

# За дополнительной информацией о функции SQLConnect()обращайтесь к главе 4, "Использование функций SQL".

Настройка клиента" Как установить соединение с базой данных:

Для соединения с базой данных в каталоге WINDOWS/SYSTEM должныприсутствовать следующие DLL-модули:

• DBNMP3.DLL• W3DBLIB.DLL

Примечание. Если для соединения с базой данных приложение используетWinsock (TCP/IP), то DBNMP3.DLL не требуется.

Формат функции SQLConnect()Функция SQLConnect() используется для соединения с Sybase или MicrosoftSQL Server. Выполнение этой функции регистрирует вас на сервере базыданных и открывает соединение для выполнения других функций SQL.Формат строки соединения SQLConnect() должен быть следующий:SQLConnect(ConnectionId,"<attribute>=<value>;<attribute>=<value>;...");

Далее описываются атрибуты, используемые Sybase или Microsoft SQL Server.Они должны быть определены в следующем порядке:

Атрибут ЗначениеDSN Имя источника данных, такое же как в Microsoft ODBC

Administrator илиDRV Это значение используется для совместимости с SQL

Access Manager, если имя источника данных (DSN) непредставлено в строке соединения. QELIB изменяет его всоответствии с именем источника данных.

UID Вход в систему ID, с учетом регистра.PWD Пароль, с учетом регистра.SRVR Имя сервера компьютера с таблицами базы данных, к

которым требуется доступ.DB Имя базы данных, к которой требуется доступ.

Пример:SQLConnect(ConnectionId,"DSN=SQL_Data;UID=OPERATOR;PWD=XYZZ");

Page 19: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с Sybase или Microsoft SQL Server 2-9

Поддерживаемые типы данныхПрограмма SQL Access Manager поддерживает три типа данных для Sybase иMicrosoft SQL Server. Символьный тип данных (char)содержитфиксированную длину символьной строки. Тэги InTouch типа Messageтребуют символьного типа данных. Длина поля должна быть определена.Базы данных Sybase и Microsoft SQL Server поддерживают символьные полямаксимальной длиной 255 символов. Однако тэги типа Message имеютограничение в 131 символ. Если текстовая переменная включает в себябольшее количество символов чем позволено для поля базы данных, строкабудет усечена перед записью в базу данных.

Целочисленный тип данных (int)используется целочисленными (integer)тэгами InTouch. Если длина поля не определена, то она устанавливаетсятакой, какая принята базой данных по умолчанию. Если же длина определена,она будет в форме Width. Width определяет максимальное количество знаковширины столбца.

Тип данных с плавающей точкой (float) используется действителтными (real)тэгами InTouch. Длина поля фиксируется базой данных. Определять длинуполя для этого типа данных не требуется.

Примечание. Типы данных (char, int, float) вводятся с учетом регистра и прииспользовании сервера Sybase должны вводиться в нижнем регистре.

Sybase и Microsoft SQL Server поддерживают только одну активнуюинструкцию на каждый ConnectionId. При выполнении функции SQLSelect()или SQLNext() данные могут просматриваться, но не могут быть вставлены,удалены или изменены. Чтобы это можно было сделать, выполнитеSQLSelect() в ConnectionId отделенном от функций SQLInsert(),SQLUpdate() и SQLDelete(). Имена столбцов и таблиц также вводятся сучетом регистра. Имена таблиц должны быть уточнены у владельца таблиц.Например, dbo.MyTable)

Page 20: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-10 Глава 2

Работа с dBASEДля соединения с dBASE необходимо выполнить функцию SQLConnect() всценарии InTouch.

Формат функции SQLConnect()Функция SQLConnect() используется для соединения с базой данных dBASE.Выполнение этой функции регистрирует вас на сервере базы данных иоткрывает соединение для выполнения других функций SQL. Формат строкисоединения SQLConnect() должен быть следующий:SQLConnect(ConnectionId,"<attribute>=<value>;<attribute>=<value>;...");

Далее описываются атрибуты, используемые dBASE. Они должны бытьопределены в следующем порядке:

Атрибут ЗначениеDSN Имя источника данных, такое же как в Microsoft ODBC

Administrator илиDRV Используется для совместимости с SQL Access Manager,

если имя источника данных (DSN) не представлено встроке соединения. QELIB изменяет его в соответствии сименем источника данных.

CS Атрибут, сообщающий драйверу, в каком наборесимволов хранятся данные: IBM PC или ANSI. Поумолчанию используется набор символов IBMPC.

DB Указывает каталог, где хранятся файлы dBASE. Еслиатрибут не задан, используется текущий рабочий каталог.

FOC Максимальное число кэшируемых открытых файлов. Поумолчанию имеет значение 0. Драйвер dBASEиспользует кэширование открытых файлов дляповышения производительности. Если FOC больше 0,самые последние открывавшиеся файлы остаютсяоткрытыми. Когда другое приложение попытаетсяоткрыть эти файлы в монопольном режиме, будетвыдано сообщение о том, что файлы используются.

LCK Определяет уровень блокировки записей для файла базыданных. Доускаются значения FILE, RECORD (поумолчанию) или NONE (например, LCK=FILE).

CSZ Число блоков по 64K, используемых драйвером длякэширования записей базы данных. Чем больше блоков,тем выше производительность. По умолчаниюиспользуется 4 блока. Максимально возможноеколичество блоков зависит от объема системной памяти.При просмотре записей в обратном порядке обновления,сделанные другими пользователями, не будут видны,пока не будет повторно выполнена функция SQLSelect().

Page 21: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с dBASE 2-11

Атрибут ЗначениеUSF Определяет, когда драйвер должен обновлять элементы

каталога DOS. Если этот атрибут равен 1, драйверобновляет элементы каталога после каждого COMMIT.Это приводит к снижению производительности. Поумолчанию действует значение 0. То есть драйверобновляет каталог при закрытии файла. В этом случаезависание системы до закрытия файла приводит к потерепоследних вставленных записей.

MS Этот атрибут используется для обратной совместимостисо старыми программами Q+E. Значение MS=0 позволитдрайверу понимать выражения SQL, встречающиеся вранних версиях драйверов Q+E. По умолчанию имеетзначение 1.

LCOMP Определяет метод блокировки: совместимый с dBASEили с Q+E. Значение LCOMP=DBASE заставляетдрайвер использовать dBASE-совместимую блокировку;а значение LCOMP=Q+E предписывает использованиеQ+E-совместимой блокировки. По умолчанию —dBASE.Q+E-совместимая блокировка нужна для совместимостис ранними версиями Q+E.

COMP Обеспечивает обратную совместимость с раннымиверсиями программ Q+E. Значение COMP=DBASEиспользуется для обратной совместимости; COMP=ANSI— для переносимости. По умолчанию используетсяANSI.

Пример:SQLConnect(ConnectionId,"DSN=DBASE_FILES;CS=ANSI;DB=C:\ODBC\EMP;

LCK=NONE");

Поддерживаемые типы данныхПрограмма SQL Access Manager поддерживает три типа данных для dBASE.Символьный тип данных (char) содержит фиксированную длину символьнойстроки и используется тэгами InTouch типа Message. Длина поля должна бытьопределена. dBASE поддерживает символьные поля максимальной длиной254 символов. Однако тэги типа Message имеют ограничение в 131 символ.Если текстовая переменная включает в себя большее количество символов чемпозволено для поля базы данных, строка будет усечена перед записью в базуданных.

Числовые и с плавающей точкой типы данных представляют теги InTouchтипа Integer или Real. Длина должны быть определена. Формат должен бытьWidth.Decimal. ЗначениеWidth определяет максимальное количество знаков встолбце. Значение Decimal задает количество знаков справа от десятичнойточки. dBASE может хранить аналоговые значения с точностью до 19 знаков.

Page 22: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-12 Глава 2

Работа с Microsoft AccessДля соединения с базой Microsoft Access необходимо выполнить функциюSQLConnect() в сценарии InTouch.

Формат функции SQLConnect()Функция SQLConnect() используется для соединения с базой данныхMicrosoft Access. Выполнение этой функции регистрирует вас на сервере базыданных и открывает соединение для выполнения других функций SQL.Формат строки соединения SQLConnect() должен быть следующий:SQLConnect(ConnectionId,"<attribute>=<value>;<attribute>=<value>;...");

Ниже описаны атрибуты, используемые в Microsoft Access. Они приведены втом порядке, в котором должны задаваться:

Атрибут ЗначениеDSN Имя источника данных, такое же как в Microsoft ODBC

Administrator илиDRV Это значение используется для совместимости с SQL

Access Manager, если имя источника данных (DSN) непредставлено в строке соединения. QELIB изменяет его всоответствии с именем источника данных.

Пример:SQLConnect(ConnectionId,"DSN=MSACC");

Поддерживаемые типы данныхSQL Access Manager поддерживает пять типов данных Microsoft Access.Допустимые типы данных зависят от версии используемого драйвера ODBC.Текстовый типа данных (text) содержит фиксированную длину символьнойстроки и используется тэгами InTouch типа Message. Длина поля должна бытьопределена. Microsoft Access поддерживает текстовые поля длиной до 255символов. Однако тэги типа Message имеют ограничение в 131 символ. Еслитекстовая переменная включает в себя большее количество символов чемпозволено для поля базы данных, строка будет усечена перед записью в базуданных. Драйвер Microsoft Access ODBC поддерживает до 17 символов взаголовке столбца. Максимальное количество столбцов при использованииSQLSetStatement( Select Col1, Col2, ... ) равно 40.

Для программ, использующих драйвер "SIMBA.DLL" для Microsoft Accessверсии 1.1 (включая Excel 5.0, Microsoft Word 6.0 и т. д.), допустимымичисловыми типами данных являются "short" или "long" для тэгов типа Integerи "singlefloat" или "doublefloat" для тэгов типа Real.

Для программ, использующих драйвер "ODBCJT16.DLL" для Microsoft Accessверсии 2.0, допустимыми числовыми типами данных являются "short" или"long" для тэгов типа Integer и "number with a modifier of Double or Single" длятэгов типа Real. Длина вычисляется автоматически в зависимости от типаданных и не должна указываться в определении шаблона таблицы (TableTemplate).

Page 23: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Работа с Paradox 2-13

Работа с ParadoxДля соединения с Paradox необходимо выполнить функцию SQLConnect() всценарии InTouch.

Формат функции SQLConnect()Функция SQLConnect() используется для соединения с базой данных Paradox.Выполнение этой функции регистрирует вас на сервере базы данных иоткрывает соединение для выполнения других функций SQL. Формат строкисоединения SQLConnect() должен быть следующий:

SQLConnect(ConnectionId,"<атрибут>=<значение>;<атрибут>=<значение>;...");

Далее описываются атрибуты, используемые Paradox. Они должны бытьопределены в следующем порядке:

Атрибут ЗначениеDSN Имя источника данных, такое же как в Microsoft ODBC

Administrator илиилиDRV Это значение используется для совместимости с SQL

Access Manager, если имя источника данных (DSN) непредставлено в строке соединения. QELIB изменяет его всоответствии с именем источника данных.

Пример:SQLConnect(ConnectionId,"DSN=PARADOX_FILE");

Поддерживаемые типы данныхInTouch SQL поддерживает три типа данных Paradox. Буквенноцифровой типданных содержит фиксированную длину символьной строки и используетсятэгами InTouch типа Message. Длина поля должна быть определена. Paradoxподдерживает буквенноцифровые поля длиной до 255 символов. Однако тэгитипа Message имеют ограничение в 131 символ. Если текстовая переменнаявключает в себя большее количество символов чем позволено для поля базыданных, строка будет усечена перед записью в базу данных.

Допустимыми числовыми типами данных являются "number" для тэгов типаInteger, Real или Discrete и "short" (целые значения между -32,767 и 32,767)для тэгов типа Integer или Discrete. Длина поля не должны указываться.

Page 24: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

2-14 Глава 2

Значения типов данных дляподдерживаемых СУБД

OracleТип данных Длина По

умолчаниюДиапазон Тип тэга

Char 255 символов 1 символ Текстовый

number 38 знаков 38 знаков Целый

Sybase или Microsoft SQL ServerТип данных Длина По

умолч.Диапазон Тип тэга

Char 255символов

Текстовый

int от-2,147,483,647 до

Целый

2,147,483,647

float 15 знаков от 1.7E-294 до1.7E+308

Действитель-ный

dBASEТип данных Длина По

умолч.Диапазон Тип тэга

char 254 символов Текстовый

numeric or 19 знаков Целый илидействи-тельный

float

Microsoft Access 1.1 (Simba.DLL)Тип данных Длина По

умолч.Диапазон Тип тэга

text 254 символа Текстовый

int Целый

Microsoft Access 2.0 (ODBCJT16.DLL), 7.0(ODBCJT32.DLL)

Тип данных Длина Поумолч.

Диапазон Тип тэга

text 254 символа Текстовый

number Целый

number Действи-тельный

Page 25: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Значения типов данных для поддерживаемых СУБД 2-15

ParadoxТип данных Длина По

умолч.Диапазон Тип тэга

alphanumericnumber

255 символов Текстовый,целый,действитель-ный илидискретный

short от-32,767 до32,767

Целый илидискретный

Page 26: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware
Page 27: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-1

Г Л А В А 3

Настройка SQL Access Manager

Утилита SQL Access Manager создает списки привязок (Bind Lists) и шаблонытаблиц (Table Templates). Список привязок ассоциирует колонки базы данныхс тэгами из словаря данных InTouch. Шаблон таблиц определяет структуру иформат новой таблицы в базе данных.

Содержание! Обзор программы SQL Access Manager! Использование специальных разделителей! Настройка шаблонов таблиц! Файл SQL.DEF

Page 28: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-2 Глава 3

Обзор программы SQL AccessManager

Когда приложение InTouch выполняет команду SQLCreateTable(), аргументшаблона таблиц определяет структуру нового файла базы данных.

При выполнении команды SQLInsert(), SQLSelect() или SQLUpdate()аргумент списка привязок определяет, какие тэги InTouch будутиспользоваться и какие колонки базы данных будут с ними связаны.

Настройка списка привязокСписок привязок определяет ассоциации столбцов базы данных с тэгами изсловаря данных InTouch.

" Как создать новый список привязок:

1. В меню Сервис выберите Диспетчер доступа SQL и нажмите на Списокпривязок. Или в Менеджере приложения (Application Explorer) подветкой Диспетчер доступа SQL дважды нажмите на Список привязок.

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

2. Нажмите кнопку Создать.

Page 29: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Обзор программы SQL Access Manager 3-3

3. Появится диалоговое окно Настройка списка привязок:

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

4. В поле Имя списка привязок введите имя списка.

# Имя списка привязок может быть до 32 символов в длину. Новыйсписок привязок связывает колонки базы данных с тэгами InTouch.Например, если создается список служащих, нужно ввести имя спискапривязок, которое связывает данные о служащих.

Примечание. Функции SQLInsert(), SQLSelect() и SQLUpdate()используют параметр списка привязок. Кроме того, при использованиифункции SQLExecute() имеет значение порядок тэгов, так как этафункция записывает тэги в определенной последовательности.

5. В поле Тэг или поле тэга введите имя .поля тэга InTouch.

# Словарь тэгов ассоциирует tagname.field с именем колонки в базеданных. Если этот тэг в данный момент не определен в словаре тэгов,нажмите на него дважды для открытия диалогового окна Словарьтэгов, чтобы определить новый тэг.

6. Нажмите кнопку Имя тэга для выбора существующего тэга. Появитсяокно броузера тэгов.

# Броузер тэгов будет отображать тэги из выбранного в данный моментисточника тэгов. Чтобы выбрать тэг, нажмите на него дважды и затемнажмите на OK. Для выбора .поля тэга нажмите на стрелку поле ивыберите .поле, которое хотите использовать. Затем нажмите OK.

$ Дополнительную информацию о броузере тэгов можно найти в«Руководстве пользователя InTouch».

7. Нажмите на кнопку Поле для добавления .поля к тэгу. Появитсядиалоговое окно Выберите имя поля.

Page 30: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-4 Глава 3

8. Нажмите на нужное .поле. Диалоговое окно закроется, а выбранное .полеавтоматически добавится к тэгу в поле Тэг или поле тэга.

$ Подробная информация о .полях тэгов содержится в главе 4«Руководства пользователя InTouch».

9. В поле Имя колонки введите имя колонки базы данных.

# Имя колонки может иметь длину до 30 символов. Это имя напрямуюсвязано с именем колонки базы данных. Имя колонки нужнозаключать в квадратные скобки в списке привязок, а также прииспользовании в сценарии, если имя содержит пробел. Например:WHERE EXPR= "[Pipe Flow} = " text (tagname,"#");

Также могут использоваться специальные разделители дляассоциации имени колонки с базой данных.

% For Дополнительную информацию о специальных разделителяхможно найти в разделе «Использование специальныхразделителей».

10. Нажмите Сдвиг вверх для перемещения выбранного тэга в списке наодин уровень вверх.

11. Нажмите Сдвиг вниз для перемещения выбранного тэга в списке на одинуровень вниз.

12. Нажмите Добавить элемент для добавления новых тэга или поля тэга иимени колонки в список привязок.

13. Нажмите Удалить элемент для удаления выбранных тэга или поля тэгаи имени колонки из списка привязок.

14. Нажмите Изменить элемент для изменения выбранных тэга или полятэга и имени колонки в списке привязок.

15. Нажмите OK для сохранения новой конфигурации списка привязок и длязакрытия диалогового окна.

# Можно нажать на кнопку Сохранить для сохранения новых данныхбез закрытия диалогового окна.

Page 31: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Обзор программы SQL Access Manager 3-5

" Как изменить список привязок:

1. В меню Сервис нажмите на Диспетчер доступа SQL, затем на Списокпривязок. Или в Менеджере приложения (Application Explorer) подветкой Диспетчер доступа SQL дважды нажмите на Список привязок.

2. Появится диалоговое окно Выберите список привязок:

3. Выберите имя списка привязок, которое нужно изменить, и нажмите накнопку Изменить. Появится диалоговое окно Настройка спискапривязок.

4. Измените нужные пункты.

5. Нажмите OK для сохранения изменений и закрытия диалогового окна.

% Дополнительную информацию о настройке списка привязок смотритевыше в подразделе «Как создать новый список привязок».

" Как удалить список привязок:

1. В меню Сервис нажмите на Диспетчер доступа SQL, затем на Списокпривязок. Или в Менеджере приложения (Application Explorer) подветкой Диспетчер доступа SQL дважды нажмите на Список привязок.

2. Появится диалоговое окно Выберите список привязок:

3. Выберите имя списка привязок, которое хотите удалить.

4. Нажмите кнопку Удалить. Появится окно сообщения, в котором дляподтверждения удаления выбранного списка привязок нажмите на кнопкуДа или на кнопку Нет — для отмены команды. Вновь откроетсядиалоговое окно Настройка списка привязок.

5. Нажмите OK для закрытия диалогового окна.

Page 32: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-6 Глава 3

Использование специальныхразделителей

Функции SQLInsert() и SQLUpdate() используют по умолчанию формат,включающий в себя текстовые строки с одинарными кавычками. Некоторыебазы данных SQL ожидают получения текстовых строк с другим типомразделителя. Например, Oracle ожидает строки данных, заключенные вскобки. При этом функция Delim() должна использоваться следующимобразом:

В диалоговом окне Настройка списка привязок, в поле Имя колонки, послеимени колонки введите ключевое слово "delim" (без учета регистра). Засловом "delim" должны вводиться:

• левая круглая скобка

• левый разделитель

• запятая

• правый разделитель

• правая круглая скобка

Пример: datestring delim (‘,‘)

Чтобы использовать одинаковый правый и левый разделитель, обозначьте егов круглых скобках без запятой.

Пример: datestring delim (‘ ‘)

В следующем примере используются разные правый и левый разделители.Обратите внимание где date delim (‘,’) вводится в поле Имя колонки:

% Подробная информация о записи даты и времени в поле даты Oracleсодержится в главе 2 в разделе "Работа с Oracle".

Page 33: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Настройка шаблонов таблиц 3-7

Настройка шаблонов таблицЭта команда создает шаблон таблиц, определяющий структуру и форматновой таблицы в базе данных.

" Как создать новый шаблон таблицы:

1. В меню Сервис нажмите на Диспетчер доступа SQL, затем на Шаблонтаблицы. Или в Менеджере приложения (Application Explorer) под веткойДиспетчер доступа SQL дважды нажмите на Шаблон таблицы.

# При выборе этой команды впервые появится диалоговое окноВыберите шаблон таблицы:

2. Нажмите кнопку Создать.

3. Появится диалоговое окно Настройка шаблона таблицы:

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

4. В поле Имя шаблона таблицы введите имя шаблона таблицы.

# Имя шаблона таблицы может иметь длину до 32 символов. Это имяиспользуется для идентификации структуры базы данных в функцииSQLCreateTable().

5. В поле Имя колонки введите имя колонки для шаблона таблицы.

Page 34: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-8 Глава 3

# Имя колонки может быть до 30 символов в длину.

6. В поле Тип колонки введите тип данных для колонки.

# Выбор типа данных зависит от используемой базы данных.

% Дополнительная информация о типах данных для различных СУБДсодержится в главе 2 «Поддерживаемые типы данных».

7. В поле Тип индекса выберите один из типов:Уникальное Каждое значение колонки должно быть уникальным.Неуникальное Каждое значение колонки может быть неуникальным.Нет Без индекса.

# При выполнении функции SQLCreateTable() автоматическисоздается индексный файл.

8. Выберите поле Допускать нулевые вхождения для ввода в эту колонкунулевых данных.

# InTouch не поддерживает нулевые данные. При вводе данных, еслизначение для тэга не указано, то оно будет следующим:Дискретное 0Целое 0Текстовое Строки без символов

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

9. Нажмите Добавить элемент для добавления нового имени колонки, типаколонки, длины и индексного типа в шаблон таблицы.

10. Нажмите Удалить элемент для удаления выбранных имени колонки,типа колонки, длины и индексного типа из списка шаблонов таблицы.

11. Нажмите Изменить элемент для изменения выбранных имени колонки,типа колонки, длины и индексного типа в списке шаблонов таблицы.

12. Нажмите OK, чтобы сохранить новую конфигурацию шаблона таблиц изакрыть диалоговое окно.

# Можно нажать на кнопку Сохранить, чтобы сохранитьустановленные данные без закрытия диалогового окна.

Page 35: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Настройка шаблонов таблиц 3-9

" Как изменить шаблон таблиц:

1. В меню Сервис нажмите на Диспетчер доступа SQL, затем на Шаблонтаблицы. Или в Менеджере приложения (Application Explorer) под веткойДиспетчер доступа SQL дважды нажмите на Шаблон таблицы.

2. Появится диалоговое окно Выберите шаблон таблицы:

3. Выберите имя шаблона таблиц и нажмите кнопку Изменить. Появитсядиалоговое окно Настройка шаблона таблицы.

4. Измените нужные пункты.

5. Нажмите OK, чтобы сохранить сделанные изменения и закрытьдиалоговое окно.

% Дополнительную информацию о настройке шаблонов таблиц можнонайти выше в подразделе «Как создать новый шаблон таблиц».

" Как удалить шаблон таблиц:

1. В меню Сервис нажмите на Диспетчер доступа SQL, затем на Шаблонтаблицы. Или в Менеджере приложения (Application Explorer) под веткойДиспетчер доступа SQL дважды нажмите на Шаблон таблицы.

2. Появится диалоговое окно Выберите шаблон таблицы:

3. Выберите имя шаблона таблиц, которое нужно удалить.

4. Нажмите на кнопку Удалить. Появится окно сообщения, в котором дляподтверждения удаления выбранного списка привязок нажмите на кнопкуДа или на кнопку Нет — для отмены команды. Вновь откроетсядиалоговое окно Настройка шаблона таблицы.

5. Нажмите OK для закрытия диалогового окна.

Page 36: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

3-10 Глава 3

Файл SQL.DEFПрограмма SQL Access Manager сохраняет информацию для списков привязоки шаблонов таблиц в файле "SQL.DEF" в формате разделенных запятымипеременных (.CSV). Этот файл можно просмотреть или изменить с помощьюSQL Access Manager или любого текстового редактора, такого, как Notepad(Блокнот). Данные запишутся в файл в следующем виде:

:BindListName,BindListNameTagname1.FieldName,ColumnName1Tagname2.FieldName,ColumnName2Tagname3.FieldName,ColumnName3

:TableTemplateName,TableTemplateNameColumnName1,ColumnType,[ColumnLength],Null,IndexColumnName2,ColumnType,[ColumnLength],Null,IndexColumnName3,ColumnType,[ColumnLength],Null,Index

Page 37: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-1

Г Л А В А 4

Использование функций SQL

Приложение InTouch использует функции SQL для работы с базами данных.Эти функции являются расширениями стандартных функций сценариевInTouch и могут использоваться в любом сценарии. Они позволяют выбирать,изменять, вставлять или удалять записи в используемых таблицах.

Содержание! Функции SQL! Параметры SQL! Использование функций SQL в сценариях InTouch! Определение сложных запросов

Page 38: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-2 Глава 4

Функции SQLЭтот раздел содержит описание каждой функции SQL. Следует помнить о том,что все операции SQL выполняются синхронно. Управление не возвращаетсяприложению InTouch, пока не завершена работа SQL (выполнение опроса,трендов и т. д. приостанавливается).

Все функции SQL, за исключением SQLNumRows(), возвращают ResultCode(код результата). Если ResultCode не равен нулю, это значит, что функция неотработала успешно, и следует перейти к другим операциям. ResultCodeможет использоваться функцией SQLErrorMsg().

Общий формат функций SQL:SQLFunction(Parameter1, Parameter2,...)

" Подробная информация о функциях SQL и их использовании содержитсяв "Справочном руководстве InTouch".

Функция ОписаниеSQLAppendStatement Продолжает выполнение инструкции SQL,

используя содержимое SQLStatementSQLClearParam Очищает значение конкретного параметра.SQLClearStatement Освобождает ресурсы, которые

ассоциируются с инструкцией, определеннойв SQLHandle.

SQLClearTable Удаляет все записи в таблице базы данных,не удаляя самой таблицы.

SQLCommit Определяет конец группы командтранзакции.

SQLConnect Связывает приложение InTouch с базойданных, определенной в ConnectString.

SQLCreateTable Создает таблицу в базе данных, используяпараметры шаблона таблиц.

SQLDelete Удалят запись или записи.SQLDisconnect Отключает пользователя от базы данных.SQLDropTable Уничтожает таблицу.SQLEnd Используется после SQLSelect() для

освобождения ресурсов, которые былизаняты для хранения таблицы результатов.

SQLErrorMsg Отыскивает сообщение о текстовой ошибке,которое ассоциируется с конкретнымResultCode. ErrorMsg является системнымтэгом InTouch типа Message (длиной до 131символа), который ассоциируется сResultCode.

SQLExecute Выполняет инструкцию SQL. Еслиинструкция является инструкцией выбора,то параметр BindList обозначает имяСпискаСвязей, используемое длясвязывания столбцов базы данных с тэгами.Если значение BindList равно нулю, связитэгов не формируются.

SQLFirst Выбирает первую запись в таблицерезультатов, созданную последней функциейSQLSelect().

SQLGetRecord Отыскивает запись по RecordNumber ввыбранном в настоящий момент буфере.

Page 39: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Функции SQL 4-3

Функция ОписаниеSQLInsert Вставляет новую запись в таблицу,

используя значения тэгов в имеющемсяBindList. Параметр BindList определяет,какой из тэгов InTouch используется и скаким столбцом базы данных он связан.

SQLInsertEnd Освобождает инструкцию.SQLInsertExecute Выполняет уже готовую инструкцию.SQLInsertPrepare Создает и подготавливает инструкцию Insert

для выполнения.SQLLast Выбирает последнюю запись в таблице

результатов, которая создана последнейфункцией SQLSelect.

SQLLoadStatement Читает инструкцию, которая находится вFileName. С этой точки зрения, даннаяинструкция подобна той, которая созданафункцией SQLSetStatement(), и может бытьдобавлена при помощиSQLAppendStatement() или выполненафункцией SQLExecute(). В файле можетбыть только одна такая инструкция. Однакофункция SQLAppendStatement() можетиспользоваться для добавления кинструкции, если не было обращения кфункциям SQLPrepareStatement() иSQLExecute().

SQLManageDSN Выолняет программу Microsoft ODBCManager. Она может быть использована длядобавления, удаления или изменения всехимен источников данных.

SQLNext Выбирает следующую запись из таблицырезультатов, которая создана последнейфункцией SQLSelect().

SQLNumRows Указывает, сколько строк обнаружилкритерий, определенный в последнейфункции SQLSelect().

SQLPrepareStatement Подготавливает существующую инструкциюSQL для использования ее функциейSQLSetParam(). Инструкция можетсоздаваться функцией SQLSetStatement()или SQLLoadStatement().().

SQLPrev Выбирает предыдущие записи из таблицырезультатов, которая создана последнейфункцией SQLSelect()..

Page 40: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-4 Глава 4

Функция ОписаниеSQLRollback Команда SQLRollback() производит

отмену, или "откат" последнего недавновыполненного набора транзакций. Набортранзакций – это набор команд,выполненных в промежутке междукомандами SQLTransact() и SQLCommit()или SQLRollback(). Набор транзакцийобрабатывается как единая транзакция.После выполнения команды SQLTransact()все последующие операции не выполняютсяв базе данных, пока не будет выполненакоманда SQLCommit().

SQLSelect Дает указания базе данных искать данные втаблице. После выполнения SQLSelect() впамяти создается временная таблицарезультатов, содержащая записи, которыемогут быть просмотрены с помощью командSQLFirst(), SQLLast(), SQLNext(),SQLPrev().

SQLSetParamChar Устанавливает значение конкретногопараметра в конкретной строке. Этафункция может вызываться много раз передвыполнением, получением результатазначение параметра, которое былоустановлено для связи со всемипереданными значениями.

SQLSetParamDate Устанавливает значение конкретногопараметра даты в конкретной строке.

SQLSetParamDateTime Устанавливает значение конкретногопараметра даты-времени в конкретнойстроке.

SQLSetParamDecimal Устанавливает значение конкретногодесятичного параметра в конкретной строке.

SQLSetParamFloat Устанавливает значение конкретногопараметра в конкретном ParameterValue.

SQLSetParamInt Устанавливает значение конкретногопараметра в конкретном ParameterValue.

SQLSetParamLong Устанавливает значение конкретногопараметра в конкретном ParameterValue.

SQLSetParamNull Устанавливает значение конкретногопараметра в нуль.

SQLSetParamTime Устанавливает значение конкретногопараметра времени в конкретной строке.

SQLSetStatement Запускает буфер инструкций SQL, используясодержимое SQLStatement на установленномсоединении, ConnectionID. В ConnectionIDможет находиться только один буферинструкций SQL.

Page 41: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Функции SQL 4-5

Функция ОписаниеSQLTransact Определяет начало группы команд

транзакции. Эта группа производитдействия в интервале между выполнениемкоманд SQLTransact() и SQLCommit() иназывается набором транзакций. Набортранзакций обрабатывается как единаятранзакция. После выполнения командыSQLTransact() все последующие операциине фиксируются в базе данных до тех пор,пока не будет выполнена командаSQLCommit().

SQLUpdate Обновляет запись в соответствие созначением текущего тэга.

SQLUpdateCurrent Берет выбранную в данный момент запись иобновляет ее любым новым значениемInTouch. .

Page 42: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-6 Глава 4

Параметры SQLЭтот раздел описывает параметры, необходимые для каждой функции SQL.Когда параметр вносится в сценарий заключенным в кавычки, например,«Параметр1», будет использована заданная строка. Если же кавычек нет, топредполагается , что Параметр1 является тэгом и система обратится к словарютэгов InTouch за его значением.

Пример:"c:\main\file" против Location

где : location — это тэг InTouch текстового типа"c:\main\file" — текстовая строка

Один или несколько следующих параметров будут входить в большинствофункций SQL:

Параметр ОписаниеBindList Соответствует одному из имен списка связей в файле

SQL.DEF.ConnectionID Внутренний целочисленный тэг, созданный

пользователем для хранения номера (ID),присвоенного функцией соединения SQL для каждойсвязи в базе данных.

ConnectString Строка, которая идентифицирует базу данных идополнительную информацию, используемуюфункцией SQLConnect().для входа в систему.

ErrorMsg Текстовая переменная, содержащая описаниесообщения об ошибке.Подробное описание всех

сообщений об ошибках содержится в главе 5,«Отладка приложений».

FileName Имя файла, в котором содержатся данные.MaxLen Максимальный размер столбца, с которым

ассоциируется данный параметр. Эта установкаопределяет какого типа параметр, переменныхсимволов или длинных переменных символов. ÅñëèMaxLen меньше или равен самой длиннойсимвольной строке, дозволенной в базе данных, тоэто будет параметр типа переменных символов, аесли больше, то он будет относиться к типу длинныхпеременных символов.

Page 43: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Параметры SQL 4-7

Параметр ОписаниеOrderByExpression Определяет столбцы и порядок сортировки.

Сортировка может происходить только по именамстолбцов. Выражению должен быть заданформат:ColumnName [ASC|DESC]Сортироватьвыбранную таблицу по имени столбца (например,менеджер) в возрастающем порядке:"manager ASC"Сортировать по нескольким колонкам, форматвыражения следующий:ColumnName [ASC|DESC],ColumnName [ASC|DESC]Сортировать выбранную таблицу по одному именистолбца (например, температура) в возрастающемпорядке, а по другому имени (время) — вубывающем:"temperature ASC, time DESC"

ParameterNumber Фактический номер параметра в инструкции.ParameterType Тип данных конкретного параметра. Правильные

значения приведены в таблице:

Тип Значение ОписаниеChar 1 Фиксированная длина

набранных пробеловVar Char 2 Строка переменной

длиныDecimal 3 Номер BCDInteger 4 4-х байтное целое

число со знакомSmall integer 5 2-х байтное целое

число со знакомVar Char 2 Строка переменной

длиныDecimal 3 Номер BCDInteger 4 4-х байтное целое

число со знакомSmall integer 5 2-х байтное целое

число со знакомFloat 6 4-х байтное число с

плавающей точкойDoublePrecisionFloat

7 8-ми байтное число сплавающей точкой

DateTime 8 26-ти байтноезначение даты-времени

Date 111 26-ти байтноезначение даты-времени

Page 44: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-8 Глава 4

Time 112 26-ти байтноезначение даты-времени

No Type 0 Нет типа данныхParameterValue Установка фактического значения.Precision Значение с точностью до десятых, максимальный

размер символа или длина значения даты-времени вбайтах.

RecordNumber Фактический номер записи для поиска.ResultCode Целая переменная возвращаемая из большинства

функций SQL. ResultCode возвращается нулем (0),если функция достигла успеха и отрицательнойвеличиной, если не достигла.Подробная информация

содержится в главе 5, «Отладка приложений».Scale Десятичный масштаб значения. Это значение

требуется только в том случае ,если оно применимо кпараметру при установке на нуль.

SQLHandle Когда используются инструкции с улучшеннымифункциональными возможностями, SQL возвращаетSQLHandle и использует его для внутренних нужд.

SQLStatement Фактическая инструкция,пример:ResultCode=SQLSetStatement(ConnectionID,”Select LotNo, LotName fromLotInfo”);

TableName Имя таблицы базы данных, к которой нужнообратиться.

TemplateName Имя определения шаблона, которое нужноиспользовать.

WhereExpression Определяет состояние, которое может быть истиннымили ложным для любой строки в таблице. Командаизвлекает из таблицы лишь те строки, для которыхусловие является истинным. Выражение должноиметь следующий формат:ColumnName comparison_operator expression

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

Следующий пример будет выбирать все строки сименами столбцов, содержащих значениеEmployeeID:name='EmployeeID'Следующий пример будет выбирать все строки,содержащие часть чисел от 100 до 199:partno>=100 and partno<200Следующий пример будет выбирать все строки, гдезначение температуры превышает 350:temperature>350

Page 45: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Использование функций SQL в сценариях InTouch 4-9

Использование функций SQL всценариях InTouch

Функции SQL могут быть автоматически вставлены в сценарии InTouch затекущей позицией курсора путем нажатия на кнопку Add-ons в диалогередактора сценариев QuickScript.

" Подробную информацию о сценариях InTouch можно найти в главе 6"Руководства пользователя InTouch".

Определение сложных запросовПрограмма SQL Access Manager позволяет определять сложные запросы иинструкции SQL. Эти запросы могут формироваться динамическим путемлибо находиться во внешнем файле. К тому же, эти запросы могут содержатьпараметры, которые должны быть «переданы» в запрос за время выполнения.Запросы должны быть выполнены и, по возможности, иметь возвращаемыерезультаты. SQL Access Manager API позволяет выполнять любуюинструкцию SQL, с которой может оперировать база данных и отыскиватьрезультат этого запроса. Хранимые в памяти процедуры доступны длявыполнения. (Эти процедуры поддерживаются не полностью.)

# Подробную информацию о процедурах, хранимых в памяти, можно найтив разделе «Поддержка хранимых в памяти процедур».

Для создания сложных запросов и строковых выражений используетсяфункция SQLSetStatement. В случае, если строковое выражение превышает131 символ, используйте функцию SQLAppendStatement. Например:SQLSetStatement( Connect_Id, “Select Speed, Ser_No fromtablename where Ser_No =’” + Serial_input + “’”);

В следующем примере SQLHandle устанавливается в нуль, поэтомуинструкции перед выполнением не нужно обращаться кSQLPepare(Connect_Id,SQLhandle). Поскольку SQLHandle не создаетсяфункцией SQLPepare(), то для правильного завершения инструкции выборанеобходимо использовать функцию SQLEnd() вместо SQLClearStatement().SQLExceute(Connect_Id,0);

SQLSetStatement( Connect_Id, “Select Speed, Ser_No fromtablename where Ser_No =’” + Serial_input + “’”);

SQLPrepareStatement(Connect_Id,SQlHandle);

В следующем примере SQLHandle создается функциейSQLPrepareStatement() и используется в SQLExecute(). Для завершенияинструкции выбора используйте SQLClearStatment(), чтобы ресурсы иSQLHandle были полностью освобождены.SQLExceute(Connect_Id,SqlHandle);

Page 46: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-10 Глава 4

Динамическое создание запросовДля динамического создания запросов требуются две дополнительныефункции: SQLSetStatement() и SQLAppendStatement(). ФункцияSQLSetStatement() запускает новую инструкцию SQL. Это может быть любаяправильная инструкция SQL, включающая имя хранимой в памятипроцедуры. Поскольку InTouch поддерживает только символьные строки, непревышающие 131 символ, то SQLAppendStatement() позволяет соединятьдополнительные строки в инструкцию.

Примечание. Жирным шрифтом выделены текстовые обращения ккомандам языка SQL.

ПримерResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,LotName, LotDescription, LotQuantity from LotInfo,ProductionInfo" );

ResultCode = SQLAppendStatement (ConnectionID, " whereLotInfo.LotNo = ProductionInfo.LotNo" );

ResultCode = SQLAppendStatement (ConnectionID, " order byLotNo,NotName,LotQuantity" );

Эта инструкция готова для выполнения.

Примечание. Во многих столбцах и именах таблиц базы данных необходимоучитывать регистр. Чтобы сценарий нормально функционировал, именадолжны быть такими же, как они созданы в таблицах базы данных.

Чтение инструкций SQL из файлаЗапросы можно создавать в любых СУБД (таких как Microsoft Access илиСУБД третьих фирм), а затем выполнять их с помощью SQL Access дляInTouch. Поскольку различные СУБД будут создавать свои инструкции SQL,их можно легко сохранить в файле, используя функцию SQLLoadStatement()для добавления к SQL Access API.

ПримерResultCode = SQLLoadStatement ( ConnectionID,"c:\myappdir\lotquery.sql" );

Эта инструкция готова для выполнения.

Page 47: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Определение сложных запросов 4-11

Изменение расширенных инструкций SQLЧтобы создать полноценный набор функций SQL, программа SQL AccessManager позволяет определять оператор "где", который будет содержатьзначение тэга InTouch. Для определения параметров SQL в среде выполненияпредусмотрены следующие функции:• SQLPrepareStatement()• SQLSetParamType()• SQLClearStatement()• SQLClearParam()

Для выполнения замены параметра в инструкции SQL вставьте "?" в то местоинструкции, где позднее должен быть определен параметр. Инструкция«готовится», параметры «устанавливаются» в инструкции, а потом инструкциявыполняется.

SQLPrepareStatement() подготавливает инструкцию для выполнения, но невыполняет инструкцию, а лишь делает ее активной, чтобы можно былоустановить значение параметра. SQLSetParamType() — это набор функций,которые позволяют устанавливать значения параметров в инструкции SQL.

ПримерResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,LotName, LotDescription, LotQuantity from LotInfo,ProductionInfo" );

ResultCode = SQLAppendStatement (ConnectionID, " whereLotInfo.LotNo = ?");

ResultCode = SQLAppendStatement (ConnectionID, " order byLotNo,NotName,LotQuantity" );

ResultCode = SQLPrepareStatement (ConnectionID, SQLHandle);

{return the statement handle into tag 'SQLHandle'}

ResultCode = SQLSetParamInt ( SQLHandle, 1, tagLotNumber );

{put the value of tagLotNumber into param}

Поскольку инструкция имеет лишь один параметр, она готова длявыполнения.

Одновременно с выполнением и завершением подготовки инструкции можетбыть вызвана функция SQLClearStatement() для освобождения ресурсов,ассоциируемых с этой инструкцией.

Примечание. SQLEnd() вызывается для освобождения инструкций SQL «безимени» (созданных существующими функциями SQL Access) и инструкций,созданных функциями SQLSetStatement() и SQLLoadStatement(), но еще неготовых.

Page 48: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

4-12 Глава 4

Выполнение расширенных инструкций SQLПосле того, как инструкция либо создана динамическим путем, либо считанаиз файла, затем произвольно подготовлена и изменена, она готова квыполнению. Для выполнения инструкции SQL Access Manager APIиспользует функцию SQLExecute(). SQLExecute() выполнит либо активнуюна данный момент инструкцию (т. е. созданную с помощьюSQLSetStatement() или SQLLoadStatement()), либо инструкцию, котораяпредварительно подготовлена и определяется основным параметроминструкции.

Пример 1ResultCode = SQLLoadStatement ( ConnectionID,"c:\myappdir\lotquery.sql" );

ResultCode = SQLExecute (ConnectionID, "BindList", 0);

{put the results of the select into the tags specified inBindList. prepared statement handle is zero}

ResultCode = SQLNext ( ConnectionID );

{Get results of Select}

Пример 2ResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,LotName, LotDescription, LotQuantity from LotInfo,ProductionInfo" );

ResultCode = SQLAppendStatement (ConnectionID, " whereLotInfo.LotNo = ?");

{question mark means I'll get back to you}

ResultCode = SQLAppendStatement (ConnectionID, " order byLotNo,NotName,LotQuantity" );

ResultCode = SQLPrepareStatement (ConnectionID, SQLHandle);

{return the statement handle into tag 'SQLHandle'}

ResultCode = SQLSetParamInt ( SQLHandle, 1, tagLotNumber );

{put the value of tagLotNumber into param}

ResultCode = SQLExecute (ConnectionID, "BindList",SQLHandle); {put the results of the Select into the tagsspecified in

BindList prepared statement handle is in SQLHandle}

ResultCode = SQLNext ( ConnectionID );

{Get results of Select }

Page 49: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Определение сложных запросов 4-13

Пример 3SQLSetStatement – эта инструкция должна использоваться, когда сложныезапросы и строчные выражения превышают 131 символ. Если строчноевыражение больше чем 131 символ, используйте SQLAppend. Например:SQLSetStatement( Connect_Id, “Select Speed, Ser_No fromtablename where Ser_No =’” + Serial_input + “’”);

SQLExceute(Connect_Id,0);

В этом примере SQLhandle устанавливается в нуль, поэтому инструкции передвыполнением не нужно вызывать SQLPepare(Connect_Id,SQLhandle).Поскольку SQLHandle не создается функцией SQLPepare(), то дляправильного завершения инструкции выбора используйте функцию SQLEnd()вместо SQLClearStatement().SQLSetStatement( Connect_Id, “Select Speed, Ser_No fromtablename where Ser_No =’” + Serial_input + “’”);SQLPrepareStatement(Connect_Id,SQlHandle);

SQLExceute(Connect_Id,SqlHandle);

В этом примере SQLhandle создается с помощью SqlPrepareStatement ииспользует функцию SQLExceute. Для завершения инструкции выбораиспользуйте SQLClearStatment(), чтобы ресурсы и SQLHandle былиполностью освобождены.

Поддержка хранимых в памяти процедурФункция SQLExecute() поддерживает выполнение некоторых хранимых впамяти процедур. Например, предположим, что вы создаете хранимые впамяти процедуры на сервере базы данных "LotInfoProc," который содержитследующие инструкции выбора: "Select LotNo, LotName from LotInfo." Длявыполнения процедуры и получения результатов необходимо написатьследующий сценарий:

Для Microsoft SQL ServerResultCode = SQLSetStatement ( ConnectionID, "LotInfoProc");

ResultCode = SQLExecute(ConnectionID, "BindList", 0);

ResultCode = SQLNext ( ConnectionID );

{ Get results of Select}

Для Oracle или Microsoft AccessResultCode = SQLSetStatement ( ConnectionID, "{CALLLotInfoProc}" );

ResultCode = SQLExecute(ConnectionID, "BindList", 0);

ResultCode = SQLNext ( ConnectionID );

{ Get results of Select}

Page 50: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

5-1

Г Л А В А 5

Отладка

Эта глава рассказывает о том, как производить отладку приложений SQL,используя коды результатов, возвращаемые функциями SQL. Первый разделглавы описывает функцию SQLErrorMsg(), содержит таблицу кодоврезультатов SQL и соответствующие сообщения об ошибках. Второй разделсодержит таблицы с сообщениями об ошибках базы данных.

Содержание! Функции отладки! Сообщения об ошибках базы данных

Page 51: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

5-2 Глава 5

Функции отладкиВсе функции SQL возвращают ResultCode, который может быть использовандля отладки. Функция SQLErrorMsg() возвращает сообщение об ошибке,соответствующее ResultCode.

Пример:ErrorMsg=SQLErrorMsg(ResultCode);

где : ErrorMsg внутренний текстовый тэг.ResultCode целочисленная величина, полученная отпредыдущей функции SQL.

Сообщения об ошибках с кодом результатаЗа дополнительной информацией о кодах результата, которая не изложены внастоящем руководстве, обращайтесь к документации по используемой базеданных и просмотрите журнал Wonderware Logger.

Функция SQLErrorMsg() устанавливает значение текстового тэга ErrorMsgприложения InTouch. Ниже приведены некоторые возможные кодырезультата SQL с описанием соответствующих сообщений об ошибках:

Кодрезультата

Сообщение обошибке

Описание

0 Не было ошибок Успешный ввод команды.-5 Нет больше рядов

для выборкиДостигнута последняя запись втаблице.

-1001 Недостаточно памяти Недостаточно памяти длявыполнения данной функции.

-1002 Неверная связь Неправильное соединение,переданное функции.

-1003 Не было найденосписка привязок

Заданное имя списка связей несуществует.

-1004 Не были найденышаблоны

Заданное имя шаблона таблицыне существует.

-1005 Внутренняя ошибка Произошла внутренняя ошибка.Обратитесь в службутехнической поддержки.

-1006 Предупреждение:строка - null

Предупреждение: прочитанная вбазе данных строка – нулевая.

-1007 Предупреждение:Строка была усечена

Предупреждение: строка,прочитанная в базе данных,превышает 131 символ ипроизвольно усечена.

-1008 Нет оператора where Нет оператора Where в командеDelete.

-1009 Ошибка присоединении

Просмотрите в журналеWonderware Logger детальноеописание сбоя соединения.

-1010 База данных,указанная в блокеDB= строкисоединения, несуществует

Заданная база данных несуществует.

Page 52: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Сообщения об ошибках базы данных 5-3

Кодрезультата

Сообщение обошибке

Описание

-1011 Не было выбранорядов

Попытка выполнить командыSQLNumRows(), SQLFirst(),SQLNext(), SQLPrev() безвыполнения SQLSelect().

-4149 Неверный операторсоединения илиуказатель запроса

Неправильно определен типстолбца. Например, если типстолбца в шаблоне таблицыопределен как character вместоchar для файла dBASE, то будетвозвращена данная ошибка.

Сообщения об ошибках базыданных

OracleСообщение об ошибке РешениеORA-03112 - Host String Syntaxerror

Если файл NETINIT.EXE незапущен, поместите его в папку"Автозагрузка" Windows. Если вызапустили файл NETINIT.EXE ихотите установить более одногосоединения, необходимо выделитьдополнительную память. Для этогонужно установить параметрWIN_REMOTE_SESSIONS в файлеCONFIG.ORA равный числутребуемых соединений. Следующийпример выделит память для 4-хсоединений:WIN_REMOTE_SESSIONS=4

ORA-3121 - No interface driverconnected

Запустите соответствующийSQL*NET TSR для сетевой системыдо входа в Windows и использованияInTouch SQL Access.

ORA-6435 - NetBIOS: Unable to addlocal name to name table

Необходимо выполнение сетевогоПО (Novell, LAN Manager, и т. п.).

ORA-09301 - Local kernel onlysupported in standard mode

Укажите имя сервера ("SRVR=") встроке соединения.

ORA-06430 - Unable to makeconnection

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

Page 53: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

5-4 Глава 5

Sybase или Microsoft SQL ServerСообщение об ошибке РешениеYou cannot have more than onestatement active at a time

Попытайтесь выполнить командуSQL после выполнения SQLSelect().Выполните SQLEnd() дляосвобождения системных ресурсовSQLSelect() или используйтеотдельный ConnectionId для второйинструкции.

There is not enough memory availableto process the command

Попытайтесь повторить загрузкусистемы рабочей станции клиента.

Invalid object name table name Имя таблицы в используемой базеданных не существует. Попробуйтезадать имя DB=database.

dBASEСообщение об ошибке РешениеFile or DLL not found В Windows файл QEDBF.DLL

должен находиться либо в текущемкаталоге, либо в каталоге\windows\system, указанном в путиDOS .

Invalid connection Убедитесь в наличии файлов DLL,указанных в пути. Для поддержкиDBF необходим файл QLDBF.DLL.

The connection or statement handleyou provided is not valid

Дополнительно просмотрите журналWonderware Logger. В инструкциимогут быть синтаксические ошибки.

Page 54: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Ошибка! Только основной документ. А-1

П Р И Л О Ж Е Н И Е A

Резервные ключевые слова SQLAccess и ODBC

В этом приложении перечислены ключевые слова, запрещенные дляиспользования в списках связей и шаблонах таблиц SQL Access, и винтерфейсе Open Database Connectivity (ODBC).

Если резервное ключевое слово будет использовано в качестве заголовкастолбца в списке связей или в шаблоне таблицы, будет сгенерированосообщение об ошибке в Wonderware Logger. Тип сообщения об ошибкезависит от используемого драйвера ODBC и от местонахождения ключевогослова. Например, наиболее частой ошибкой является использование словDATE и TIME в качестве заголовка столбца в списке связей или в шаблонетаблицы. Во избежание этой ошибки используйте немного отличныезаголовки, напр., "aDATE" и "aTIME".

Резервные ключевые слова определяются языком SQL, используемымпрограммой InTouch SQL Access. Они также распознаются используемымдрайвером ODBC. SQL Access передает команду SQL, содержащую хотя быодно резервное ключевое слово, в файл ODBC.DLL. Если команда SQL неможет быть интерпретирована корректно, SQL Access генерирует сообщениеоб ошибке в журнале Wonderware Logger.

Резервные ключевые слова приводятся ниже в алфавитном порядке:ABSOLUTEADAADDALLALLOCATEALTERANDANYAREASASCASSERTIONATAUTHORIZATIONAVGBEGINBETWEENBITBIT_LENGTHBYCASCADECASCADEDCASECASTCATALOGCHARCHAR_LENGTHCHARACTERCHARACTER_LENGTHCHECKCLOSE COALESCECOBOL

COLLATECOLLATIONCOLUMNCOMMITCONNECTCONNECTIONCONSTRAINTCONSTRAINTSCONTINUECONVERTCORRESPONDINGCOUNTCREATECURRENTCURRENT_DATECURRENT_TIMECURRENT_TIMESTAMPCURSORDATEDAYDEALLOCATEDECDECIMALDECLAREDEFERRABLEDEFERREDENTFDESCDESCRIBEDESCRIPTORDIAGNOSTICSDICTIONARY

DISCONNECTDISPLACEMENTDISTINCTDOMAINDOUBLEDROPELSEENDEESCEXCEPTEXCEPTIONEXECEXECUTEEXISTSEXTERNALEXTRACTFALSEFETCHFIRSTFLOATFOR FOREIGNFORTRANFOUNDFROM FULLGETGLOBALGOGOTOGRANTGROUPHAVINGHOUR

Page 55: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

A-2 Приложение A

IDENTITYIGNOREIMMEDIATE

Page 56: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

A-3 Приложение A

ININCLUDEINDEXINDICATORINITIALLYINNERINPUTINSENSITIVEEINFЬGENINTEGERINTERSECTINTERVALLINTOISISOLATIONJOINKEYLANGUAGELASTNACH-LINKSLEVELLIKELOCALLOWERMATCHMAXMINMINUTEMODULEMONTHMUMPSNAMESNATIONALNCHARNEXTNONENOTNULLNULLIF

NUMERICOCTET_LENGTHOFOFFONONLYOPENOPTIONORORDEROUTEROUTPUTOVERLAPSPARTIALPASCALPLIPOSITIONPRECISIONPREPAREPRESERVEPRIMARYPRIORPRIVILEGESPROCEDUREPUBLICRESTRICTREVOKENACH RECHTSROLLBACKROWSSCHEMASCROLLSECONDSECTIONSELECTSEQUENCESETSIZESMALLINTSOME

SQLSQLCASQLCODESQLERRORSQLSTATESQLWARNINGSUBSTRINGSUMSYSTEMTABLETEMPORARYTHENTIMETIMESTAMPTIMEZONE_HOURTIMEZONE_MINUTOTRANSACTIONTRANSLATETRANSLATIONTRUEUNIONUNIQUEUNKNOWNUPDATEUPPERUSAGEOPRNUSINGWERTVALUESVARCHARVARINGVIEWWHENWHENEVERWHEREWITHWORKYEAR

Page 57: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

I-1

Предметныйуказатель

“B”BindListName, 4-5

“C”Column Name, 3-4ConnectionID, 4-5ConnectString, 4-5CSV, 1-2“,3-10

“D”dBASEПоддерживаемые типы данных, 2-11“,2-14Требования к соединению, 2-10

DBNMP3.DLL, 2-8Delim, функция, 3-6

“E”ErrorMsg, 4-5

“F”FileName, 4-5

“M”MaxLen, 4-5Microsoft AccessПоддерживаемые типы данных, 2-12“,2-14Требования к соединению, 2-12

Microsoft SQL Serverнастройка клиента, 2-8Поддерживаемые типы данных, 2-9Требования к соединению, 2-8

“O”ODBC.INI, 1-5OracleПоддерживаемые типы данных, 2-14

Oracle 6, 2-2запуск SQL*Net TSR и NETINIT.EXE, 2-2настройка клиента для Windows, 2-2Требования к соединению, 2-2

Oracle 7, 2-4Настройка имени источника данных, 2-5

OrderByExpression, 4-6

“P”ParadoxПоддерживаемые типы данных, 2-13“,2-16Требования к соединению, 2-13

ParameterNumber, 4-6Parameters, 4-5ParameterType, 4-6ParameterValue, 4-7Precision, 4-7

“Q”QuickScripts, 4-8

“R”RecordNumber, 4-7ResultCode, 4-7“,5-2

“S”Scale, 4-7SQL Access ManagerВведение, 1-2Обзор, 3-2

SQL Function format, 4-2SQL.DEF, 1-2“,3-10SQLAppendStatement, 4-2SQLClearParam, 4-2SQLClearStatement, 4-2SQLClearTable, 4-2SQLCommit, 4-2SQLConnect, 2-2“,2-8“,4-2SQLCreateTable, 4-2SQLDelete, 4-2SQLDisconnect, 4-2SQLDropTable, 4-2SQLEnd, 4-2SQLErrorMsg, 4-2“,5-2SQLExecute, 4-2SQLFirst, 4-2SQLGetRecord, 4-2SQLHandle, 4-7SQLInsert, 4-3SQLInsert, 3-6SQLInsertEnd, 4-3SQLInsertExecute, 4-3SQLInsertPrepare, 4-3SQLLast, 4-3SQLLoadStatement, 4-3

Page 58: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

I-2 Предметный указатель

SQLManageDSN, 4-3SQLNext, 4-3SQLNumRows, 4-3SQLPrepareStatement, 4-3SQLPrev, 4-3SQLRollback, 4-3SQLSelect, 4-4SQLSetParamChar, 4-4SQLSetParamDate, 4-4SQLSetParamDateTime, 4-4SQLSetParamDecimal, 4-4SQLSetParamFloat, 4-4SQLSetParamInt, 4-4SQLSetParamLong, 4-4SQLSetParamNull, 4-4SQLSetParamTime, 4-4SQLSetStatement, 4-4SQLStatement, 4-7SQLTransact, 4-4SQLUpdate, 3-6“,4-4SQLUpdateCurrent, 4-4Structured Query Language, 1-1SybaseНастройка клиента, 2-8Поддерживаемые типы данных, 2-9“,2-14Требования к соединению, 2-8

Sybase или Mircrosoft SQL ServerПоддерживаемые типы данных, 2-14

“T”Table Templateкоманда, 3-8

TableName, 4-7Tagname.FieldName, 3-4TemplateName, 4-7

“W”WhereExpression, 4-7

“Б”База данных, 1-1Броузер тэгов, 3-3

“В”Выполнение расширенных инструкций SQL,

4-11

“Д”Динамическое создание запросов, 4-9

“З”Запись даты и времени в поле даты Oracle, 2-

7Запросыдинамическое создание, 4-9сложные, 4-9

“И”Изменение расширенных инструкций SQL, 4-

10Изменение списка привязок, 3-5Изменение шаблона таблицы, 3-9Имя списка привязок, 3-10Имя шаблона таблицы, 3-10Использование функций SQL в InTouch, 4-8

“К”Команды

Table Template, 3-8

“Л”Лицензия FactorySuite, 1-4

“Н”Настройка SQL Access Manager, 3-1Настройка и соединение баз данных, 2-1Настройка списка привязок, 3-2Настройка шаблонов таблицы, 3-7

“О”Об этом руководстве, 1-3Определение сложных запросов, 4-8Отладка, 5-1Отладка функций SQL, 5-2

“П”Параметр

BindListName, 4-5ConnectionID, 4-5ConnectString, 4-5ErrorMsg, 4-5FileName, 4-5MaxLen, 4-5OrderByExpression, 4-6

Page 59: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

Предметный указатель I-3

ParameterNumber, 4-6ParameterType, 4-6ParameterValue, 4-7Precision, 4-7RecordNumber, 4-7ResultCode, 4-7Scale, 4-7SQLHandle, 4-7SQLStatement, 4-7TableName, 4-7TemplateName, 4-7WhereExpression, 4-7

Параметры SQL, 4-5Поддерживаемые базы данных

dBASE, 2-10Microsoft Access, 2-12Microsoft SQL Server, 2-8Oracle 6, 2-2“,2-4Paradox, 2-13Sybase, 2-8

Поддерживаемые типы данных, 2-14Поддерживаемые типы данных Oracle 6, 2-3Поддержка хранимых в памяти процедур, 4-

12программа NETINIT.EXE, 2-2Программа ODBC Administrator, 1-5

“Р”Работа с dBASE, 2-10Работа с Microsoft Access, 2-12Работа с Oracle 7.2, 2-4Работа с Paradox, 2-13Работа с Sybase или Microsoft SQL Server, 2-8Разделители, 3-6

“С”Совместимость с ODBC, 1-5Соединение с Oracle 6, 2-2“,2-4Создание списка привязок, 3-2Сообщения об ошибках базы данных

dBASE, 5-4Oracle, 5-3Sybase или Microsoft SQL Server, 5-4

Сообщения об ошибке с кодом результата, 5-2

Специальные разделители, 3-6Список привязок, 3-2Броузер тэгов, 3-3изменение, 3-5

создание, 3-2удаление, 3-5

“Т”Техническая поддержка Wonderware, 1-4Требования к соединению, 1-5

“У”Удаление списка привязок, 3-5Удаление шаблона таблицы, 3-9

“Ф”Функции

SQLAppendStatement, 4-2SQLClearParam, 4-2SQLClearStatement, 4-2SQLClearTable, 4-2SQLCommit, 4-2SQLConnect, 2-2“,2-8“,4-2SQLCreateTable, 4-2SQLDelete, 4-2SQLDisconnect, 4-2SQLDropTable, 4-2SQLEnd, 4-2SQLErrorMsg, 4-2SQLExecute, 4-2SQLFirst, 4-2SQLGetRecord, 4-2SQLInsert, 4-3SQLInsertEnd, 4-3SQLInsertExecute, 4-3SQLInsertPrepare, 4-3SQLLast, 4-3SQLLoadStatement, 4-3SQLManageDSN, 4-3SQLNext, 4-3SQLNumRows, 4-3SQLPrepareStatement, 4-3SQLPrev, 4-3SQLRollback, 4-3SQLSelect, 4-4SQLSetParamChar, 4-4SQLSetParamDate, 4-4SQLSetParamDateTime, 4-4SQLSetParamDecimal, 4-4SQLSetParamFloat, 4-4SQLSetParamInt, 4-4SQLSetParamLong, 4-4SQLSetParamNull, 4-4

Page 60: Wonderware FactorySuite SQL Access Managerold.intouch.su/support/pub/InTouchSQL.pdf · 2012-04-26 · 1-1 ГЛАВА 1 SQL Access Manager Входящая в пакет Wonderware

I-4 Предметный указатель

SQLSetParamTime, 4-4SQLSetStatement, 4-4SQLTransact, 4-4SQLUpdate, 4-4SQLUpdateCurrent, 4-4

“Ч”Чтение инструкций SQL из файла, 4-9

“Ш”Шаблон таблицы, 3-7изменение, 3-9создание, 3-7“,3-9удаление, 3-9

“Э”Электронная документация, 1-3