Wonderware
FactorySuite
Moduł SQL Access
Podręcznik Użytkownika
Wersja A, Grudzień 1997
Tłumaczenie: Styczeń 1999
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.
1997 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, FactoryOffice, Scout, 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) 42
8 63 00, fax (0 12) 428 63 0 1
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
Konfigurowanie klienta ................................................................................................2-4
Zapisywanie daty i czasu do pól bazy danych Oracle ...................................................2-7
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
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
Załącznik A - Zarezerwowane słowa
kluczowe języka SQL i ODBC......................................................A-1
1-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
1-2
Rozdział 1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Menadżer języka SQL
1-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 95 i Windows NT.
•
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.
1-4
Rozdział 1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
About z menu Help programu InTouch.
$ W celu wyświetlenia okna dialogowego About, należy wybrać polecenie About z menu
Help.
# Więcej informacji na temat narzędzi do wyświetlania informacji o licencji podano w
podręczniku FactorySuite System Administrator's Guide.
Menadżer języka SQL
1-5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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".
2-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
2-2
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 wykorzystywana jeżeli w ł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.
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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ść.LiczbaMiejscDzisię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.
2-4
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 ODBC Data
Source Administrator.
7. Kliknąć zakładkę System DSN:
8. Kliknąć Add. Wyświetlone zostanie okno dialogowe Create New Data Source.
9. Zaznaczyć sterownik Oracle & ODBC, a następnie kliknąć Finish. 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 ODBC Data Source Administrator.
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ś
ć>;...");
2-6
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-7
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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')
2-8
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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");
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-9
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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).
2-10
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-11
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
2-12
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 z sterownika "Microsoft Access wersja 1.1,
SIMBA.DLL (między innymi Excel 5.0, Microsoft Word 6.0, itp.), zmienne InTouch typu
całkowitego mogą korzystać z typów short i long, a zmienne InTouch typu rzeczywistego
mogą korzystać z typów singlefloat i doublefloat.
W przypadku programów korzystających ze sterownika Microsoft Access wersja 2.0,
"ODBCJT16.DLL", 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.
Konfigurowanie i nawiązywanie połączenia z bazą danych
2-13
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
2-14
Rozdział 2
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
-
2,147,483,647
do
Integer
2,147,483,647
float
15 cyfr
1.7E
-294
do
1.7E
+308
Real
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 1.1 (Simba.DLL)
Typ danych
Długość
Domyślnie
Zakres
Typ zmiennej
text
254 znaków
Message
int
Integer
Microsoft Access 2.0
(ODBCJT16.DLL)
, 7.0
(ODBCJT32.DLL)
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
number
255 znaków
Message Integer,
Real, lub Discrete
short
-32,767 do
32,767
Integer lub
Discrete
3-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
3-2
Rozdział 3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie Menadżera języka SQL
3-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 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.
# 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.
3-4
Rozdział 3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie Menadżera języka SQL
3-5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
" W celu wprowadzenia zmian na liście powiązań:
16. 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.
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.
3-6
Rozdział 3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie Menadżera języka SQL
3-7
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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 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.
# 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().
3-8
Rozdział 3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Konfigurowanie Menadżera języka SQL
3-9
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
" W celu zmodyfikowania szablonu tabeli:
13. 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.
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.
3-10
Rozdział 3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
4-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
4-2
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Funkcje SQL
4-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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().
4-4
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Funkcje SQL
4-5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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"
4-6
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
Float
7
8-bajtowa liczba
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ę.
Funkcje SQL
4-7
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
4-8
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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);
Funkcje SQL
4-9
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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ę.
4-10
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
Funkcje SQL
4-11
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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}
4-12
Rozdział 4
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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}
5-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
5-2
Rozdział 5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
Usuwanie zakłóceń
5-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
specified on the DB=
portion of the connect
string does not exist
Określona baza danych nie istnieje
-1011
No rows were
selected
Podjęto próbę wykonania polecenia
SQLNumRows(), SQLFirst(),
SQLNext(), lub SQLPrev(), bez
uprzedniego wykonania polecenia
SQLSelect().
-4149
The connection,
statement, or query
handle you provided
is not valid
Przyczyną może być niewłaściwie
zdefiniowany typ kolumny.
Przykładowo, jeżeli w pliku dBASE
zdefiniować szablon tabeli z kolumną
typu character, a nie typu char,
zasygnalizowany zostanie błąd
5-4
Rozdział 5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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
connected
Przed uruchomieniem Windows, oraz
przed korzystaniem z InTouch SQL Access
należy uruchomić program SQL *NET
TSR, odpowiedni dla systemu sieciowego.
ORA-6435 - NetBIOS: ORA-6435 -
NetBIOS: Unable to add local name to
name table
Musi być uruchomiony system sieciowy
(Novell, LAN Manager, itp.)
ORA-09301 -
Local kernel only
supported in standard mode
W łańcuchu znaków do ustanowienia
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.
Usuwanie zakłóceń
5-5
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
Sybase lub Microsoft SQL Server
Komunikat
Rozwiązanie
You cannot have more than one
statement active at a time
Próba wykonania polecenia SQL po
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 to
process the command
Spróbować ponownie uruchomić stację
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
provided is not valid
Więcej informacji na ten temat podano w
programie Wonderware Logger . Instrukcja
SQL może zawierać błąd w składni.
A-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
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.
ABSOLUTE
ADA
ADD
ALL
ALLOCATE
ALTER
AND
ANY
ARE
AS
ASC
ASSERTION
AT
AUTHORIZATION
AVG
BEGIN
BETWEEN
BIT
BIT_LENGTH
BY
CASCADE
CASCADED
CASE
CAST
CATALOG
CHAR
CHAR_LENGTH
CHARACTER
CHARACTER_LENGTH
CHECK
CLOSE COALESCE
COBOL
COLLATE
COLLATION
COLUMN
COMMIT
CONNECT
CONNECTION
CONSTRAINT
CONSTRAINTS
CONTINUE
CONVERT
CORRESPONDING
COUNT
CREATE
CURRENT
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURSOR
DATE
DAY
DEALLOCATE
DEC
DECIMAL
DECLARE
DEFERRABLE
DEFERRED
DELETE
DESC
DESCRIBE
DESCRIPTOR
DIAGNOSTICS
DICTIONARY
DISCONNECT
DISPLACEMENT
DISTINCT
DOMAIN
DOUBLE
DROP
ELSE
END
ESCAPE
EXCEPT
EXCEPTION
EXEC
EXECUTE
EXISTS
EXTERNAL
EXTRACT
FALSE
FETCH
FIRST
FLOAT
FOR FOREIGN
FORTRAN
FOUND
FROM FULL
GET
GLOBAL
GO
GOTO
GRANT
GROUP
HAVING
HOUR
IDENTITY
IGNORE
IMMEDIATE
IN
INCLUDE
INDEX
INDICATOR
INITIALLY
INNER
INPUT
INSENSITIVE
INSERT
A-2
Załącznik A
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
INTEGER
INTERSECT
INTERVAL
INTO
IS
ISOLATION
JOIN
KEY
LANGUAGE
LAST
LEFT
LEVEL
LIKE
LOCAL
LOWER
MATCH
MAX
MIN
MINUTE
MODULE
MONTH
MUMPS
NAMES
NATIONAL
NCHAR
NEXT
NONE
NOT
NULL
NULLIF
NUMERIC
OCTET_LENGTH
OF
OFF
ON
ONLY
OPEN
OPTION
OR
ORDER
OUTER
OUTPUT
OVERLAPS
PARTIAL
PASCAL
PLI
POSITION
PRECISION
PREPARE
PRESERVE
PRIMARY
PRIOR
PRIVILEGES
PROCEDURE
PUBLIC
RESTRICT
REVOKE
RIGHT
ROLLBACK
ROWS
SCHEMA
SCROLL
SECOND
SECTION
SELECT
SEQUENCE
SET
SIZE
SMALLINT
SOME
SQL
SQLCA
SQLCODE
SQLERROR
SQLSTATE
SQLWARNING
SUBSTRING
SUM
SYSTEM
TABLE
TEMPORARY
THEN
TIME
TIMESTAMP
TIMEZONE_HOUR
TIMEZONE_MINU
TO
TRANSACTION
TRANSLATE
TRANSLATION
TRUE
UNION
UNIQUE
UNKNOWN
UPDATE
UPPER
USAGE
USER
USING
VALUE
VALUES
VARCHAR
VARING
VIEW
WHEN
WHENEVER
WHERE
WITH
WORK
YEAR
I-1
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
Indeks
B
Baza danych, 1-1
BindListName, 3-10, 4-5
Budowanie złożonych zapytań, 4-8
C
ConnectionID, 4-5
ConnectionID, 4-5
CSV, 1-2, 3-10
D
dBASE
Obsługiwane typy danych, 2-11, 2-14
Wymogi do nawiązania połączenia, 2-10
dBASE, 2-10
DBNMP3.DLL, 2-8
Delim Funkcja, 3--6
Dokumentacja elektroniczna, 1-3
Dynamiczne budowanie zapytań, 4-9
E
ErrorMsg, 4-5
F
FileName, 4-5
Funkcje
SQLAppendStatement, 4-2
SQLClearParam, 4-2
SQLClearParam, 4-2
SQLClearStatement, 4-2
SQLCommit, 4-2
SQLConnect, 2-2, 2-8, 4-2
SQLCreateTable, 4-2
SQLDelete, 4-2
SQLDisconnect, 4-2
SQLDropTable, 4-2
SQLEnd, 4-2
SQLErrorMsg, 4-2
SQLExecute, 4-2
SQLFirst, 4-2
SQLGetRecord, 4-2
SQLInsert, 4-3
SQLInsertEnd, 4-3
SQLInsertExecute, 4-3
SQLInsertPrepare, 4-3
SQLLast, 4-3
SQLLoadStatement, 4-3
SQLManageDSN, 4-3
SQLNext, 4-3
SQLNumRows, 4-3
SQLPrepareStatement, 4-3
SQLPrev, 4-3
SQLRollback, 4-3
SQLSelect, 4-4
SQLSetParamChar, 4-4
SQLSetParamDate, 4-4
SQLSetParamDateTime, 4-4
SQLSetParamDecimal, 4-4
SQLSetParamFloat, 4-4
SQLSetParamInt, 4-4
SQLSetParamLong, 4-4
SQLSetParamNull, 4-4
SQLSetParamTime, 4-4
SQLSetStatement, 4-4
SQLTransact, 4-4
SQLUpdate, 4-4
SQLUpdateCurrent, 4-4
Funkcje SQL, 4-1
K
Kody błędów dla poszczególnych baz danych
dBASE, 5-5
Oracle, 5-4
Sybase lub Microsoft SQL Server, 5-5
Kody komunikatów o błędach, 5-2
Kompatybilność z ODBC, 1-5
Konfigurowanie i nawiązywanie połączenia z baza
danych, 2-1
Konfigurowanie listy powiązań, 3-3
Konfigurowanie Menedżera języka SQL, 3-1
Konfigurowanie szablonu tabeli, 3-7
Korzystanie z funkcji SQL w programie InTouch, 4-8
L
Licencja FactorySuite, 1-4
Przeglądarka zmiennych, 3-4
tworzenie, 3-3
usuwanie, 3-5
wprowadzanie zmian, 3-5
Lista powiązań, 3-3
M
MaxLen, 4-5
Microsoft Access
Obsługiwane typy danych, 2-12, 2-14
Wymogi do nawiązania połączenia, 2-12
Microsoft Access, 2-12
Microsoft SQL Server
Konfigurowanie Klienta, 2-8
Obsługiwane typy zmiennych, 2-9
Wymogi do nawiązania połączenia, 2-8
modyfikowanie Listy powiązań, 3-5
Modyfikowanie rozszerzonych instrukcji SQL, 4-10
N
Nazwa kolumny, 3-4
Nazwa Szablonu tabeli, 3-7,3-10
NETINIT.EXE Program, 2-2
O
O Podręczniku użytkownika, 1-3
Obsługa zachowanych procedur, 4-12
Obsługiwane bazy danych
I-2
Indeks
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
dBASE, 2-10
Microsoft Access, 2-12
Microsoft SQL Server, 2-8
Oracle 6, 2-2
Paradox, 2-13
Sybase, 2-8
Obsługiwane typy zmiennych, 2-14
ODBC Administrator Program, 1-5
ODBC.INI, 1-5
Odczytywanie instrukcji SQL z pliku, 4-9
Oracle
Obsługiwane typy zmiennych, 2-14
Konfigurowanie Klienta bazy danych Windows,
2-2
Obsługiwane typy zmiennych, 2-3
Uruchamianie programów SQL*Net TSR i
NETINIT.EXE, 2-2
Wymogi do nawiązania połączenia, 2-2
Oracle 6, 2-2
Konfigurowanie nazwy źródła danych, 2-5
Oracle 7, 4-2
Oracle 7.2, 2-4
OrderByExpression, 4-5
P
Paradox
Obsługiwane typy danych, 2-13, 2-14
Wymogi do nawiązania połączenia, 2-13
Paradox, 2-13
ParameterNumber, 4-6
ParameterType, 4-6
ParameterValue, 4-6
Parametry SQL, 4-5
parametry, 4-5
Parametry
BindListName, 4-5
ConnectionID, 4-5
ConnectionID, 4-5
ErrorMsg, 4-5
FileName, 4-5
MaxLen, 4-5
OrderByExpression, 4-5
ParameterNumber, 4-6
ParameterType, 4-6
ParameterValue, 4-6
Precision, 4-6
RecordNumber, 4-6
ResultCode, 4-6
Scale, 4-6
SQLHandle, 4-6
SQLStatement, 4-6
TableName, 4-6
TemplateName, 4-6
WhereExpression, 4-7
Pole zmiennej, 3-4
Polecenia
Szablon tabeli, 3-8
Pomoc techniczna Wonderware, 1-4
Precision, 4-6
Przegląd Menedżera języka SQL, 3-2
Przeglądarka zmiennych, 3-4
R
RecordNumber, 4-6
Rejestrowanie daty i czasu w polach bazy danych
S
Scale, 4-6
Separatory specjalne, 3-6
Separatory, 3-6
Składnia funkcji SQL, 4-2
Skrypty, 4-8
Słowa kluczowe, A-1
SQL.DEF, 1-2, 3-10
SQLAppendStatement, 4-2
SQLClearParam, 4-2
SQLClearParam, 4-2
SQLClearStatement, 4-2
SQLCommit, 4-2
SQLConnect, 2-2, 2-8, 4-2
SQLCreateTable, 4-2
SQLDelete, 4-2
SQLDisconnect, 4-2
SQLDropTable, 4-2
SQLEnd, 4-2
SQLErrorMsg, 4-2, 5-2
SQLExecute, 4-2
SQLFirst, 4-2
SQLGetRecord, 4-2
SQLHandle, 4-6
Indeks
I-3
Astor Sp. z o.o. – Autoryzowany Dystrybutor Wonderware
SQLInsert, 3-6
SQLInsert, 4-3
SQLInsert, 4-3
SQLInsertExecute, 4-3
SQLInsertPrepare, 4-3
SQLLast, 4-3
SQLLoadStatement, 4-3
SQLManageDSN, 4-3
SQLNext, 4-3
SQLNumRows, 4-3
SQLPrepareStatement, 4-3
SQLPrev, 4-3
SQLRollback, 4-3
SQLSelect, 4-4
SQLSetParamChar, 4-4
SQLSetParamDate, 4-4
SQLSetParamDateTime, 4-4
SQLSetParamDecimal, 4-4
SQLSetParamFloat, 4-4
SQLSetParamInt, 4-4
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
U
Usuwanie zakłóceń dla funkcji skryptowych SQL, 5-2
Usuwanie zakłóceń, 5-1
W
WhereExpression, 4-7
Wprowadzenie do Menedżera języka SQL, 1-2
Współpraca z bazą danych Oracle 6, 2-2
Wykonywanie rozszerzonych instrukcji SQL, 4-11
Wymogi do nawiązania połączenia, 1-5
Z
Zapytania