Professional Documents
Culture Documents
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.
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
R O Z D Z I A Ł 1
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
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.
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.
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.
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.
R O Z D Z I A Ł 2
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
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.
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.
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=".
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.
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) 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 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')
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
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");
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).
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.
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");
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");
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");
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
R O Z D Z I A Ł 3
Spis treści
Przegląd modułu SQL Access
Separatory specjalne
Konfigurowanie szablonu tabeli
Plik SQL.DEF
1. Kliknąć New.
2. Wyświetlone zostanie okno dialogowe Bind List Configuration:
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:
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.
1. Kliknąć New.
2. Wyświetlone zostanie okno dialogowe Table Template Configuration:
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:
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
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
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().
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.
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
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);
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.
Przykład
ResultCode = SQLLoadStatement ( ConnectionID,
"c:\myappdir\lotquery.sql" );
W tym momencie można wywołać instrukcję.
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.
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}
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.
R O Z D Z I A Ł 5
Usuwanie problemów
Spis treści
Funkcje do usuwania problemów
Kody błędów dla poszczególnych baz danych
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
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
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.
Z A Ł Ą C Z N I K A
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 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
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
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