You are on page 1of 57

Wonderware FactorySuite

Moduł SQL Access

Podręcznik Użytkownika

Wonderware Corporation
Wszystkie prawa zastrzeżone. Żaden fragment niniejszej publikacji nie może być
kopiowany, przechowywany w systemie do wyszukiwania informacji, przesyłany za pomocą
jakichkolwiek metod: elektronicznych, mechanicznych, fotokopiowania, nagrywania, lub też
w jakikolwiek inny sposób, bez uprzedniego otrzymania pisemnej zgody Wonderware
Corporation. Nie jest przyjmowana żadna odpowiedzialność prawna za naruszenie praw
autorskich lub patentowych, w związku z korzystaniem z zawartych w niniejszej publikacji
informacji. Dołożono wszelkich starań, aby informacje zawarte w tej publikacji były
kompletne i rzetelne, jednakże ani wydawca ani autor nie przejmują odpowiedzialności za
błędy i omyłkowe pominięcia. Nie jest również przyjmowana jakakolwiek odpowiedzialność
za szkody wynikłe z korzystania z informacji podanych w niniejszym dokumencie.
Podane informacje mogą ulec zmianie bez uprzedzenia, i nie są zobowiązujące dla
Wonderware Corporation. Oprogramowanie opisane w niniejszej dokumentacji jest
dostarczane wraz z licencją, oraz nie ujawnianą publicznie umową. Oprogramowanie może
być wykorzystywane i kopiowane wyłącznie przy zachowaniu zgodności z tymi
dokumentami.

 2002 Wonderware Corporation. Wszystkie prawa zastrzeżone.


100 Technology Drive
Irvine, CA 92618
U.S.A
(714) 727-3200
http://www.wonderware.com
Znaki handlowe
Terminy używane w niniejszej książce, co do których było wiadomo, że są znakami
firmowymi lub oznaczeniami usług, zostały odpowiednio wyróżnione. Wonderware
Corporation nie może zaświadczyć o pełnej kompletności tych informacji. Korzystanie
z tych terminów w niniejszej książce nie może być traktowane jako naruszanie praw do tych
znaków handlowych lub oznaczeń usług.
Wonderware jest zastrzeżonym znakiem handlowym Wonderware Corporation.
Wonderware FactorySuite, InTouch, WindowMaker, WindowViewer, SQL Access
Manager, Recipe Manager, SPC Pro, DBDump, DBLoad, HDMerge, HistData, Wonderware
Logger, InControl, InTrack, InBatch, IndustrialSQL, ActiveFactory, SuiteLink i NetDDE są
zastrzeżonymi znakami towarowymi Wonderware Corporation

WYDAWCA:
Astor sp. z o.o. – Autoryzowany Dystrybutor Wonderware
ul. Smoleńsk 29, 31-112 Kraków
tel. (012) 428 63 00, fax (012) 428 63 09
www.astor.com.pl
i

Spis treści

Rozdział 1 - Menedżer języka SQL ............................................... 1-1


Wprowadzenie .................................................................................................................. 1-2
Informacje o Podręczniku użytkownika............................................................................ 1-3
Pomoc techniczna ............................................................................................................. 1-4
Informacje o posiadanej licencji FactorySuite .................................................................. 1-4
Kompatybilność z ODBC ................................................................................................. 1-5

Rozdział 2 - Konfigurowanie i nawiązywanie


połączenia z bazą danych ............................................................. 2-1
Oracle 6............................................................................................................................. 2-2
Konfigurowanie klienta .............................................................................................. 2-2
Oracle 7.2.......................................................................................................................... 2-4
Konfigurowanie klienta .............................................................................................. 2-4
Zapisywanie daty i czasu do pól bazy danych Oracle ................................................ 2-7
Sybase lub Microsoft SQL Server..................................................................................... 2-8
Konfigurowanie klienta .............................................................................................. 2-8
Obsługiwane typy danych .......................................................................................... 2-9
dBase............................................................................................................................... 2-10
Microsoft Access ............................................................................................................ 2-12
Paradox ........................................................................................................................... 2-13
Zestawienie typów w obsługiwanych bazach danych ..................................................... 2-14

Rozdział 3 - Konfigurowanie modułu SQL Access..................... 3-1


Przegląd modułu SQL Access........................................................................................... 3-2
Konfigurowanie Listy powiązań ................................................................................ 3-3
Separatory specjalne ......................................................................................................... 3-6
Konfigurowanie Szablonu tabeli....................................................................................... 3-7
Plik SQL.DEF................................................................................................................. 3-10
ii Spis treści

Rozdział 4 - Funkcje SQL .............................................................. 4-1


Zestawienie funkcji SQL ...................................................................................................4-2
Parametry funkcji SQL ......................................................................................................4-5
Korzystanie z funkcji SQL w skryptach ............................................................................4-8
Zapytania złożone ..............................................................................................................4-8
Dynamiczne budowanie zapytań .................................................................................4-9
Odczytywanie instrukcji SQL z pliku .........................................................................4-9
Określanie parametrów instrukcji SQL w czasie pracy aplikacji ..............................4-10
Wykonywanie rozbudowanych instrukcji SQL.........................................................4-11
Obsługa procedur zachowanych................................................................................4-12

Rozdział 5 - Usuwanie problemów............................................... 5-1


Funkcje do usuwania problemów.......................................................................................5-2
Komunikaty o błędach ................................................................................................5-2
Kody błędów dla poszczególnych baz danych...................................................................5-4

Załącznik A - Zarezerwowane słowa


kluczowe języka SQL i ODBC .......................................................A-1
Indeks .............................................................................................. I-1
1-1

R O Z D Z I A Ł 1

Moduł SQL Access

Moduł SQL Access pozwala na korzystanie z tabel baz danych, ich modyfikowanie,
tworzenie i usuwanie. Baza danych przechowuje informacje w tabelach, posiadających
wspólny atrybut lub pole. Dostęp do informacji zgromadzonych w bazie danych zapewnia
język SQL (Structured Query Language).

Spis treści
Wprowadzenie
Informacje o Podręczniku użytkownika
Pomoc techniczna
Informacje o posiadanej licencji FactorySuite
Kompatybilność z ODBC

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


1-2 Rozdział 1

Wprowadzenie
Moduł SQL Access programu InTouch został specjalnie zaprojektowany w celu zapewnienia
łatwej metody wymiany danych pomiędzy bazami SQL a aplikacjami InTouch. Moduł ten
umożliwia również przesyłanie danych w czasie pracy aplikacji, takich jak status alarmów
czy dane historyczne z programu InTouch do bazy danych SQL. Przykładowo, po
zakończeniu cyklu obróbki, można zapisać szereg zestawów danych, każdy dla innej
aplikacji. W bazie SQL może być zapisanych szereg danych. Moduł SQL Access pozwala na
odczyt tych danych, oraz na ich wyświetlanie w dowolnej aplikacji InTouch.
Moduł dostępu do baz danych składa się z Menadżera SQL Access, oraz z funkcji SQL.
Zadaniem Menadżera SQL Access jest utworzenie i powiązanie kolumn bazy danych ze
zmiennymi zdefiniowanymi na Liście zmiennych programu InTouch. Proces przypisywania
kolumn bazy danych do zmiennych programu InTouch określany jest terminem "wiązanie."
Dzięki powiązaniu zmiennych programu InTouch z kolumnami bazy danych, moduł SQL
Access może bezpośrednio manipulować danymi przechowywanymi w bazie danych. Moduł
SQL Access zapisuje kolumny bazy danych, i ich powiązania, w pliku w formacie.CSV, o
nazwie "SQL.DEF." (Plik ten umieszczony jest w kartotece aplikacji InTouch, można go
podglądnąć lub modyfikować za pomocą modułu SQL Access, lub też za pomocą
dowolnego edytora tekstowego, np. Notatnika Windows). Moduł SQL Access tworzy
również szablony tabel, definiujące format i strukturę bazy danych.
Więcej informacji na temat list powiązań i szablonów tabel podano w Rozdziale 3 -
Konfigurowanie modułu SQL Access.
Funkcje SQL można wywoływać z poziomu każdego skryptu. Pozwala to na automatyczne
uruchamianie tych funkcji, w momencie podjęcia odpowiednich działań przez operatora, po
zmianie wartości zmiennej, lub też w przypadku spełnienia określonych warunków.
Przykładowo, w przypadku wygenerowania alarmu, aplikacja może wywołać polecenia
SQLInsert() i SQLUpdate() w celu zapisania danych i statusu alarmu. Funkcje SQL mogą
być wykorzystane do tworzenia nowych tabel, wstawiania nowych rekordów do tabel, edycji
istniejących rekordów tabel, czyszczenia tabel, usuwania tabel, przewijania rekordów, itp.
Moduł SQL Access korzysta z biblioteki Intersolv/Q+E Software's Database Library QELIB
(współpracującej z większością systemów baz danych), zawierającą cały kod, wymagany do
korzystania ze sterowników baz danych kompatybilnych z ODBC. Sterowniki te nie
wchodzą w skład modułu SQL Access pakietu InTouch, musza one być zakupione
oddzielnie (od producentów, np. od firm Intersolv/O+E czy Microsoft Corporation).
Sterowniki ODBC są wymagane, ponieważ pełnią one rolę rzeczywistego "połączenia"
z bazą danych. Przykładowo, jeżeli funkcje SQL mają współpracować z baza danych
Microsoft Access, należy oddzielnie zakupić, zainstalować i skonfigurować sterowniki
Microsoft ODBC Desktop Driver Set. W następnym punkcie niniejszego rozdziału podano
ogólne przykłady konfigurowania sterowników.

Uwaga Systemy baz danych nie omawiane w niniejszym Podręczniku użytkownika, nie są
obsługiwane.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Menedżer języka SQL 1-3

Informacje o Podręczniku użytkownika


Niniejsza instrukcja podzielona jest logicznie na szereg rozdziałów, opisujących różne
aspekty korzystania z modułu SQL Access. Ma ona charakter “algorytmiczny”, podaje kroki
do realizacji większości funkcji i zadań.
Przy korzystaniu z instrukcji w formie elektronicznej, odwołania tego typu zawierają
w rzeczywistości “połączenia” do odpowiednich punktów i rozdziałów. W celu
przejścia do tego punktu lub rozdziału, należy kliknąć to połączenie. Po przejściu do
innego punktu lub rozdziału, można skorzystać z polecenia "Wstecz", powodującego
przejście do pierwotnego miejsca.
Znak ten informuje, że dodatkowe informacje znajdują się w innych podręcznikach
FactorySuite.
Znak ten umieszczono obok “Podpowiedzi”, zawierających prostszą lub szybszą metodę
realizacji funkcji lub zadania.
Podręcznik FactorySuite System Administrator's Guide zawiera kompletne informacje na
temat elementów składowych pakietu FactorySuite, wymaganiach systemu, omówienie
zagadnień pracy w sieci, integracji produktów, pomocy technicznej, itp.
W podręczniku użytkownika InTouch omówiono środowisko edycyjne w programie
WindowMaker, oraz dostępne w nim narzędzia, porównać z Rozdziałem 1 tego podręcznika
"Elementy programu WindowMaker". W celu zapoznania się z oknami, obiektami
graficznymi, wizardami, obiektami ActiveX, itp. należy przeczytać Rozdział 2, "Korzystanie
z programu WindowMaker".
Szczegółowe informacje o środowisku do uruchamiania aplikacji (program WindowViewer)
podano w Podręczniku operatora.
Dodatkowo, w podręczniku InTouch - opis funkcji, pól i zmiennych systemowych
zamieszczono wyczerpujący opis języka skryptów, funkcji, zmiennych systemowych, oraz
pól zmiennych, występujących w programie InTouch.
Dla każdego komponentu FactorySuite wchodzącego w skład zakupionego przez
Państwa pakietu oprogramowania, dołączona jest wersja elektroniczna dokumentacji.
Przykładowo, są to: FactorySuite System Administrator's Guide, SPC PRO, Moduł SQL
Access, Menedżer receptur, Industrial SQL Server, InControl, oraz wszystkie 32-
bitowe programy komunikacyjne. w przypadku zakupienia pakietu FactorySuite+,
dostarczana jest również elektroniczna wersja dokumentacji dla komponentów InTrack
oraz InBatch.

Wymagane wiadomości
W niniejszej instrukcji przyjęto następujące założenia o użytkowniku:
• Użytkownik jest zapoznany z systemami operacyjnymi Windows 9x/NT/2000.
• Posiada umiejętność korzystania z myszki, menu Windows, wybierania opcji, oraz
korzystania z Pomocy.
• Posiada doświadczenie w zakresie programowania lub języka makro. W celu
osiągnięcia jak największych korzyści, użytkownik powinien być zapoznany z takimi
zagadnieniami programowania jak zmienne, deklaracje, funkcje i metody.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


1-4 Rozdział 1

Pomoc techniczna
Dział Pomocy Technicznej Wonderware oferuje różne metody wsparcia w zakresie
produktów Wonderware jak również ich implementacji.
Przed skontaktowaniem się z Działem Pomocy Technicznej, proszę szukać rozwiązania
problemów, mogących wystąpić w czasie korzystania z systemu InTouch, w podręczniku
Moduł SQL Access. Jeżeli okaże się konieczne skorzystanie z pomocy technicznej, należy
mieć przygotowane następujące informacje:
1. Numer seryjny oprogramowania.
2. Numer wykorzystywanej wersji programu InTouch.
3. Typ i wersję wykorzystywanego sytemu operacyjnego. Przykładowo, Microsoft
Windows NT Wersja 4.0, jednostanowiskowa.
4. Dokładną treść wyświetlanego przez system komunikatu o błędzie.
5. Jakiekolwiek, mogące być pomocne wydruki z Wonderware Logger, narzędzi
diagnostycznych Microsoft Diagnostic (MSD), czy innych aplikacji diagnostycznych.
6. Szczegółowe informacje na temat podejmowanych prób rozwiązania problemów, oraz
ich wyniki.
7. Szczegółowe informacje odnośnie sposobu odtworzenia zaistniałego problemu.
8. Jeżeli jest dostępna taka informacja, numer przyporządkowany do tego problemu przez
Dział Pomocy Technicznej Wonderware (dotyczy to problemów aktualnie
opracowywanych).
Więcej informacji o Pomocy Technicznej podano w podręczniku FactorySuite System
Administrator's Guide.

Informacje o posiadanej licencji FactorySuite


Informacje na temat posiadanej licencji na system FactorySuite, pokazywane są przez
narzędzie do wyświetlania informacji o licencji, dostępne po wybraniu okna dialogowego
Informacje z menu Pomoc programu InTouch.
W celu wyświetlenia okna dialogowego Informacje, należy wybrać polecenie
Informacje o z menu Pomoc.
Więcej informacji na temat narzędzi do wyświetlania informacji o licencji podano
w podręczniku FactorySuite System Administrator's Guide.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Menedżer języka SQL 1-5

Kompatybilność z ODBC
Moduł SQL Access jest kompatybilny z ODBC, co oznacza, że może współpracować z
dowolnym systemem baz danych, pod warunkiem, że system ten posiada sterownik ODBC.
Przed rozpoczęciem korzystania ze sterownika ODBC należy go skonfigurować za pomocą
programu Microsoft ODBC Administrator, w celu nawiązania połączenia pomiędzy
aplikacją kompatybilną z ODBC a systemem baz danych.
W celu skonfigurowania sterownika ODBC:
9. Uruchomić program Microsoft ODBC Administrator.
10. Wybrać sterownik lub źródło danych, a następnie kliknąć Add New Name, Set
Default, lub Configure. Okno dialogowe ODBC Driver Setup
Opcja Opis
Data Source Name Nazwa zdefiniowana przez użytkownika, identyfikująca
źródło danych.
Description Wprowadzony przez użytkownika opis źródła danych.
Database Directory Kartoteka w której umieszczone są pliki bazy danych.
Jeżeli nie jest określona żadna kartoteka,
wykorzystywana będzie kartoteka bieżąca.
Wprowadzić pozostałe informacje, wymagane do
skonfigurowania wybranego sterownika.
3. Kliknąć OK.
Sterownik zapisze wartości każdego z pól do pliku ODBC.INI. Są to domyślne
wartości, wykorzystywane przy łączeniu się ze źródłem danych. Wartości te można
zmodyfikować. W przypadku atrybutów nie obsługiwanych przez pole dialogowe
ODBC Driver Setup, wartości można wprowadzać ręcznie, w odpowiedniej sekcji
źródła danych w pliku ODBC.INI.

Wymogi do nawiązania połączenia


Łańcuch znaków do połączenia, wykorzystywany przez funkcję SQLConnect() w module
SQL Access wer. 4.x budowany jest zgodnie z konwencją "DRV=database_dll".
Ponieważ wersja 5.6 (i wersje późniejsze" są aplikacjami kompatybilnymi z ODBC, pole
database_dll w łańcuchu znaków "DRV=database_dll" musi być dokładną nazwą źródła
danych, zgodnie z konfiguracją wprowadzoną w programie ODBC Administrator (opisanym
powyżej). Alternatywnie, w miejsce "DRV" można wprowadzić "DSN".

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


1-6 Rozdział 1

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-1

R O Z D Z I A Ł 2

Konfigurowanie i nawiązywanie połączenia


z bazą danych

W niniejszym rozdziale omówiono obsługiwane systemy baz danych. Każdy z systemów baz
danych ma inne wymagania. W niniejszym rozdziale poświęcono oddzielne punkty dla
każdego z systemów baz danych, oraz opisano w nich sposób komunikacji z modułem SQL
Access.

Spis treści
Oracle 6
Oracle 7.2
Sybase lub Microsoft SQL Server
dBase
Microsoft Access
Paradox
Zestawienie typów w obsługiwanych bazach danych

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-2 Rozdział 2

Oracle 6
W celu nawiązania połączenia z systemem baz danych Oracle 6:
1. Skonfigurować klienta bazy danych Windows.
2. Uruchomić programy SQL*Net TSR i NETINIT.EXE.
3. Nawiązać połączenie z bazą danych Oracle poprzez wywołanie funkcji SQLConnect()
z poziomu skryptu InTouch.
Więcej informacji na temat funkcji SQLConnect() podano w Rozdziale 4 - Funkcje
SQL.

Konfigurowanie klienta
W celu uzyskania dostępu do bazy danych Oracle, należy zainstalować na lokalnym
komputerze oprogramowanie SQL*Net firmy Oracle. Oprogramowanie to zawiera programy
SQL*Net TSR i NETINIT.EXE. Warunkiem nawiązania komunikacji z serwerem bazy
danych Oracle jest uprzednie uruchomienie programów SQL*Net TSR oraz NETINIT.EXE.

Uruchamianie programów SQL*Net TSR i NETINIT.EXE.


Program rezydentny SQL*Net, przeznaczony do pracy w sieci, musi zostać uruchomiony
z poziomu systemu DOS, przed uruchomieniem Windows. W celu umożliwienia nawiązania
komunikacji z serwerem Oracle, należy uruchomić program NETINIT.EXE. W celu
automatycznego uruchamiania programu NETINIT.EXE, wraz z uruchamianiem systemu
Windows, należy umieścić jego ikonę w grupie Autostart.

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z bazą danych
Oracle. Łańcuch znaków do połączenia, wykorzystywany w funkcji SQLConnect() musi
mieć następującą składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś
ć>;...");
Poniżej podano atrybuty wykorzystywane przez bazę danych Oracle. Muszą one podawane
być w następującej kolejności:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) wprowadzona
w programie Microsoft ODBC Administrator.
DRV W celu zachowania zgodności z modułem SQL Access, wartość
ta jest wwykorzystywana, jeżeliw łańcuchu znaków do połączenia
nie podano nazwy źródła danych (DSN). QELIB zmienia ten
atrybut na nazwę źródła danych.
UID Nazwa użytkownika.
PWD Hasło.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-3

Atrybut Wartość
SRVR Łańcuch znaków do połączenia SQL*Net określający komputer
serwera i bazę danych, z którą nawiązywane będzie połączenie.
Przykład:
SQLConnect(ConnectionId,"DSN=Oracle_Data;UID=SCOTT;PWD=TIGER;
SRVR=B:MKTG_SRV");
gdzie: B: określa przedrostek dla komunikacji na poziomie NetBIOS (fragment
łańcucha znaków SRVR=B:MKTG_SRV), lub
T: Przedrostek dla TCP/IP, lub
P: przedrostek dla Named Pipes
MKTG_SRV jest nazwą przypisaną do Serwera baz danych Oracle.

Uwaga Mogą wystąpić problemy przy określaniu wartości atrybutu SRVR. Wymagane
informacje zależą od sterownika SQL*Net. Dalsze informacje można znaleźć
w dokumentacji SQL*Net (lub prawdopodobnie w pliku CONFIG.ORA w linii "remote=".

Obsługiwane typy danych


Moduł SQL Access obsługuje dwa typy danych. Dane typu char są łańcuchami znaków
o zmiennej długości. Do zmiennych InTouch typu tekstowego można przypisywać
wyłącznie dane typu char. Jeżeli długość nie jest określona, przyjmowana jest wartość
domyślna równa jednemu (1) znakowi. W bazie danych Oracle długość pola typu char nie
może przekraczać 255 znaków. Należy pamiętać jednak, że maksymalna długość zmiennych
InTouch typu tekstowego może wynosi 131 znaków. Jeżeli zmienna tekstowa ma większą
długość niż zadeklarowano w polu bazy danych, przed zapisaniem zostanie obcięta.
Dane typu number odpowiadają zmiennym typu całkowitego i rzeczywistego,
wykorzystywanym w pakiecie InTouch. Jeżeli długość nie zostanie określona, wartość
reprezentowana będzie jako wartość zmiennoprzecinkowa, z dokładnością do 38 cyfr. W
przypadku podawania długości, stosowany jest format Szerokość.LiczbaMiejscDziesiętnych.
Wartość Szerokość określa maksymalną liczbę cyfr w kolumnie. Wartość
LiczbaMiejscDziesiętnych określa liczbę cyfr umieszczonych z prawej strony separatora
części dziesiętnych. Ten typ danych nie wymaga podawania długości.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-4 Rozdział 2

Oracle 7.2
W celu nawiązania połączenia z systemem baz danych Oracle 7.2:
4. Zainstalować program Oracle Standard Client na stanowisku roboczym.
5. Uruchomić program SQL_Net Easy Configuration w celu zlokalizowania łańcucha
znaków do połączenia SQL dla Aliasu bazy danych.
6. Utworzyć nazwę Źródła danych.
7. Nawiązać połączenie z bazą danych Oracle poprzez wywołanie funkcji SQLConnect()
z poziomu skryptu InTouch.
Więcej informacji na temat funkcji SQLConnect() podano w Rozdziale 4 -
Funkcje SQL

Konfigurowanie klienta
W celu uruchomienia programu do konfigurowania systemu baz danych Oracle 7:
8. W oknie dialogowym Oracle 7 Workgroup Server zaznaczyć Standard Client, po
czym kliknąć OK.
9. Wybrać typ instalacji klienta, Application User Setup, po czym kliknąć OK.
10. W oknie dialogowym Database Connection Setup wprowadzić nazwę komputera
bazowego, na którym zainstalowany jest serwer Oracle 7 Workgroup Server.
Przykładowo: WWServer.
11. Kliknąć OK.

Konfigurowanie SQL_Net
1. Kliknąć przycisk Start umieszczony na Pasku zadań Windows. Wybrać menu
Programy, następnie menu Oracle, i ostatecznie kliknąć SQL_Bet Easy
Configuration.
2. Domyślnie, alias utworzony dla serwera rozpoczynał się będzie od
wgs_ServerName_orcl. Można jednak zmienić tę nazwę.
Alias bazy danych wykorzystywany jest przez funkcję SQLConnect() programu
InTouch.
3. W celu zmodyfikowania Aliasu bazy danych należy zaznaczyć nazwę serwera,
a następnie kliknąć OK.
4. Kliknąć Modify Database Alias Select Network protocol. Komputer z serwerem bazy
danych Oracle ma nazwę Named Pipe Server. Konfigurowanie SQL_Net jest w tym
momencie zakończone.
Należy upewnić się, czy zapisano Alias bazy danych, w celu jego późniejszego
wykorzystania.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-5

Konfigurowanie nazwy źródła danych


W celu zainstalowania sterowników ODBC na stacji klienckiej:
5. Kliknąć przycisk Start umieszczony na Pasku zadań Windows. Wskazać menu
Ustawienia, a następnie kliknąć Panel sterowania. Wyświetlone zostanie okno Panel
sterowania.
6. Podwójnie kliknąć ikonę ODBC. Wyświetlone zostanie okno dialogowe
Administrator źródeł danych ODBC.
7. Kliknąć zakładkę System DSN:

8. Kliknąć Dodaj... Wyświetlone zostanie okno dialogowe Tworzenie nowego źródła


danych.
9. Zaznaczyć sterownik Oracle & ODBC, a następnie kliknąć Zakończ. Wyświetlone
zostanie okno dialogowe ODBC Oracle Driver Setup.
10. W polu Data Source Name wpisać nazwę serwera bazy danych Oracle.
11. Kliknąć Advanced. W oknie dialogowym ODBC Oracle Advanced Driver Setup
wybrać ustawienia domyślne. Kliknąć Close. Wyświetlone zostanie ponownie okno
dialogowe Administrator źródeł danych ODBC.
12. Kliknąć OK.

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z bazą danych
Oracle. Łańcuch znaków do połączenia, wykorzystywany w funkcji SQLConnect() musi
mieć następującą składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś
ć>;...");

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-6 Rozdział 2

Poniżej podano atrybuty wykorzystywane przez bazę danych Oracle. Muszą one podawane
być w następującej kolejności:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) skonfigurowana
w programie Microsoft ODBC Administrator.
UID Nazwa użytkownika.
PWD Hasło.
SRVR Alias bazy danych SQL_NET.
Przykład:
SQLConnect(ConnectionId,"DSN=Oracle;UID=SCOTT;PWD=TIGER;
SRVR=wsg_wwServer_orcl");

Uwaga Jeżeli domyślna nazwa Aliasu bazy danych wsg_ServerName_orcl została


zmieniona, należy wprowadzić nową nazwę, utworzoną za pomocą programu SQL_NET
Easy Configuration, SRVR=WWServer.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-7

Zapisywanie daty i czasu do pól bazy danych Oracle


W celu zarejestrowania daty i czasu w polu danych bazy Oracle, należy odpowiednio
ustawić parametry.
W celu rejestrowania w polu danych bazy Oracle daty i czasu:
1. W Eksploratorze aplikacji, w grupie Moduł SQL Access kliknąć Bind List.
Wyświetlone zostanie okno dialogowe Bind List Configuration:

2. W polu Tagname.FieldName wprowadzić zmienną, która ma być wykorzystywana.


3. W polu Column Name wpisać funkcję DATE_TIME delim().

Uwaga W polu Column Name przed słowem delim() należy wprowadzić spację.
Przykładowo, DATE_TIME. Należy wpisać spację pomiędzy DATE a TIME.
4. W aplikacji InTouch napisać skrypt, przygotowujący dane wejściowe w oparciu o
bieżący czas i datę. Przykładowo:
DATE_TIME_TAG = "TO_DATE('" + $DateString + "" +
StringMid($TimeString,1,8) + "','mm/dd/yy hh24:mi:ss')";
Zmienna Date_Time_Tag będzie wyświetlana w czasie pracy aplikacji w
następującym formacie:
TO_DATE('08/22/97 23:32:18','mm/dd/yy hh24:mi:ss')

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-8 Rozdział 2

Sybase lub Microsoft SQL Server


W celu nawiązania komunikacji z serwerem SQL Sysbase lub Microsoft:
1. Skonfigurować klienta bazy danych Windows.
2. Wywołać z poziomu skryptu funkcję SQLConnect() w celu nawiązania łączności
z Serwerem SQL Sysbase lub Microsoft.
Więcej informacji na temat funkcji SQLConnect() podano w Rozdziale 4 -
Funkcje SQL

Konfigurowanie klienta
Podłączanie się do bazy danych:
W celu podłączenia się do bazy danych, w kartotece WINDOWS/ SYSTEM muszą być
zainstalowanego następujące biblioteki DLL:
• DBNMP3.DLL
• W3DBLIB.DLL

Uwaga Jeżeli aplikacja w czasie nawiązywania połączenia korzysta z protokołu Winsock


(TCP/IP), nie jest wymagany plik DBNMP3.DLL.

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z serwerem SQL
Sysbase lub Microsoft. Wywołanie tej funkcji powoduje zalogowanie do serwera bazy
danych, oraz nawiązanie połączenia, co pozwala na korzystanie z innych funkcji SQL.
Łańcuch znaków do połączenia, wykorzystywany w funkcji SQLConnect() musi mieć
następującą składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś
ć>;...");
Poniżej opisano atrybuty wykorzystywane przez Serwery SQL Sysbase i Microsoft. Muszą
one podawane być w następującej kolejności:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) wprowadzona w
programie Microsoft ODBC Administrator, lub
DRV W celu zachowania zgodności z SQL Access w programie
InTouch, wartość ta jest wykorzystywana jeżeli nazwa źródła
danych (DSN) nie została podana w łańcuchu znaków połączenia.
QELIB zmienia ten atrybut na nazwę źródła danych.
UID Identyfikator użytkownika, rozróżniana jest wielkość liter.
PWD Hasło, rozróżniana jest wielkość liter.
SRVR Nazwa serwera, na którym znajdują się tablice, które będą
wykorzystywane.
DB Nazwa bazy danych, która będzie wykorzystywana.
Przykład:
SQLConnect(ConnectionId,"DSN=SQL_Data;UID=OPERATOR;PWD=XYZZ");

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-9

Obsługiwane typy danych


Moduł SQL Access obsługuje trzy typy danych w bazach danych Sysbase lub Microsoft
SQL Server. Dane typu char są łańcuchami znaków o stałej długości. Do zmiennych
InTouch typu tekstowego można przypisywać wyłącznie dane typu char. Należy określić
długość pola. Maksymalna długość danych typu char nie może przekraczać w bazach danych
Sysbase i Microsoft SQL Server 255 znaków. Należy pamiętać jednak, że maksymalna
długość zmiennych InTouch typu tekstowego może wynosi 131 znaków. Jeżeli zmienna
tekstowa ma większą długość niż zadeklarowano w polu bazy danych, przed zapisaniem
zostanie obcięta.
Typ danych int odpowiada zmiennym InTouch typu całkowitego. Jeżeli nie określono
długości pola, przyjmowana jest domyślna długość, wprowadzona dla bazy danych. Jeżeli
długość jest określana należy podać Szerokość. Szerokość określa maksymalną liczbę cyfr
w kolumnie,
Typ danych float odpowiada zmiennym InTouch typu rzeczywistego. Długość pola dal tego
typu zmiennych jest ustalana przez bazę danych. Ten typ danych nie wymaga podawania
długości.

Uwaga W przypadku korzystania z bazy danych Sysbase, przy określaniu typu danych
(char, int, float) należy pamiętać, że rozróżniana jest wielkość liter, należy wpisywać
wyłącznie małe litery.
Serwery SQL Sysbase i Microsoft dopuszczają dla danego ConnectionID wyłącznie jedną
aktywną instrukcję. W czasie korzystania z funkcji SQLSelect() lub SQLNext() można
przeglądać dane, ale nie można ich wstawiać, usuwać, lub modyfikować. W celu wstawienia
danych, usunięcia lub uaktualnienia, operacja SQLSelect() musi korzystać z innego
parametru ConnectionID niż funkcje SQLInsert(), SQLUpdate(), czy SQLDelete().
Wielkość liter jest również rozróżniana w nazwach Kolumn i Tabel. Nazwa tabeli musi być
podana wraz z nazwą bazy danych, do której ta tabela należy. Przykładowo, dbo.MyTable).

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-10 Rozdział 2

dBase
W celu nawiązania połączenia z dBase, należy wywołać z poziomu skryptu funkcję
SQLConnect().

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z bazą danych
dBase. Wywołanie tej funkcji powoduje zalogowanie do serwera bazy danych, oraz
nawiązanie połączenia, co pozwala na korzystanie z innych funkcji SQL. Łańcuch znaków
do połączenia, wykorzystywany w funkcji SQLConnect() musi mieć następującą składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś
ć>;...");
Poniżej podano atrybuty wykorzystywane przez bazę danych dBase. Są one wymienione
w kolejności, w jakiej należy je podawać:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) wprowadzona
w programie Microsoft ODBC Administrator, lub
DRV W celu zachowania zgodności z SQL Access w programie
InTouch, wartość ta jest wykorzystywana jeżeli nazwa źródła
danych (DSN) nie została podana w łańcuchu znaków połączenia.
QELIB zmienia ten atrybut na nazwę źródła danych.
CS Parametr określający, czy tablica znaków ma być pamiętany jako
tablica znaków IBM PC, czy też jako ANSI. Domyślną wartością
jest IBMPC.
DB Kartoteka, w której przechowywane są pliki dBase. Jeżeli nie jest
określona żadna kartoteka, wykorzystywana będzie bieżąca
kartoteka robocza.
FOC Maksymalna liczba otwartych, niewykorzystywanych plików.
Domyślnie przyjmowana jest wartość 0. Sterownik dBase posiada
mechanizm pozostawiający niewykorzystywane pliki otwarte, co
umożliwia zwiększenie prędkości pracy. Jeżeli parametr FOC ma
wartość większą od 0, otwarte pozostają ostatnio wykorzystywane
pliki. Jeżeli podjęta zostanie próba ekskluzywnego otwarcia
jednego z tych plików przez inną aplikację, wyświetlony zostanie
komunikat o błędzie, informujący, że pliki te są już
wykorzystywane przez inną aplikację.
LCK Poziom blokowania rekordów w pliku bazy danych.
Dopuszczalnymi wartościami są FILE, REKORD (ustawienie
domyślne), lub NONE (przykładowo, LCK=NONE).
CSZ Liczba bloków 64 K, wykorzystywanych przez sterownik do
buforowania rekordów bazy danych. Im większa jest ta liczba,
tym większa jest szybkość pracy. Domyślnie przyjmowana jest
wartość 4. Maksymalna liczba bloków, którą można wprowadzić,
ograniczona jest przez pamięć dostępną w systemie.
W czasie przeglądania danych w tył, zmiany wprowadzone przez
innych użytkowników nie będą widoczne, aż do momentu
wywołania instrukcji SQLSelect().
USF Parametr ren określa, kiedy sterownik uaktualnia pliki
w kartotece DOS. Jeżeli ustawiona zostanie wartość 1, sterownik
uaktualnia pliki w kartotece przy każdej instrukcji COMMIT.
Zmniejsza to prędkość pracy. Domyślnie, przyjmowana jest
wartość 0. Oznacza ona, że sterownik uaktualnia pliki czasie
zamykania. Wtedy jednak, w przypadku "zawieszenia się"
systemu przed zamknięciem pliku, nowo wstawione rekordy
zostają utracone.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-11

Atrybut Wartość
MS Atrybut ten ma za zadanie zapewnienie kompatybilności
z poprzednimi wersjami oprogramowania O+E. Jeżeli sterownik
ma obsługiwać instrukcje SQL wykorzystywane we
wcześniejszych wersjach sterowników oprogramowania Q+E,
należy wpisać MS=0. Domyślnie przyjmowana jest wartość 1.
LCOMP Parametr ten określa, czy ma być stosowane blokowanie
kompatybilne z dBase, czy też z Q+E. Jeżeli blokowanie ma być
kompatybilne z dBase, wpisać LCOMP=DBASE, jeżeli natomiast
blokowanie ma być kompatybilne z Q+E, wpisać LCOMP=Q+E.
Domyślnie, przyjmowana jest wartość dBASE.
Blokowanie kompatybilne z Q+E może być stosowane w celu
zapewnienia zgodności z wcześniejszymi wersjami
oprogramowania Q+E.
COMP Atrybut ten ma za zadanie zapewnienie kompatybilności
z poprzednimi wersjami oprogramowania O+E. W celu
zapewnienia zgodności z wcześniejszymi wersjami, wpisać
COMP=DBASE, natomiast w celu zapewnienia przenaszalności
wpisać COMP=ANSI. Domyślną wartością jest ANSI.
Przykład:
SQLConnect(ConnectionId,"DSN=DBASE_FILES;CS=ANSI;DB=C:\ODBC\EM
P;
LCK=NONE");

Obsługiwane typy danych


Moduł SQL Access obsługuje w przypadku bazy danych dBase trzy typy danych. Dane typu
char są łańcuchami znaków o stałej długości. Do zmiennych InTouch typu tekstowego
można przypisywać wyłącznie dane typu char. Należy określić długość. W bazie danych
dBASE długość pola typu char nie może przekraczać 254 znaków. Należy pamiętać jednak,
że maksymalna długość zmiennych InTouch typu tekstowego może wynosi 131 znaków.
Jeżeli zmienna tekstowa ma większą długość niż zadeklarowano w polu bazy danych, przed
zapisaniem zostanie obcięta.
Dane typu number i float reprezentują odpowiednio zmienne InTouch typu całkowitego
i rzeczywistego. Należy określić długość. Musi ona zostać podana w formacie
Szerokość.CzęściDziesiętne. Wartość Szerokość określa maksymalną liczbę cyfr
w kolumnie, Wartość CzęściDziesiętne określa liczbę cyfr umieszczonych z prawej strony
znaku części dziesiętnej. Baz danych dBase może przechowywać zmienne analogowe
z dokładnością do 19 cyfr.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-12 Rozdział 2

Microsoft Access
W celu nawiązania połączenia z Microsoft Access, należy wywołać z poziomu skryptu
funkcję SQLConnect().

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z bazą danych
Microsoft Access. Wywołanie tej funkcji powoduje zalogowanie do serwera bazy danych,
oraz nawiązanie połączenia, co pozwala na korzystanie z innych funkcji SQL. Łańcuch
znaków do połączenia, wykorzystywany w funkcji SQLConnect() musi mieć następującą
składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś
ć>;...");
Poniżej podano atrybuty wykorzystywane przez bazę danych Microsoft Access. Są one
wymienione w kolejności, w jakiej należy je podawać:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) wprowadzona
w programie Microsoft ODBC Administrator, lub
DRV W celu zachowania zgodności z SQL Access w programie
InTouch, wartość ta jest wykorzystywana jeżeli nazwa źródła
danych (DSN) nie została podana w łańcuchu znaków połączenia.
QELIB zmienia ten atrybut na nazwę źródła danych.
Przykład:
SQLConnect(ConnectionId,"DSN=MSACC");

Obsługiwane typy danych


Moduł SQL Access obsługuje pięć typów danych w przypadku korzystania z bazy danych
Microsoft Access. Ilość dopuszczalnych typów danych zależy od wersji wykorzystywanego
sterownika ODBC. Dane typu text to łańcuchy znaków o stałej długości, są one
wykorzystywane w przypadku zmiennych InTouch typu tekstowego. Należy określić
długość. W bazie danych Microsoft Access długość pola typu text nie może przekraczać 255
znaków. Należy pamiętać jednak, że maksymalna długość zmiennych InTouch typu
tekstowego może wynosi 131 znaków. Jeżeli zmienna tekstowa ma większą długość niż
zadeklarowano w polu bazy danych, przed zapisaniem zostanie obcięta. Sterownik Microsoft
Access ODBC obsługuje nazwy kolumn o długości do 17 znaków. W przypadku korzystania
z instrukcji SQLSetStatement( Select Col1, Col2,,.. ), maksymalna liczba obsługiwanych
kolumn wynosi 40.
W przypadku programów korzystających ze sterownika Microsoft Access, zmienne InTouch
typu całkowitego mogą korzystać z typów short i long, a zmienne InTouch typu
rzeczywistego z liczb z modyfikatorem Double lub Single. Długość jest obliczana
automatycznie, w zależności od typu danych i nie należy jej podawać w czasie definiowania
Szablonu tabeli.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie i nawiązywanie połączenia z bazą danych 2-13

Paradox
W celu nawiązania połączenia z bazą danych Paradox, należy wywołać z poziomu skryptu
funkcję SQLConnect().

Funkcja SQLConnect()
Funkcja SQLConnect() przeznaczona jest do nawiązywania połączenia z bazą danych
Paradox. Wywołanie tej funkcji powoduje zalogowanie do serwera bazy danych, oraz
nawiązanie połączenia, co pozwala na korzystanie z innych funkcji SQL. Łańcuch znaków
do połączenia, wykorzystywany w funkcji SQLConnect() musi mieć następującą składnię:
SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartość>;...");
Poniżej podano atrybuty wykorzystywane przez bazę danych Paradox. Są one wymienione
w kolejności, w jakiej należy je podawać:
Atrybut Wartość
DSN Nazwa źródła danych (Data Source Name) skonfigurowana
w programie Microsoft ODBC Administrator, lub
DRV W celu zachowania zgodności z SQL Access w programie
InTouch, wartość ta jest wykorzystywana jeżeli nazwa źródła
danych (DSN) nie została podana w łańcuchu znaków połączenia.
QELIB zmienia ten atrybut na nazwę źródła danych.
Przykład:
SQLConnect(ConnectionId,"DSN=PARADOX_FILE");

Obsługiwane typy danych


Moduł SQL Access obsługuje w przypadku bazy danych Paradox trzy typy danych. Dane
typu alphanumeric to łańcuchy znaków o stałej długości, są one wykorzystywane ze
zmiennymi InTouch typu tekstowego. Należy określić długość pola. W bazie danych
Paradox długość pola typu alphanumeric nie może przekraczać 255 znaków. Należy
pamiętać jednak, że maksymalna długość zmiennych tekstowych programu InTouch może
wynosi 131 znaków. Jeżeli zmienna tekstowa ma większą długość niż zadeklarowano w polu
bazy danych, przed zapisaniem zostanie obcięta.
Zmienne InTouch typu całkowitego, rzeczywistego i dyskretnego mogą korzystać z typu
number, a zmienne InTouch typu całkowitego i dyskretnego z typu short (wartości
z przedziału -32 767 do 32 767). Nie należy podawać długości pola.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


2-14 Rozdział 2

Zestawienie typów w obsługiwanych bazach


danych
Oracle
Typ danych Długość Domyślnie Zakres Typ zmiennej
char 255 znaków 1 znak Message
number 38 cyfr 38 cyfr Integer

Sybase lub Microsoft SQL Server


Typ danych Długość Domyślnie Zakres Typ zmiennej
char 255 znaków Message
int - Integer
2,147,483,647
do
2,147,483,647
float 15 cyfr 1.7E-294 do Real
1.7E+308

dBASE
Typ danych Długość Domyślnie Zakres Typ zmiennej
char 254 znaków Message
numeric lub 19 cyfr Integer lub Real
float

Microsoft Access
Typ danych Długość Domyślnie Zakres Typ zmiennej
text 254 znaków Message
number Integer
number Real

Paradox
Typ danych Długość Domyślnie Zakres Typ zmiennej
alphanumeric 255 znaków Message Integer,
number Real, lub Discrete
short -32,767 do Integer lub
32,767 Discrete

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-1

R O Z D Z I A Ł 3

Konfigurowanie modułu SQL Access

Programy narzędziowe modułu SQL Access umożliwiają tworzenie list powiązań


i szablonów tabel. Lista powiązań kojarzy kolumny bazy danych ze zmiennymi programu
InTouch. Szablon tabeli umożliwia zdefiniowanie struktury i formatu nowej tabeli w bazie
danych.

Spis treści
Przegląd modułu SQL Access
Separatory specjalne
Konfigurowanie szablonu tabeli
Plik SQL.DEF

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-2 Rozdział 3

Przegląd modułu SQL Access


W momencie wywołania przez aplikację instrukcji SQLCreateTable(), argument Table
Template wykorzystywany jest do zdefiniowania struktury nowego pliku bazy danych.
Przy korzystaniu z funkcji SQLInsert(), SQLSelect(), i SQLUpdate(), argument Lista
powiązań określa przypisanie zmiennych InTouch do kolumn bazy danych.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie Menadżera języka SQL 3-3

Konfigurowanie Listy powiązań


Lista powiązań kojarzy kolumny bazy danych ze zmiennymi programu InTouch.
W celu utworzenia nowej listy powiązań:
1. Z menu Specjalne wybrać SQL Access Manager, a następnie kliknąć Bind List..., lub
rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie
podwójnie kliknąć Bind List.
Jeżeli polecenie to wywołane zostało po raz pierwszy, wyświetlone zostanie okno
dialogowe Select a Bind List:

1. Kliknąć New.
2. Wyświetlone zostanie okno dialogowe Bind List Configuration:

Po kliknięciu prawym przyciskiem myszy w DOWOLNYM polu tekstowym,


wyświetlone zostanie menu z poleceniami, które można zastosować do
zaznaczonego tekstu.
1. W polu Bind List Name wpisać nazwę Listy powiązań.
Długość nazwy listy powiązań nie może przekraczać 32 znaków. Nowa lista
powiązań umożliwi przypisanie kolumn bazy danych do zmiennych InTouch.
Przykładowo, jeżeli tworzona jest lista demograficzna pracowników, należy wpisać
w tym polu nazwę listy powiązań, związaną z informacjami o pracownikach.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-4 Rozdział 3

Uwaga Lista powiązań jest parametrem wywołania funkcji SQLInsert(), SQLSelect(),


i SQLUpdate(). Dodatkowo, przy korzystaniu z funkcji SQLExecute() istotna jest
kolejność zmiennych, ponieważ funkcja SQLExecute() zapisuje zmienne w
wyszczególnionej kolejności.
5. W polu Tagname.FieldName wpisać zmienną i jej pole.
Lista zmiennych powiąże dane pole zmiennej z nazwa kolumny w bazie danych.
Jeżeli zmienna nie jest jeszcze zdefiniowana na Liście zmiennych, należy ją
podwójnie kliknąć w celu wywołania okna dialogowego Tagname Dictionary
i zdefiniować ją.
6. Kliknąć Tagname w celu wybrania jednej z zdefiniowanych wcześniej zmiennych.
Wyświetlona zostanie Przeglądarka zmiennych.
Pokazane zostaną wszystkie zmienne dla wybranego źródła zmiennych. W celu
wybrania zmiennej podwójnie ją kliknąć, lub zaznaczyć ją, a następnie kliknąć
OK. W celu wybrania pola zmiennej, kliknąć strzałkę Dot Field zaznaczyć jedno
z pól, a następnie kliknąć OK.
Więcej informacji na temat Przeglądarki zmiennych podano w podręczniku
InTouch.
7. Kliknąć FieldName w celu wybrania pola zmiennej. Wyświetlone zostanie okno
dialogowe Choose field name.
8. Zaznaczyć pole, które ma być wstawione. Okno dialogowe zostanie zamknięte,
a wybrane pole automatycznie wstawione do pola Tagname.FieldName.
Więcej informacji na temat pól zmiennych podano w Rozdziale 4 podręcznika
InTouch.
9. W polu Column Name wpisać nazwę kolumny.
Długość nazwy kolumny nie może przekraczać 30 znaków. Nazwa kolumny jest
bezpośrednio wiązana z nazwą kolumny w bazie danych. Jeżeli w nazwie kolumny
występują spacje, w czasie wprowadzania tej nazwy w oknie dialogowym lub w
skrypcie należy ją ująć w nawiasy kwadratowe. Przykładowo:
WHERE EXPR= "[Pipe Flow} = " text (tagname,"#");

W celu powiązania nazwy kolumny z bazą danych można skorzystać z


specjalnych separatorów.
Więcej informacji na ten temat podano w punkcie "Separatory specjalne".
10. Kliknąć Move Up w celu przesunięcia na liście wybranej zmiennej o jeden poziom
wyżej.
11. Kliknąć Move Down w celu przesunięcia na liście wybranej zmiennej o jeden poziom
niżej.
12. Kliknąć Add Item w celu dodania pól Tagname.FieldName i Column Name do Listy
powiązań.
13. Kliknąć Delete Item w celu usunięcia zaznaczonych pól Tagname.FieldName
i Column Name z Listy powiązań.
14. Kliknąć Modify Item w celu zmienienia na Liście powiązań zaznaczonych pól
Tagname.FieldName i Column Name .
15. Kliknąć OK w celi zapisania Listy powiązań i zamknięcia okna dialogowego.
Kliknięcie Save powoduje zapisanie wprowadzonych zmian, bez zamykania okna
dialogowego.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie Menadżera języka SQL 3-5

W celu wprowadzenia zmian na liście powiązań:


16. Z menu Specjalme wybrać SQL Access Manager, a następnie kliknąć Bind List, lub
rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie
podwójnie kliknąć Bind List.
17. Wyświetlone zostanie okno dialogowe Select a Bind List:

18. Zaznaczyć nazwę listy powiązań, a następnie kliknąć Modify. Wyświetlone zostanie
okno dialogowe Bind List Configuration:
19. Wprowadzić żądane zmiany.
20. Kliknąć OK w celu zapisania zmian i zamknięcia okna dialogowego.
Więcej informacji na temat konfigurowania listy powiązań podano w punkcie
"W celu utworzenia Listy powiązań".
W celu usunięcia listy powiązań:
1. Z menu Special wybrać SQL Access Manager, a następnie kliknąć Bind List, lub
rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie
podwójnie kliknąć Bind List.
2. Wyświetlone zostanie okno dialogowe Select a Bind List:

3. Zaznaczyć nazwę listy powiązań, która ma być usunięta.


4. Kliknąć Delete. Wyświetlone zostanie okno dialogowe żądające potwierdzenia zamiaru
wykonania tej czynności. Kliknąć Yes w celu usunięcia zaznaczonej listy powiązań, lub
kliknąć No w celu anulowania tej operacji. Wyświetlone zostanie ponownie okno
dialogowe Bind List Configuration:
5. Kliknąć OK w celu zamknięcia okna dialogowego.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-6 Rozdział 3

Separatory specjalne
Funkcje SQLInsert() i SQLUpdate() korzystają z domyślnego formatu, w którym łańcuchy
znaków ujęte są w apostrofy. Niektóre bazy danych SQL wymagają, aby łańcuchy znaków
były ujęte w inne separatory. Przykładowo, w bazie danych Oracle, łańcuch znaków musi
być podawany w nawiasach. Jeżeli występuje taka potrzeba, należy skorzystać
w następujący sposób z funkcji Delim():
W oknie dialogowym Bind List Configuration, w polu Column Name, wpisać za nazwą
kolumny słowo kluczowe "delim" (nie jest rozróżniana wielkość liter). Po słowie
kluczowym "delim" należy wpisać:
• lewy nawias
• lewy separator
• przecinek
• prawy separator
• prawy nawias
Przykład: datestring delim (‘,‘)
Jeżeli z lewej i z prawej strony stosowany jest ten sam separator, wystarczy go podać
w nawisach, bez przecinka.
Przykład: datestring delim (‘ ‘)
W podanym poniżej przykładzie, z lewej strony jest inny separator niż z prawej strony.
Zwrócić uwagę na miejsce wpisania date delim (‘,’) w polu Column Name.

Więcej informacji na temat rejestrowania daty i czasu do pól bazy danych Oracle
podano w Rozdziale 2 - Zapisywanie daty i czasu do pól bazy danych Oracle.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie Menadżera języka SQL 3-7

Konfigurowanie Szablonu tabeli


Szablon tabeli umożliwia zdefiniowanie struktury i formatu nowej tabeli w bazie danych.
W celu utworzenia nowego Szablonu tabeli:
1. Z menu Specjalne wybrać SQL Access Manager, a następnie kliknąć Table
Template, lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a
następnie podwójnie kliknąć Table Template.
Jeżeli polecenie to wywołane zostało po raz pierwszy, wyświetlone zostanie okno
dialogowe Select a Table Template:

1. Kliknąć New.
2. Wyświetlone zostanie okno dialogowe Table Template Configuration:

Po kliknięciu prawym przyciskiem myszy w DOWOLNYM polu tekstowym,


wyświetlone zostanie menu z poleceniami, które można zastosować do
zaznaczonego tekstu.
1. W polu Table Template Name wpisać nazwę szablonu tabeli.
Długość nazwy szablonu tabeli nie może przekraczać 32 znaków. Nazwa szablonu
tabeli jest wykorzystywana do identyfikacji struktury w bazie danych, w czasie
korzystania z funkcji SQLCreateTable().

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-8 Rozdział 3

2. W polu Column Name wpisać nazwę szablonu tabeli.


Długość nazwy kolumny nie może przekraczać 30 znaków.
3. W polu Column Type wpisać typ danych przechowywanych w kolumnie.
Należy wpisać jeden z typów danych, dopuszczalnych przez bazę, z którą będzie
nawiązywane połączenie.
Więcej informacji na temat typów danych dostępnych w poszczególnych bazach
podano w Rozdziale 2 - Obsługiwane typy danych.
4. Zaznaczyć pole w grupie Index Type, zgodnie z podanym poniżej opisem.
Unique Wartości w kolumnie nie mogą się powtarzać.
Non-Unique Wartości w kolumnie mogą się powtarzać.
None Bez indeksu
Po wywołaniu funkcji SQLCreateTable() tworzony jest automatycznie plik
z indeksowaniem.
8. Zaznaczyć opcję Allow Null entry jeżeli w tej kolumnie ma być dopuszczona
możliwość nie wpisywania wartości.
W programie InTouch zmienne musza mieć zawsze przypisaną wartość. Jeżeli do
zmiennej przypisane zostanie pole bez wartość, zmienna będzie równa:
Dla zmiennych typu dyskretnego 0
Dla zmiennych typu całkowitego 0
Dla zmiennych typu tekstowego Pusty łańcuch znaków.
W momencie przypisywania do zmiennej pola bazy danych bez wartości, wartość
zmiennej zostanie wyznaczona zgodnie z powyższym zestawieniem.
9. Kliknąć Add Item w celu dodania wartości wprowadzonych w polach Column Name,
Column type, Length i Index Type do szablonu tabeli.
10. Kliknąć Delete Item w celu usunięcia wartości wprowadzonych w polach Column
Name, Column Type, Length i Index Type z szablonu tabeli.
11. Kliknąć Modify Item w celu zmodyfikowania w szablonie tabeli wartości
wprowadzonych w polach Column Name, Column Type, Length i Index Type.
12. Kliknąć OK w celi zapisania szablonu tabeli i zamknięcia okna dialogowego.
Kliknięcie Save powoduje zapisanie wprowadzonych zmian, bez zamykania okna
dialogowego.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Konfigurowanie Menadżera języka SQL 3-9

W celu zmodyfikowania szablonu tabeli:


13. Z menu Specjalne wybrać SQL Access Manager, a następnie kliknąć Table
Template, lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a
następnie podwójnie kliknąć Table Template.
14. Wyświetlone zostanie okno dialogowe Select a Table Template:

15. Zaznaczyć nazwę szablonu tabeli, a następnie kliknąć Modify. Wyświetlone zostanie
okno dialogowe Table Template Configuration:
16. Wprowadzić żądane zmiany.
17. Kliknąć OK w celu zapisania zmian i zamknięcia okna dialogowego.
Więcej informacji na temat konfigurowania szablonu tabeli podano w punkcie
"W celu utworzenia nowego szablonu tabeli".
W celu usunięcia szablonu tabeli:
1. Z menu Special wybrać SQL Access Manager, a następnie kliknąć Table Template,
lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie
podwójnie kliknąć Table Template.
2. Wyświetlone zostanie okno dialogowe Select a Table Template:

3. Zaznaczyć nazwę szablonu tabeli, który ma być usunięty.


4. Kliknąć Delete. Wyświetlone zostanie okno dialogowe żądające potwierdzenia zamiaru
wykonania tej czynności. Kliknąć Yes w celu usunięcia zaznaczonego Szablonu tabeli,
lub kliknąć No w celu anulowania tej operacji. Wyświetlone zostanie ponownie okno
dialogowe Table Template Configuration:
5. Kliknąć OK w celu zamknięcia okna dialogowego.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


3-10 Rozdział 3

Plik SQL.DEF
Moduł SQL Access zapisuje listy powiązań i szablony tabel w pliku "SQL.DEF". Jest to plik
w formacie .CSV. Plik SQL.DEF można podglądnąć lub modyfikować za pomocą modułu
SQL Access, lub też za pomocą dowolnego edytora tekstowego, np. Notatnika Windows.
Dane w pliku zapisywane są w następujący sposób:
:NazwaListyPowiązań,NazwaListyPowiązań
Zmienna1.PolezZmiennej,NazwaKolumny1
Zmienna2.PoleZmiennej,NazwaKolumny2
Zmienna3.PoleZmiennej,NazwaKolumny3
:NazwaSzablonuTabeli,NazwaSzablonuTabeli
NazwaKolumny1,TypKolumny,[DługośćKolumny],Null,Index
NazwaKolumny2,TypKolumny,[DługośćKolumny],Null,Index
NazwaKolumny3,TypKolumny,[DługośćKolumny],Null,Index

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-1

R O Z D Z I A Ł 4

Funkcje SQL

Program InTouch korzysta z funkcji SQL do wymiany informacji z baza danych. Funkcje te
mogą być wykorzystywane, podobnie jak standardowe funkcje InTouch, w dowolnym
skrypcie. Pozwalają one na zaznaczanie, modyfikowanie, wstawianie i usuwanie rekordów
z wybranej tabeli.

Spis treści
Zestawienie funkcji SQL
Parametry funkcji SQL
Korzystanie z funkcji SQL w skryptach
Zapytania złożone

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-2 Rozdział 4

Zestawienie funkcji SQL


W punkcie tym zestawiono wszystkie funkcje SQL. Należy pamiętać, że funkcje SQL są
synchroniczne. Program InTouch powraca do realizacji innych czynności, dopiero po
zakończeniu działania wywołanej wcześniej funkcji SQL (przerywane jest w tym czasie
tworzenie trendów, itp.)
Wszystkie funkcje SQL (za wyjątkiem SQLNumRows()) zwracają parametr ResultCode.
Jeżeli zwrócona wartość parametru ResultCode jest różna od 0, sygnalizuje to niepomyślne
wykonanie funkcji, w związku z czym należy podjąć dodatkowe działania. Parametr
ResultCode może być wykorzystany przez funkcję SQLErrorMsg().
Ogólna składania funkcji SQL jest następująca:
SQLFunction(Parametr1, Parametr2,...)
Szczegółowe informacje na temat każdej z funkcji SQL, oraz przykłady ich
wykorzystania podano w podręczniku InTouch - Opis funkcji, pól i zmiennych
systemowych.
Funkcja Opis
SQLAppendStatement Dalsza część instrukcji SQL zawarta w zmiennej
tekstowej.
SQLClearParam Funkcja ta powoduje usunięcie wartości danego
parametru.
SQLClearStatement Funkcja ta zwalnia zasoby związane z instrukcją
określoną przez SQLHandle.
SQLClearTable Funkcja ta usuwa wszystkie rekordy z tablicy w bazie
danych, ale nie usuwa samej tablicy.
SQLCommit Funkcja SQLCommit() definiuje koniec grupy zestawu
transakcji.
SQLConnect Funkcja ta nawiązuje połączenie programu InTouch z
bazą danych wyszczególnioną jako parametr funkcji.
SQLCreateTable Funkcja ta tworzy tablicę w bazie danych przy
wykorzystaniu parametrów z szablonu tabeli (Table
Template) o określonej nazwie.
SQLDelete Funkcja ta usuwa rekord lub kilka rekordów.
SQLDisconnect Funkcja ta służy do odłączenia użytkownika od bazy
danych.
SQLDropTable Funkcja ta usuwa tablicę z bazy danych.
SQLEnd Funkcja ta jest wykorzystywana po funkcji SQLSelect()
w celu zwolnienia zasobów, które były użyte do
zapamiętania tablicy wynikowej (Results Table).
SQLErrorMsg Odczytuje tekst komunikatu o błędzie związanego
z zadanym kodem błędu ResultCode. ErrorMsg jest
zmienną typu Memory Message (maksymalnie 131
znaków), powiązaną z parametrem ResultCode.
SQLExecute Funkcja ta wykonuje instrukcję SQL. Jeśli instrukcja
służy do wyboru danych z bazy, parametr BindList
określa nazwę listy powiązań między kolumnami bazy
danych a zmiennymi programu InTouch. Jeśli lista
powiązań jest PUSTA, żadne zmienne nie zostaną
powiązane z kolumnami w bazie danych.
SQLFirst Funkcja ta wybiera pierwszy rekord z tablicy wynikowej
(Results Table) utworzonej przez ostatnio wywoływaną
funkcję SQLSelect().
SQLGetRecord Funkcja ta odczytuje z bufora rekord określony przez
parametr RecordNumber.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Funkcje SQL 4-3

Funkcja Opis
SQLInsert Funkcja ta wstawia nowy rekord do tablicy o podanej
nazwie, wykorzystując wartości zmiennych z podanej
listy powiązań. Parametr BindList definiuje
wykorzystywane zmienne programu InTouch, oraz
powiązania pomiędzy nimi, a kolumnami bazy danych.
SQLInsertEnd Przerwanie instrukcji.
SQLInsertExecute Funkcja ta wykonuje przygotowaną instrukcję
wstawiania rekordów do tablicy.
SQLInsertPrepare Funkcja ta przygotowuje instrukcję wstawiania
rekordów do tablicy.
SQLLast Funkcja ta wybiera ostatni rekord z tablicy wynikowej
(Results Table) utworzonej poprzez wykonanie ostatniej
funkcji SQLSelect().
SQLLoadStatement Funkcja ta odczytuje instrukcję zapisaną w pliku
FileName. W tym momencie funkcja ta wykazuje
podobieństwo do instrukcji utworzonej za pomocą
funkcji SQLSetStatement(), oraz może być dołączana
za pomocą funkcji SQLAppendStatement(), lub
wykonywana za pomocą funkcji SQLExecute().
W jednym pliku może znajdować się wyłącznie jedna
instrukcja. Funkcja SQLAppendStatement() może być
jednak wykorzystana do dołączania do instrukcji, jeżeli
nie były wywoływane funkcje
SQLPrepareStatement() lub SQLExecute().
SQLManageDSN Funkcja ta uruchamia program konfiguracyjny
Microsoft ODBC Manager. Można go wykorzystać do
dodawania, usuwania i modyfikacji nazw źródeł danych
(Data Source Names).
SQLNext Funkcja ta wybiera następny rekord z tablicy wynikowej
(Results Table) utworzonej poprzez wykonanie ostatniej
funkcji SQLSelect().
SQLNumRows Funkcja ta oblicza, ile wierszy spełnia kryteria podane
w ostatnio użytej funkcji SQLSelect().
SQLPrepareStatement SQLPrepareStatement() przygotowuje istniejącą
instrukcję SQL do wykorzystania jej przez funkcję
SQLSetParam(). Instrukcja może zostać utworzona
zarówno za pomocą SQLSetStatement(), jak i
SQLLoadStatement().
SQLPrev Funkcja ta wybiera poprzedni rekord z tablicy
wynikowej (Results Table) utworzonej poprzez
wykonanie ostatniej funkcji SQLSelect().
SQLRollback Funkcja SQLRollback() odwraca, lub "cofa" ostatnio
wykonany zestaw transakcji. Grupa poleceń zawartych
pomiędzy funkcjami SQLTransact() i SQLCommit()
lub SQLRollback nosi nazwę zestawu transakcji.
Zestaw transakcji jest traktowany jak pojedyncza
transakcja. Po wykonaniu polecenia SQLTransact(),
wszystkie kolejne operacje nie będą kierowane do bazy
danych, aż do momentu kolejnego wywołania polecenia
SQLCommit().

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-4 Rozdział 4

Funkcja Opis
SQLSelect Funkcja ta wybiera informacje z wyszczególnionej
tablicy w bazie danych. Podczas wykonywania funkcji
SQLSelect() w pamięci tworzona jest tymczasowa
tablica wynikowa (Results Table), zawierająca rekordy,
które można przeszukiwać używając funkcji
SQLFirst(), SQLLast(), SQLNext() i SQLPrev().
SQLSetParamChar Funkcja ta powoduje przypisanie łańcucha znaków
określonemu parametrowi tekstowemu. Funkcja
SQLSetParamChar() może być wywoływana wiele
razy przed wykonaniem instrukcji SQL, w wyniku
czego parametr może być złożeniem kolejno
przypisywanych łańcuchów znaków.
SQLSetParamDate Funkcja ta powoduje przypisanie łańcucha znaków
określonemu parametrowi reprezentującemu datę.
SQLSetParamDateTime Funkcja ta powoduje przypisanie łańcucha znaków
określonemu parametrowi zawierającemu datę i czas.
SQLSetParamDecimal Funkcja ta powoduje przypisanie łańcucha znaków
(cyfr) określonemu parametrowi dziesiętnemu.
SQLSetParamFloat Funkcja ta powoduje przypisanie wartości określonemu
parametrowi.
SQLSetParamInt Funkcja ta powoduje przypisanie wartości określonemu
parametrowi.
SQLSetParamLong Funkcja ta powoduje przypisanie wartości określonemu
parametrowi.
SQLSetParamNull Funkcja ta powoduje przypisanie określonemu
parametrowi wartości zerowej (pustej).
SQLSetParamTime Funkcja ta powoduje przypisanie łańcucha znaków
określonemu parametrowi reprezentującemu czas.
SQLSetStatement Funkcja ta tworzy bufor instrukcji SQL wykorzystując
do tego celu wartość SQLStatement, dla ustanowionego
połączenia ConnectionID. Jedno połączenie
ConnectionID może korzystać tylko z jednego bufora.
SQLTransact Funkcja SQLTransact() określa początek zestawu
transakcji. Grupa poleceń zawierających się pomiędzy
funkcjami SQLTransact() i SQLCommit() nosi nazwę
zestawu transakcji. Zestaw transakcji jest traktowany jak
pojedyncza transakcja. Po wykonaniu polecenia
SQLTransact(), wszystkie kolejne operacje nie będą
kierowane do bazy danych, aż do momentu kolejnego
wywołania polecenia SQLCommit().
SQLUpdate Funkcja ta powoduje zmodyfikowanie rekordu
w wyszczególnionej tablicy w bazie danych przy użyciu
bieżących wartości zmiennych powiązanych
z kolumnami tablicy.
SQLUpdateCurrent Funkcja ta pobiera zaznaczony rekord i uaktualnia go.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Funkcje SQL 4-5

Parametry funkcji SQL


Poniżej opisano parametry wymagane przez każdą z funkcji SQL. Jeżeli parametr
wprowadzony w skrypcie ujęty jest w cudzysłów, np. "Parametr1", jako parametr użyty
zostanie wprowadzony łańcuch znaków. Jeżeli znaki cudzysłowów nie są używane, system
przyjmuje, ze Parameter1 jest zmienną, po czym przeszukuje bazę danych programu
InTouch w celu znalezienia wartości zmiennej Parameter1.
Przykład:
"c:\main\file" vs. Location
gdzie: Location jest zmienną tekstowa programu InTouch.
"c:\main\file" jest łańcuchem znaków
Większość funkcji SQL wymaga podania co najmniej jednego spośród przedstawionych
poniżej parametrów.
Parametry Opis
BindList Parametr ten odpowiada nazwie Listy powiązań w pliku
SQL.DEF.
ConnectionID Zmienna typu Memory Integer, utworzona przez użytkownika do
pamiętania numeru (ID) przypisywanego przez funkcję
SQLConnect do każdego połączenia z bazą danych.
ConnectString Nazwa bazy danych oraz dodatkowe informacje potrzebne do
nawiązania połączenia przy pomocy funkcji SQLConnect().
ErrorMsg Zmienna typu tekstowego zawierająca opis komunikatu o błędzie.
Więcej informacji na temat komunikatów o błędach podano w
Rozdziale 5 - Usuwanie problemów.
FileName Nazwa pliku zawierającego odczytywaną instrukcję.
MaxLen Maksymalny rozmiar kolumny, z którą związany jest parametr.
Opcja ta wyznacza czy parametr jest typu o różnej liczbie
znaków, czy też typu o znacznie różnej liczbie znaków. Jeżeli
parametr MaxLen ma długość równą lub większą od maksymalnej
wartości dopuszczalnej w bazie danych, to parametr jest typu o
różnej liczbie znaków. Jeżeli jest dłuższy, ma typ o znacznie
różnej liczbie znaków.
OrderByExpression Definiuje kolumnę i kierunek sortowania. Kluczem do sortowania
mogą być wyłącznie nazwy kolumn. Wyrażenie musi być
sformatowane:
Nazwa_kolumny [ASC|DESC]
W celu posortowania zaznaczonej tabeli według nazwy kolumny
(np. manager w kolejności rosnącej):
"manager ASC"
W celu posortowania względem kilku kolumn, należy podać:
Nazwa_kolumny [ASC|DESC],
Nazwa_kolumny [ASC|DESC]
W celu posortowania zaznaczonej tabeli według jednej kolumny
(np. temperatura) w kolejności rosnącej, oraz według drugiej
kolumny (np. czas) w kolejności malejącej.
" temperature ASC, time DESC"

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-6 Rozdział 4

ParameterNumber Numer parametru w instrukcji SQL.


ParameterType Typ danych określonego parametru: Zakres dopuszczalnych
wartości:
Typ Wartość Opis
Char 1 Łańcuch znaków o stałej
długości wypełniony znakami
pustymi
funkcje tekstowe
Var Char 2 Łańcuch znaków o zmiennej
długości
Decimal 3 Liczba dziesiętna w kodzie
BCD
Integer 4 4-bajtowa liczba całkowita ze
znakiem
Small Integer 5 2-bajtowa liczba całkowita ze
znakiem
Float 6 4-bajtowa liczba
zmiennoprzecinkowa
Double Precision 7 8-bajtowa liczba
Float zmiennoprzecinkowa
DateTime 8 26-bajtowa reprezentacja daty i
czasu
Date 111 26-bajtowa reprezentacja daty i
czasu
Time 112 26-bajtowa reprezentacja daty i
czasu
No Type 0 Brak typu danych
ParameterValue Wartość parametru.
Precision Dokładność wartości podawanych w systemie dziesiętnym,
maksymalna liczba znaków, lub długość bajtów przeznaczonych
do zapisu daty i czasu.
RecordNumber Numer rekordu, który ma zostać odczytany.
ResultCode Zmienna całkowita zwracana przez większość funkcji SQL. Jej
wartość wynosi 0, jeśli funkcja została wykonana pomyślnie oraz
jest ujemną liczbą całkowitą, jeśli funkcja nie została wykonana.
Więcej informacji na ten temat podano w Rozdziale 5 -
Usuwanie problemów.
Scale Wartość dziesiętna skali. Jest wymagana tylko w przypadku, gdy
dotyczy zerowanego parametru.
SQLHandle Jest to parametr wewnętrzny, wykorzystywany przy tworzeniu
zaawansowanych instrukcji SQL.
SQLStatement Bieżąca instrukcja, przykładowo:
ResultCode=SQLSetStatement(ConnectionID,
"Select LotNo, LotName form LotInfo");
TableName Nazwa tablicy w bazie danych, której dotyczy operacja.
TemplateName Nazwa zdefiniowanego szablonu tablicy, który ma zostać użyty
przez funkcję.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Funkcje SQL 4-7

WhereExpression Warunek, który może być spełniony lub niespełniony dla każdego
wiersza tablicy. Funkcja wybiera z tablicy tylko te wiersze, dla
których warunek jest spełniony. Warunek musi mieć następujący
format:
NazwaKolumny operator_porównania wyrażenie

Uwaga Jeśli w kolumnie znajdują się dane typu tekstowego,


wyrażenie musi zostać wpisane w apostrofach.
Poniższy przykład służy do wybrania wszystkich wierszy, w
których w kolumnie name występuje ciąg znaków EmployeeID:
name='EmployeeID'
Kolejny przykład służy do wybrania wszystkich wierszy, w
których w kolumnie partno występuje liczba od 100 do 199:
partno>=100 and partno<200
Następny przykład służy do wybrania wszystkich wierszy, w
których w kolumnie temperature występuje liczba większa od
350:
temperature>350

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-8 Rozdział 4

Korzystanie z funkcji SQL w skryptach


Funkcje SQL można automatycznie wstawiać do skryptów programu InTouch, poprzez
kliknięcie przycisku Add ons w oknie dialogowym edytora skryptów. Funkcja SQL zostanie
wtedy automatycznie wstawiona do skryptu, w miejscu, w którym znajduje się kursor.
Szczegółowe informacje na temat skryptów podano w Podręczniku użytkownika,
Rozdział 6 "Skrypty".

Zapytania złożone
Moduł SQL Access pozwala na wysyłanie złożonych zapytań i instrukcji SQL. Zapytania te
mogą być dynamicznie tworzone, lub też mogą pochodzić z zewnętrznego pliku.
Dodatkowo, zapytania te mogą zawierać parametry, przekazywane w zapytaniu w czasie
pracy aplikacji. Po wywołaniu zapytania, może ono wrócić zbiór wynikowy. Moduł SQL
Access API pozwala na wywoływanie dowolnie złożonych instrukcji SQL, pod warunkiem,
że obsłuży je baza danych, oraz pozwala na przeglądanie wyników zapytania. Jako produkt
uboczny, dostępne są zachowane procedury. (Zachowane procedury nie są w pełni
obsługiwane).
Więcej informacji na ten temat podano w punkcie "Obsługa zachowanych procedur".
W przypadku złożonych zapytań i wyrażeń tekstowych o długości przekraczającej 131
znaków należy korzystać z funkcji SQLSetStatement. Jeżeli długość wyrażenia tekstowego
przekracza 131 znaków, skorzystać z funkcji SQLAppend. Przykładowo:
SQLSetStatement( Connect_Id, “Select Speed, Ser_No from
tablename where Ser_No =’” + Serial_input + “’”);
W zamieszczonym poniżej przykładzie, wartość SQLHandle ustawiona zostaje na 0, dzięki
czemu instrukcja nie wywołuje SQLPrepare(Connect_Id,SQLHandle) przed wykonaniem
instrukcji. Ponieważ SQLHandle nie została utworzona przez SQLPrepare w celu
poprawnego zakończenia tej selekcji, skorzystać z funkcji SQLEnd() w miejsce
SQLClearStatement().
SQLExceute(Connect_Id,0);
SQLSetStatement( Connect_Id, “Select Speed, Ser_No from
tablename where Ser_No =’” + Serial_input + “’”);
SQLPrepareStatement(Connect_Id,SQlHandle);
W zamieszczonym poniżej przykładzie, SQLHandle jest tworzona za pomocą
SQLPrepareStatement(), i wykorzystywana w funkcji SQLExecute(). W celu zakończenia
tej instrukcji selekcji skorzystać z funkcji SQLClearStatement(), co spowoduje uwolnienie
zasobów, oraz zwolnienie parametru SQLHandle.
SQLExceute(Connect_Id,SqlHandle);

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Funkcje SQL 4-9

Dynamiczne budowanie zapytań


Dynamiczne budowanie zapytań umożliwiają dwie dodatkowe funkcje: SQLSetStatement()
i SQLAppendStatement(). SQLSetStatement() rozpoczyna nową instrukcję SQL. Może to
być dowolna, poprawna instrukcja SQL, włączając w to nazwę pamiętanej procedury.
Ponieważ długość zmiennych InTouch typu testowego nie może przekraczać 131 znaków,
stosowana jest funkcja SQLAppendStatement(), która dołącza dodatkowy łańcuch znaków
do instrukcji.

Uwaga Instrukcje języka SQL pisane są tekstem pogrubionym.

Przykład
ResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,
LotName, LotDescription, LotQuantity from LotInfo,
ProductionInfo" );
ResultCode = SQLAppendStatement (ConnectionID, " where
LotInfo.LotNo = ProductionInfo.LotNo" );
ResultCode = SQLAppendStatement (ConnectionID, " order by
LotNo,NotName,LotQuantity" );
W tym momencie można wywołać instrukcję.

Uwaga Bardzo często w nazwach kolumn baz danych i tabel rozróżniana jest wielkość liter.
Warunkiem poprawnego wykonania podanego powyżej skryptu jest dokładne wpisanie nazw
kolumn i baz danych, tak jak zdefiniowano je w tabelach baz danych.

Odczytywanie instrukcji SQL z pliku


Zapytanie może zostać utworzone przy pomocy innego programu, np. przy pomocy bazy
danych Microsoft Access, czy też bazy danych innego producenta, po czym może one zostać
wysłane przez moduł SQL Access. Do odczytywania instrukcji SQL z pliku przeznaczona
jest funkcja SQLLoadStatement().

Przykład
ResultCode = SQLLoadStatement ( ConnectionID,
"c:\myappdir\lotquery.sql" );
W tym momencie można wywołać instrukcję.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-10 Rozdział 4

Określanie parametrów isntrukcji SQL w czasie pracy


aplikacji
W celu zapewnienia pełnej funkcjonalności SQL, moduł SQL Access pozwala na
wprowadzanie klauzuli where, zawierającej wartość zmiennej programu InTouch. Parametry
mogą być określane w trakcie pracy aplikacji w następujących funkcjach:
• SQLPrepareStatement()
• SQLSetParamType()
• SQLClearStatement()
• SQLClearParam()
W instrukcji SQL, w którym wartość parametru ma zostać określona w późniejszym czasie,
należy wstawić "?". Instrukcja ta jest "przygotowywana", następnie "przypisywana" jest
wartość parametru, po czym następuje wykonanie instrukcji.
SQLPrepareStatement() przygotowuje instrukcję do wykonania. Funkcja ta nie powoduje
wykonania instrukcji, a wyłącznie uaktywnia tę instrukcję, co umożliwia przypisanie
parametrom wartości. SQLSetParamType() to zbiór funkcji, pozwalających na przypisanie
wartości różnym parametrom instrukcji SQL.

Przykład
ResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,
LotName, LotDescription, LotQuantity from LotInfo,
ProductionInfo" );
ResultCode = SQLAppendStatement (ConnectionID, " where
LotInfo.LotNo = ?");
ResultCode = SQLAppendStatement (ConnectionID, " order by
LotNo,NotName,LotQuantity" );
ResultCode = SQLPrepareStatement (ConnectionID, SQLHandle );
{Przypisz do zmiennej 'SQLHandle' identyfikator wewnętrzny
instrukcji}
ResultCode = SQLSetParamInt ( SQLHandle, 1, tagLotNumber );
{przypisz do parametru wartość zmiennej tagLotNumber}
Ponieważ instrukcja ta ma tylko jeden parametr, jest w tym momencie gotowa do
wykonania.
Po wykonaniu instrukcji, oraz zakończeniu korzystania z niej, można wywołać funkcję
SQLClearStatement() w celu zwolnienia zasobów zajmowanych przez tę instrukcję.

Uwaga Wywołanie funkcji SQLEnd() zwalania zasoby zajmowane przez instrukcje SQL
"bez nazwy" (wygenerowane przez istniejące funkcje języka SQL oraz instrukcje utworzone
przy pomocy funkcji SQLSetStatement() i SQLLoadStatement(), a nie przygotowane.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Funkcje SQL 4-11

Wykonywanie rozbudowanych instrukcji SQL


Jeżeli instrukcja została utworzona dynamicznie, albo odczytana z pliku, oraz opcjonalnie
przygotowano ją lub zmodyfikowano, można przystąpić do wykonywania jej. Moduł SQL
Access API korzysta w tym celu z funkcji SQLExecute(). SQLExecute() powoduje albo
wykonanie aktywnej w danym momencie instrukcji (np. instrukcji przygotowanej za pomocą
SQLSetStatement() lub SQLLoadStatement(), lub instrukcji uprzednio przygotowanej,
określonej przez identyfikator wewnętrznej instrukcji (parametr SQLHandle).

Przykład #1
ResultCode = SQLLoadStatement ( ConnectionID,
"c:\myappdir\lotquery.sql" );
ResultCode = SQLExecute (ConnectionID, "BindList", 0);
{wyniki operacji selekcji należy przypisać do zmiennych
określonych za pomocą parametru BindList - identyfikator
przygotowanej instrukcji jest równy 0}
ResultCode = SQLNext ( ConnectionID );
{Pobierz wyniki operacji selekcji}

Przykład #2
ResultCode = SQLSetStatement ( ConnectionID, "Select LotNo,
LotName, LotDescription, LotQuantity from LotInfo,
ProductionInfo" );
ResultCode = SQLAppendStatement (ConnectionID, " where
LotInfo.LotNo = ?");
{Znak zapytania oznacza, że wartość tego parametru zostanie
ustalona w późniejszym czasie}
ResultCode = SQLAppendStatement (ConnectionID, " order by
LotNo,NotName,LotQuantity" );
ResultCode = SQLPrepareStatement (ConnectionID, SQLHandle );
{przypisz identyfikator instrukcji do zmiennej 'SQLHandle'}
ResultCode = SQLSetParamInt ( SQLHandle, 1, tagLotNumber );
{przypisz do parametru wartość zmiennej tagLotNumber}
ResultCode = SQLExecute (ConnectionID, "BindList", SQLHandle);
{wyniki operacji selekcji przypisać do zmiennych określonych
przez parametr BindList, przygotowana instrukcja jest
identyfikowana przez SQLHandle}
ResultCode = SQLNext ( ConnectionID );
{Pobierz wyniki operacji selekcji}

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


4-12 Rozdział 4

Przykład #3
SQLSetStatement - Instrukcja ta przeznaczona jest do budowania złożonych zapytań i
wyrażeń tekstowych o długości przekraczającej 131 znaków. Jeżeli długość wyrażenia
tekstowego przekracza 131 znaków, skorzystać z funkcji SQLAppend.
SQLSetStatement( Connect_Id, “Select Speed, Ser_No from
tablename where Ser_No =’” + Serial_input + “’”);
SQLExceute(Connect_Id,0);
W zamieszczonym powyżej przykładzie, wartość SQLHandle ustawiona zostaje na 0, dzięki
czemu instrukcja nie wywołuje SQLPrepare(Connect_Id,SQLHandle) przed wykonaniem
instrukcji. Ponieważ SQLHandle nie została utworzona przez SQLPrepare, w celu
poprawnego zakończenia tej selekcji, skorzystać z funkcji SQLEnd w miejsce
SQLClearStatement().
SQLSetStatement( Connect_Id, “Select Speed, Ser_No from
tablename where Ser_No =’” + Serial_input + “’”);
SQLPrepareStatement(Connect_Id,SQlHandle);
SQLExceute(Connect_Id,SqlHandle);
W zamieszczonym powyżej przykładzie, SQLHandle jest tworzona za pomocą
SQLPrepareStatement, i wykorzystywana w funkcji SQLExecute. W celu zakończenia tej
instrukcji selekcji skorzystać z funkcji SQLClearStatement co spowoduje uwolnienie
zasobów, oraz zwolnienie SQLHandle.

Obsługa procedur zachowanych


Funkcja SQLExceute() pozwala na wykonywanie niektórych procedur zachowanych.
Przykładowo, załóżmy, że utworzona została procedura zachowana na serwerze baz danych
o nazwie "LotInfoProc", zawierająca następujące instrukcje do selekcji: "Select LotNo,
LotName from LotInfo." W celu wykonania tej procedury, i otrzymania wyników należy
napisać następujący skrypt:

Dla bazy Microsoft SQL Server


ResultCode = SQLSetStatement ( ConnectionID, "LotInfoProc" );
ResultCode = SQLExecute(ConnectionID, "BindList", 0);
ResultCode = SQLNext ( ConnectionID );
{ Pobierz wyniki operacji selekcji}

Dla bazy Oracle lub Microsoft Access


ResultCode = SQLSetStatement ( ConnectionID, "{CALL
LotInfoProc}" );
ResultCode = SQLExecute(ConnectionID, "BindList", 0);
ResultCode = SQLNext ( ConnectionID );
{Pobierz wyniki operacji selekcji}

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


5-1

R O Z D Z I A Ł 5

Usuwanie problemów

W niniejszym rozdziale opisano metody usuwania problemów, występujących w czasie


korzystania z instrukcji SQL, przy pomocy parametru ResultCode, zwracanego przez
funkcje SQL. Pierwszy z punktów poświęcono funkcji SqLErrorMsg(), zamieszczono
w nim również zestawienie wartości parametru ResultCode, i odpowiadających im
komunikatów o błędach. W drugim punkcie zamieszczono tabele z komunikatami o błędach
dla poszczególnych baz danych.

Spis treści
Funkcje do usuwania problemów
Kody błędów dla poszczególnych baz danych

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


5-2 Rozdział 5

Funkcje do usuwania problemów


Wszystkie funkcje SQL zwracają parametr ResultCode, który może zostać wykorzystany
przy usuwaniu problemów. Funkcja SQLErrorMsg() zwraca komunikat o błędzie, dla
zdanego kodu ResultCode.
Przykład:
ErrorMsg=SQLErrorMsg(ResultCode);
gdzie: ErrorMsg jest zmienną typu Memory Message.
ResultCode jest zmienną całkowitą, z wartością dostarczoną przez
odpowiednią funkcję SQL.

Komunikaty o błędach
W niniejszym dokumencie nie omówiono znaczenia poszczególnych wartości ResultCode,
więcej informacji na temat tych wartości podano w dokumentacji do bazy danych. Należy
również pamiętać o sprawdzeniu informacji wyświetlanych przez program diagnostyczny
Wonderware Logger.
Funkcja SQLErrorMsg() przypisuje wartość zmiennej tekstowej ErrorMsg. Poniżej
zamieszczono zestawienie wybranych kodów błędów, oraz odpowiadające im komunikaty,
wraz z ich opisem.
Kod błędu
(ResultCode) Komunikat Opis
0 No errors occurred Instrukcja została zakończona
pomyślnie, bez wystąpienia błędu
-5 No more rows to fetch Odczytany został ostatni rekord bazy
danych
-1001 Out of memory Brak wolnej pamięci na zakończenie
instrukcji
-1002 Invalid connection Niepoprawny parametr ConnectionID
przekazany do funkcji
-1003 No bind list found Lista powiązań o zadanej nazwie nie
istnieje
-1004 No template found Szablon o zadanej nazwie nie istnieje
-1005 Internal Error Wystąpił błąd wewnętrzny.
Skontaktować się z Serwisem.
-1006 String is null Ostrzeżenie - z bazy danych
odczytano pusty łańcuch znaków
-1007 String is truncated Ostrzeżenie - łańcuch znaków
odczytany z bazy danych ma więcej
niż 131 znaków w związku z czym
został on obcięty
-1008 No Where clause Brak klauzuli Where dla Delete

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Usuwanie zakłóceń 5-3

Kod błędu
(ResultCode) Komunikat Opis
-1009 Connection failed Błąd w komunikacji, szczegółowy
opis zakłócenia podany jest
w programie diagnostycznym
Wonderware Logger
-1010 The database Określona baza danych nie istnieje
specified on the DB=
portion of the connect
string does not exist
-1011 No rows were Podjęto próbę wykonania polecenia
selected SQLNumRows(), SQLFirst(),
SQLNext(), lub SQLPrev(), bez
uprzedniego wykonania polecenia
SQLSelect().
-4149 The connection, Przyczyną może być niewłaściwie
statement, or query zdefiniowany typ kolumny.
handle you provided Przykładowo, jeżeli w pliku dBASE
is not valid zdefiniować szablon tabeli z kolumną
typu character, a nie typu char,
zasygnalizowany zostanie błąd

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


5-4 Rozdział 5

Kody błędów dla poszczególnych baz danych


Oracle
Komunikat Rozwiązanie
ORA-03112 - Host String Syntax error Jeżeli uruchamiany jest program
NETINIT.EXE należy umieścić go
w grupie Autostart systemu Windows.
Jeżeli uruchamiany jest program
NETINIT.EXE, i nawiązywane jest więcej
niż jedno połączenie, lub też
uruchamianych jest więcej niż jedna sesja,
należy przydzielić więcej pamięci. W tym
celu należy ustawić parametr
WIN_REMOTE_SESSIONS
w pliku CONFIG.ORA na wartość równa
liczbie żądanych połączeń. Zamieszczona
poniżej instrukcja przydziela pamięć dla 4
połączeń:
WIN_REMOTE_SESSIONS=4

ORA-3121 - No interface driver Przed uruchomieniem Windows, oraz przed


connected korzystaniem z InTouch SQL Access należy
uruchomić program SQL *NET TSR,
odpowiedni dla systemu sieciowego.
ORA-6435 - NetBIOS: ORA-6435 - Musi być uruchomiony system sieciowy
NetBIOS: Unable to add local name to (Novell, LAN Manager, itp.)
name table
ORA-09301 - Local kernel only W łańcuchu znaków do ustanowienia
supported in standard mode połączenia określić nazwę serwera
("SRVR=").
ORA-06430 - Unable to make connection Zweryfikować poprawność i kolejność
atrybutów w łańcuchu znaków do
ustanowienia połączenia.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Usuwanie zakłóceń 5-5

Sybase lub Microsoft SQL Server


Komunikat Rozwiązanie
You cannot have more than one Próba wykonania polecenia SQL po
statement active at a time wykonaniu SQLSelect(). Wywołać
polecenie SQLEnd() w celu zwolnienia
zasobów systemu, lub też przeznaczyć dla
drugiej instrukcji oddzielny parametr
ConnectionID.
There is not enough memory available Spróbować ponownie uruchomić stację
to process the command kliencką

Invalid object name table name Nazwa tablicy nie istnieje w używanej bazie
danych. Spróbować skorzystać z instrukcji
DB=nazwa bazy danych.

dBASE
Komunikat Rozwiązanie
File or DLL not found W przypadku systemu Windows, plik
QEDBF.DLL musi znajdować się w
bieżącej kartotece, lub w kartotece systemu
Windows podanej w ścieżce DOS.
Invalid connection Należy sprawdzić, czy w kartotece znajdują
się odpowiednie pliki DLL. W przypadku
DBF, potrzebny jest plik QLDBF.DLL.
The connection or statement handle you Więcej informacji na ten temat podano w
provided is not valid programie Wonderware Logger . Instrukcja
SQL może zawierać błąd w składni.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


5-6 Rozdział 5

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


A-1

Z A Ł Ą C Z N I K A

Zarezerwowane słowa kluczowe języka SQL


i ODBC

Poniżej zestawiono słowa kluczowe, z których nie można wykorzystywać w Liście powiązań
modułu SQL Access, oraz w interfejsie Open Database Connectivity (ODBC).
Jeżeli zarezerwowane słowo kluczowe zostanie wprowadzone w polu Column Name
w oknie edycyjnym Listy powiązań lub w Szablonów tabel, program Wonderware Logger
wygeneruje komunikat o błędzie. Rodzaj wygenerowanego błędu zależy od wersji
wykorzystywanego sterownika ODBC oraz od miejsca, w którym słowo kluczowe zostało
wprowadzone. Przykładowo, jednym z najczęściej spotykanych błędów jest użycie słów
DATE i TIME jako nazw kolumn w czasie definiowania Listy powiązań lub Szablonu tabel.
W celu uniknięcia tego błędu, należy wprowadzić nieznacznie zmodyfikowaną nazwę, np.
"aDate", czy "aTime".
Zarezerwowane słowa kluczowe stanowią część języka SQL (Structured Query Langugage),
wykorzystywanego przez pakiet InTouch. Słowa kluczowe są również rozpoznawane przez
sterowniki ODBC. Moduł SQL Access przesyła polecenie SQL, zawierające jedno lub
więcej zarezerwowanych słów do pliku ODBC.DLL. Jeżeli polecenie SQL nie może zostać
poprawnie zinterpretowane, Moduł SQL Access przesyła komunikat o błędzie do programu
Wonderware Logger.
Poniżej wymieniono w kolejności alfabetycznej zarezerwowane słowa kluczowe.

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


A-2 Załącznik A

ABSOLUTE EXCEPT OR
ADA EXCEPTION ORDER
ADD EXEC OUTER
ALL EXECUTE OUTPUT
ALLOCATE EXISTS OVERLAPS
ALTER EXTERNAL PARTIAL
AND EXTRACT PASCAL
ANY FALSE PLI
ARE FETCH POSITION
AS FIRST PRECISION
ASC FLOAT PREPARE
ASSERTION FOR FOREIGN PRESERVE
AT FORTRAN PRIMARY
AUTHORIZATION FOUND PRIOR
AVG FROM FULL PRIVILEGES
BEGIN GET PROCEDURE
BETWEEN GLOBAL PUBLIC
BIT GO RESTRICT
BIT_LENGTH GOTO REVOKE
BY GRANT RIGHT
CASCADE GROUP ROLLBACK
CASCADED HAVING ROWS
CASE HOUR SCHEMA
CAST IDENTITY SCROLL
CATALOG IGNORE SECOND
CHAR IMMEDIATE SECTION
CHAR_LENGTH IN SELECT
CHARACTER INCLUDE SEQUENCE
CHARACTER_LENGTH INDEX SET
CHECK INDICATOR SIZE
CLOSE COALESCE INITIALLY SMALLINT
COBOL INNER SOME
COLLATE INPUT SQL
COLLATION INSENSITIVE SQLCA
COLUMN INSERT SQLCODE
COMMIT INTEGER SQLERROR
CONNECT INTERSECT SQLSTATE
CONNECTION INTERVAL SQLWARNING
CONSTRAINT INTO SUBSTRING
CONSTRAINTS IS SUM
CONTINUE ISOLATION SYSTEM
CONVERT JOIN TABLE
CORRESPONDING KEY TEMPORARY
COUNT LANGUAGE THEN
CREATE LAST TIME
CURRENT LEFT TIMESTAMP
CURRENT_DATE LEVEL TIMEZONE_HOUR
CURRENT_TIME LIKE TIMEZONE_MINU
CURRENT_TIMESTAMP LOCAL TO
CURSOR LOWER TRANSACTION
DATE MATCH TRANSLATE
DAY MAX TRANSLATION
DEALLOCATE MIN TRUE
DEC MINUTE UNION
DECIMAL MODULE UNIQUE
DECLARE MONTH UNKNOWN
DEFERRABLE MUMPS UPDATE
DEFERRED NAMES UPPER
DELETE NATIONAL USAGE
DESC NCHAR USER
DESCRIBE NEXT USING
DESCRIPTOR NONE VALUE
DIAGNOSTICS NOT VALUES
DICTIONARY NULL VARCHAR
DISCONNECT NULLIF VARING
DISPLACEMENT NUMERIC VIEW
DISTINCT OCTET_LENGTH WHEN
DOMAIN OF WHENEVER
DOUBLE OFF WHERE
DROP ON WITH
ELSE ONLY WORK
END OPEN YEAR
ESCAPE OPTION

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


I-1

Indeks
SQLSetParamDecimal, 4-4
B SQLSetParamFloat, 4-4
SQLSetParamInt, 4-4
Baza danych, 1-1
SQLSetParamLong, 4-4
BindListName, 3-10, 4-5
SQLSetParamNull, 4-4
Budowanie złożonych zapytań, 4-8
SQLSetParamTime, 4-4
SQLSetStatement, 4-4
C SQLTransact, 4-4
ConnectionID, 4-5 SQLUpdate, 4-4
ConnectionID, 4-5 SQLUpdateCurrent, 4-4
CSV, 1-2, 3-10 Funkcje SQL, 4-1

D K
dBASE Kody błędów dla poszczególnych baz danych
Obsługiwane typy danych, 2-11, 2-14 dBASE, 5-5
Wymogi do nawiązania połączenia, 2-10 Oracle, 5-4
dBASE, 2-10 Sybase lub Microsoft SQL Server, 5-5
DBNMP3.DLL, 2-8 Kody komunikatów o błędach, 5-2
Delim Funkcja, 3--6 Kompatybilność z ODBC, 1-5
Dokumentacja elektroniczna, 1-3 Konfigurowanie i nawiązywanie połączenia z baza
Dynamiczne budowanie zapytań, 4-9 danych, 2-1
Konfigurowanie listy powiązań, 3-3
E Konfigurowanie Menedżera języka SQL, 3-1
Konfigurowanie szablonu tabeli, 3-7
ErrorMsg, 4-5 Korzystanie z funkcji SQL w programie InTouch, 4-8
F L
FileName, 4-5 Licencja FactorySuite, 1-4
Funkcje Przeglądarka zmiennych, 3-4
SQLAppendStatement, 4-2 tworzenie, 3-3
SQLClearParam, 4-2 usuwanie, 3-5
SQLClearParam, 4-2 wprowadzanie zmian, 3-5
SQLClearStatement, 4-2 Lista powiązań, 3-3
SQLCommit, 4-2
SQLConnect, 2-2, 2-8, 4-2 M
SQLCreateTable, 4-2
SQLDelete, 4-2 MaxLen, 4-5
SQLDisconnect, 4-2 Microsoft Access
SQLDropTable, 4-2 Obsługiwane typy danych, 2-12, 2-14
SQLEnd, 4-2 Wymogi do nawiązania połączenia, 2-12
SQLErrorMsg, 4-2 Microsoft Access, 2-12
SQLExecute, 4-2 Microsoft SQL Server
SQLFirst, 4-2 Konfigurowanie Klienta, 2-8
SQLGetRecord, 4-2 Obsługiwane typy zmiennych, 2-9
SQLInsert, 4-3 Wymogi do nawiązania połączenia, 2-8
SQLInsertEnd, 4-3 modyfikowanie Listy powiązań, 3-5
SQLInsertExecute, 4-3 Modyfikowanie rozszerzonych instrukcji SQL, 4-10
SQLInsertPrepare, 4-3
SQLLast, 4-3 N
SQLLoadStatement, 4-3 Nazwa kolumny, 3-4
SQLManageDSN, 4-3 Nazwa Szablonu tabeli, 3-7,3-10
SQLNext, 4-3 NETINIT.EXE Program, 2-2
SQLNumRows, 4-3
SQLPrepareStatement, 4-3 O
SQLPrev, 4-3
SQLRollback, 4-3 O Podręczniku użytkownika, 1-3
SQLSelect, 4-4 Obsługa zachowanych procedur, 4-12
SQLSetParamChar, 4-4 Obsługiwane bazy danych
SQLSetParamDate, 4-4 dBASE, 2-10
SQLSetParamDateTime, 4-4 Microsoft Access, 2-12

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


I-2 Indeks

Microsoft SQL Server, 2-8 SQLHandle, 4-6


Oracle 6, 2-2 SQLStatement, 4-6
Paradox, 2-13 TableName, 4-6
Sybase, 2-8 TemplateName, 4-6
Obsługiwane typy zmiennych, 2-14 WhereExpression, 4-7
ODBC Administrator Program, 1-5 Pole zmiennej, 3-4
ODBC.INI, 1-5 Polecenia
Odczytywanie instrukcji SQL z pliku, 4-9 Szablon tabeli, 3-8
Oracle Pomoc techniczna Wonderware, 1-4
Obsługiwane typy zmiennych, 2-14 Precision, 4-6
Konfigurowanie Klienta bazy danych Windows, Przegląd Menedżera języka SQL, 3-2
2-2 Przeglądarka zmiennych, 3-4
Obsługiwane typy zmiennych, 2-3
Uruchamianie programów SQL*Net TSR i R
NETINIT.EXE, 2-2
RecordNumber, 4-6
Wymogi do nawiązania połączenia, 2-2
Rejestrowanie daty i czasu w polach bazy danych
Oracle 6, 2-2
Oracle, 2-7
Konfigurowanie nazwy źródła danych, 2-5
ResultCode, 4-6, 5-2
Oracle 7, 4-2
Oracle 7.2, 2-4
OrderByExpression, 4-5
S
Scale, 4-6
P Separatory specjalne, 3-6
Separatory, 3-6
Paradox
Składnia funkcji SQL, 4-2
Obsługiwane typy danych, 2-13, 2-14
Skrypty, 4-8
Wymogi do nawiązania połączenia, 2-13
Słowa kluczowe, A-1
Paradox, 2-13
SQL.DEF, 1-2, 3-10
ParameterNumber, 4-6
SQLAppendStatement, 4-2
ParameterType, 4-6
SQLClearParam, 4-2
ParameterValue, 4-6
SQLClearParam, 4-2
Parametry SQL, 4-5
SQLClearStatement, 4-2
parametry, 4-5
SQLCommit, 4-2
Parametry
SQLConnect, 2-2, 2-8, 4-2
BindListName, 4-5
SQLCreateTable, 4-2
ConnectionID, 4-5
SQLDelete, 4-2
ConnectionID, 4-5
SQLDisconnect, 4-2
ErrorMsg, 4-5
SQLDropTable, 4-2
FileName, 4-5
SQLEnd, 4-2
MaxLen, 4-5
SQLErrorMsg, 4-2, 5-2
OrderByExpression, 4-5
SQLExecute, 4-2
ParameterNumber, 4-6
SQLFirst, 4-2
ParameterType, 4-6
SQLGetRecord, 4-2
ParameterValue, 4-6
SQLHandle, 4-6
Precision, 4-6
SQLInsert, 3-6
RecordNumber, 4-6
SQLInsert, 4-3
ResultCode, 4-6
SQLInsert, 4-3
Scale, 4-6

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware


Indeks I-3

SQLInsertExecute, 4-3 U
SQLInsertPrepare, 4-3
SQLLast, 4-3 Usuwanie zakłóceń dla funkcji skryptowych SQL, 5-2
SQLLoadStatement, 4-3 Usuwanie zakłóceń, 5-1
SQLManageDSN, 4-3
SQLNext, 4-3 W
SQLNumRows, 4-3
SQLPrepareStatement, 4-3 WhereExpression, 4-7
SQLPrev, 4-3 Wprowadzenie do Menedżera języka SQL, 1-2
SQLRollback, 4-3 Współpraca z bazą danych Oracle 6, 2-2
SQLSelect, 4-4 Wykonywanie rozszerzonych instrukcji SQL, 4-11
SQLSetParamChar, 4-4 Wymogi do nawiązania połączenia, 1-5
SQLSetParamDate, 4-4
SQLSetParamDateTime, 4-4
Z
SQLSetParamDecimal, 4-4 Zapytania
SQLSetParamFloat, 4-4 Dynamiczne budowanie zapytań, 4-9
SQLSetParamInt, 4-4 Złożone, 4-9
SQLSetParamLong, 4-4
SQLSetParamNull, 4-4
SQLSetParamTime, 4-4
SQLSetStatement, 4-4
SQLStatement, 4-6
SQLTransact, 4-4
SQLUpdate, 3-6, 4-4
SQLUpdateCurrent, 4-4
Structured Query Language, 1-1
Sybase
Konfigurowanie Klienta, 2-8
Obsługiwane typy danych, 2-9, 2-14
Wymogi do nawiązania połączenia, 2-8
Sybase lub Microsoft SQL Server
Obsługiwane typy zmiennych, 2-14
Sybase lub Microsoft SQL Server, 2-8
tworzenie, 7-3
usuwanie, 3-9
wprowadzanie zmian, 3-9
Szablon tabeli, 3-7

T
Table Template Polecenie, 3-8
TableName, 4-6
TemplateName, 4-6
Typy danych obsługiwane przez Oracle 6, 2-3
usuwanie Listy powiązań, 3-5
usuwanie Szablonu tabeli, 3-9
usuwanie Szablonu tabeli, 3-9

Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware

You might also like