background image

 
 
 
 

Wonderware

 FactorySuite

 

Moduł SQL Access 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Podręcznik Użytkownika 

 
 
 

Wonderware Corporation

 

background image

Wszystkie prawa zastrzeżone. Żaden fragment niniejszej publikacji nie może być 
kopiowany, przechowywany w systemie do wyszukiwania informacji, przesyłany za pomocą 
jakichkolwiek metod: elektronicznych, mechanicznych, fotokopiowania, nagrywania, lub też 
w jakikolwiek inny sposób, bez uprzedniego otrzymania  pisemnej zgody Wonderware 
Corporation. Nie jest przyjmowana żadna odpowiedzialność prawna za naruszenie praw 
autorskich lub patentowych, w związku z korzystaniem z zawartych w niniejszej publikacji 
informacji. Dołożono wszelkich starań, aby informacje zawarte w tej publikacji były 
kompletne i rzetelne, jednakże ani wydawca ani autor nie przejmują odpowiedzialności za 
błędy i omyłkowe pominięcia. Nie jest również przyjmowana jakakolwiek odpowiedzialność 
za szkody wynikłe z korzystania z informacji podanych w niniejszym dokumencie. 

Podane informacje mogą ulec zmianie bez uprzedzenia, i nie są zobowiązujące dla 
Wonderware Corporation. Oprogramowanie opisane w niniejszej dokumentacji jest 
dostarczane wraz z licencją, oraz nie ujawnianą publicznie umową. Oprogramowanie może 
być wykorzystywane i kopiowane wyłącznie przy zachowaniu zgodności z tymi 
dokumentami. 

 2002 Wonderware Corporation.  Wszystkie prawa zastrzeżone. 
100 Technology Drive 
Irvine, CA  92618 
U.S.A 
(714) 727-3200 
http://www.wonderware.com 

Znaki handlowe 
Terminy używane w niniejszej książce, co do których było wiadomo, że są znakami 
firmowymi lub oznaczeniami usług, zostały odpowiednio wyróżnione. Wonderware 
Corporation nie może zaświadczyć o pełnej kompletności tych informacji. Korzystanie 
z tych terminów w niniejszej książce nie może być traktowane jako naruszanie praw do tych 
znaków handlowych lub oznaczeń usług. 

Wonderware jest zastrzeżonym znakiem handlowym Wonderware Corporation. 

Wonderware FactorySuite, InTouch, WindowMaker, WindowViewer, SQL Access 
Manager, Recipe Manager, SPC Pro, DBDump, DBLoad, HDMerge, HistData, Wonderware 
Logger, InControl, InTrack, InBatch, IndustrialSQL, ActiveFactory, SuiteLink i NetDDE są 
zastrzeżonymi znakami towarowymi Wonderware Corporation 

 

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

www.astor.com.pl

  

 

background image

 

Spis treści 

 
 
 
 

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

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

Rozdział 2 - Konfigurowanie i nawiązywanie  

połączenia z bazą danych ............................................................. 2-1 

Oracle 6............................................................................................................................. 2-2 

Konfigurowanie klienta.............................................................................................. 2-2 

Oracle 7.2.......................................................................................................................... 2-4 

Konfigurowanie klienta.............................................................................................. 2-4 
Zapisywanie daty i czasu do pól bazy danych Oracle ................................................ 2-7 

Sybase lub Microsoft SQL Server..................................................................................... 2-8 

Konfigurowanie klienta.............................................................................................. 2-8 
Obsługiwane typy danych .......................................................................................... 2-9 

dBase............................................................................................................................... 2-10 
Microsoft Access ............................................................................................................ 2-12 
Paradox ........................................................................................................................... 2-13 
Zestawienie typów w obsługiwanych bazach danych ..................................................... 2-14 

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

 

Przegląd modułu SQL Access........................................................................................... 3-2 

Konfigurowanie Listy powiązań ................................................................................ 3-3 

Separatory specjalne ......................................................................................................... 3-6 
Konfigurowanie Szablonu tabeli....................................................................................... 3-7 
Plik SQL.DEF................................................................................................................. 3-10 

background image

ii Spis 

treści

 

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

 

Zestawienie funkcji SQL ...................................................................................................4-2 
Parametry funkcji SQL ......................................................................................................4-5 
Korzystanie z funkcji SQL w skryptach ............................................................................4-8 
Zapytania złożone ..............................................................................................................4-8 

Dynamiczne budowanie zapytań.................................................................................4-9 
Odczytywanie instrukcji SQL z pliku .........................................................................4-9 
Określanie parametrów instrukcji SQL w czasie pracy aplikacji ..............................4-10 
Wykonywanie rozbudowanych instrukcji SQL.........................................................4-11 
Obsługa procedur zachowanych................................................................................4-12 

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

 

Funkcje do usuwania problemów.......................................................................................5-2 

Komunikaty o błędach ................................................................................................5-2 

Kody błędów dla poszczególnych baz danych...................................................................5-4 

 

Załącznik A - Zarezerwowane słowa  

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

Indeks .............................................................................................. I-1

 

 

background image

 

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 

 

background image

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. 

background image

 Menedż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 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. 

background image

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 
Informacje z menu Pomoc programu InTouch. 

 W celu wyświetlenia okna dialogowego Informacje, należy wybrać polecenie 

Informacje o z menu Pomoc

 Więcej informacji na temat narzędzi do wyświetlania informacji o licencji podano 

w podręczniku FactorySuite System Administrator's Guide

background image

 Menedż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 NameSet 

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 Setupwartoś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". 

background image

1-6 Rozdział 1 

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

 

 

background image

 

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 

 

background image

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 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. 

background image

 

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ść.LiczbaMiejscDziesiętnych. 
Wartość Szerokość określa maksymalną liczbę cyfr w kolumnie. Wartość 
LiczbaMiejscDziesiętnych określa liczbę cyfr umieszczonych z prawej strony separatora 
części dziesiętnych. Ten typ danych nie wymaga podawania długości. 

background image

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 Oraclei 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. 

background image

 

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 

Administrator źródeł danych ODBC

7. Kliknąć zakładkę System DSN

 

 

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

danych

9. Zaznaczyć sterownik Oracle & ODBC, a następnie kliknąć Zakończ. Wyświetlone 

zostanie okno dialogowe ODBC Oracle Driver Setup

10. W polu Data Source Name wpisać nazwę serwera bazy danych Oracle. 

11. Kliknąć Advanced. W oknie dialogowym ODBC Oracle Advanced Driver Setup 

wybrać ustawienia domyślne. Kliknąć Close. Wyświetlone zostanie ponownie okno 
dialogowe Administrator źródeł danych ODBC

12. Kliknąć OK

Funkcja SQLConnect() 

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

SQLConnect(ConnectionId,"<atrybut>=<wartość>;<atrybut>=<wartoś

ć>;..."); 

background image

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. 

 

background image

 

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') 

 
 

background image

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"); 

background image

 

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). 

 

background image

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. 

background image

 

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. 

 

background image

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 ze sterownika Microsoft Access, zmienne InTouch 
typu całkowitego mogą korzystać z typów short i long, a zmienne InTouch typu 
rzeczywistego z liczb z modyfikatorem Double lub Single. Długość jest obliczana 
automatycznie, w zależności od typu danych i nie należy jej podawać w czasie definiowania 
Szablonu tabeli. 

 

background image

 

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. 

 

background image

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 

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 

 

background image

 

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 

 

background image

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. 
 

 

 

 

 

background image

 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 

Specjalne wybrać SQL Access Manager, a następnie kliknąć Bind List..., lub 

rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie 
podwójnie kliknąć Bind List

 Jeżeli polecenie to wywołane zostało po raz pierwszy, wyświetlone zostanie okno 

dialogowe Select a Bind List

 

1. Kliknąć New

2. Wyświetlone zostanie okno dialogowe Bind List Configuration

 

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

wyświetlone zostanie menu z poleceniami, które można zastosować do 
zaznaczonego tekstu. 

1. W 

polu 

Bind List Name wpisać nazwę Listy powiązań. 

 Długość nazwy listy powiązań nie może przekraczać 32 znaków. Nowa lista 

powiązań umożliwi przypisanie kolumn bazy danych do zmiennych InTouch. 
Przykładowo, jeżeli tworzona jest lista demograficzna pracowników, należy wpisać 
w tym polu nazwę listy powiązań, związaną z informacjami o pracownikach. 

background image

3-4 Rozdział 3 

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

 

Uwaga Lista powiązań jest parametrem wywołania funkcji SQLInsert()SQLSelect()
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 

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. 

 

background image

 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 Specjalme wybrać SQL Access Manager, a następnie kliknąć Bind List, lub 

rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie 
podwójnie kliknąć Bind List

17. Wyświetlone zostanie okno dialogowe Select a Bind List

 

 

18. Zaznaczyć nazwę listy powiązań, a następnie kliknąć Modify. Wyświetlone zostanie 

okno dialogowe Bind List Configuration

19. Wprowadzić żądane zmiany. 

20. Kliknąć OK w celu zapisania zmian i zamknięcia okna dialogowego. 

 Więcej informacji na temat konfigurowania listy powiązań podano w punkcie 

"W celu utworzenia Listy powiązań". 

 W celu usunięcia listy powiązań: 

 

1. Z 

menu 

Special wybrać SQL Access Manager, a następnie kliknąć Bind List, lub 

rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie 
podwójnie kliknąć Bind List

2. Wyświetlone zostanie okno dialogowe Select a Bind List

 

 

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

4. Kliknąć Delete. Wyświetlone zostanie okno dialogowe żądające potwierdzenia zamiaru 

wykonania tej czynności. Kliknąć Yes w celu usunięcia zaznaczonej listy powiązań, lub 
kliknąć No w celu anulowania tej operacji. Wyświetlone zostanie ponownie okno 
dialogowe Bind List Configuration

5. Kliknąć OK w celu zamknięcia okna dialogowego. 

background image

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. 

background image

 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 

Specjalne wybrać SQL Access Manager, a następnie kliknąć Table 

Template, lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a 
następnie podwójnie kliknąć Table Template

 Jeżeli polecenie to wywołane zostało po raz pierwszy, wyświetlone zostanie okno 

dialogowe Select a Table Template

 

1. Kliknąć New

2. Wyświetlone zostanie okno dialogowe Table Template Configuration

 

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

wyświetlone zostanie menu z poleceniami, które można zastosować do 
zaznaczonego tekstu. 

1. W 

polu 

Table Template Name wpisać nazwę szablonu tabeli. 

 Długość nazwy szablonu tabeli nie może przekraczać 32 znaków. Nazwa szablonu 

tabeli jest wykorzystywana do identyfikacji struktury w bazie danych, w czasie 
korzystania z funkcji SQLCreateTable()

background image

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 

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 typeLength i Index Type do szablonu tabeli. 

10. Kliknąć Delete Item w celu usunięcia wartości wprowadzonych w polach Column 

NameColumn TypeLength i Index Type z szablonu tabeli. 

11. Kliknąć Modify Item w celu zmodyfikowania w szablonie tabeli wartości 

wprowadzonych w polach Column NameColumn TypeLength 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. 

 

background image

 Konfigurowanie 

Menadżera języka SQL 

3-9 

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

 

 W celu zmodyfikowania szablonu tabeli: 

13. Z menu Specjalne wybrać SQL Access Manager, a następnie kliknąć Table 

Template, lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a 
następnie podwójnie kliknąć Table Template

14. Wyświetlone zostanie okno dialogowe Select a Table Template

 

 

15. Zaznaczyć nazwę szablonu tabeli, a następnie kliknąć Modify. Wyświetlone zostanie 

okno dialogowe Table Template Configuration

16. Wprowadzić żądane zmiany. 

17. Kliknąć OK w celu zapisania zmian i zamknięcia okna dialogowego. 

 Więcej informacji na temat konfigurowania szablonu tabeli podano w punkcie 

"W celu utworzenia nowego szablonu tabeli". 

 W celu usunięcia szablonu tabeli: 

 

1. Z 

menu 

Special wybrać SQL Access Manager, a następnie kliknąć Table Template

lub rozwinąć grupę SQL Access Manager w Eksploratorze aplikacji, a następnie 
podwójnie kliknąć Table Template

2. Wyświetlone zostanie okno dialogowe Select a Table Template

 

 

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

4. Kliknąć Delete. Wyświetlone zostanie okno dialogowe żądające potwierdzenia zamiaru 

wykonania tej czynności. Kliknąć Yes w celu usunięcia zaznaczonego Szablonu tabeli, 
lub kliknąć No w celu anulowania tej operacji. Wyświetlone zostanie ponownie okno 
dialogowe Table Template Configuration

5. Kliknąć OK w celu zamknięcia okna dialogowego. 

background image

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
 
 

background image

 

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 

 

background image

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 ResultCodeErrorMsg 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

background image

 

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() 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()

background image

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() 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() 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. 

background image

 

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" 

background image

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 

Łańcuch znaków o zmiennej 
długości 

Decimal 3 

Liczba 

dziesiętna w kodzie 

BCD 

Integer 

4-bajtowa liczba całkowita ze 
znakiem 

Small Integer 

2-bajtowa liczba całkowita ze 
znakiem 

Float 6 

4-bajtowa 

liczba 

zmiennoprzecinkowa 

Double Precision 
Float 

7 8-bajtowa 

liczba 

zmiennoprzecinkowa 

DateTime 

26-bajtowa reprezentacja daty i 
czasu 

Date 

111 

26-bajtowa reprezentacja daty i 
czasu 

Time 

112 

26-bajtowa reprezentacja daty i 
czasu 

No Type 

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ę. 

background image

 

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 

background image

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); 

background image

 

Funkcje SQL 

4-9 

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

 

Dynamiczne budowanie zapytań 

Dynamiczne budowanie zapytań umożliwiają dwie dodatkowe funkcje: SQLSetStatement() 
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ę. 

background image

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. 

background image

 

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} 

background image

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} 
 

background image

 

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 

 

background image

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 

background image

 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 

 

background image

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. 

background image

 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. 

background image

5-6 Rozdział 5 

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

 

 

background image

 

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.

background image

A-2 Załącznik A 

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

 

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 
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 

 

 

background image

 

 

I-1 

 

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

 

Indeks 

 

 

 

Baza danych, 1-1 
BindListName, 3-10, 4-5 
Budowanie złożonych zapytań, 4-8 

ConnectionID, 4-5 
ConnectionID, 4-5 
CSV, 1-2, 3-10 

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 

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 

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 

Licencja FactorySuite, 1-4 

Przeglądarka zmiennych, 3-4 
tworzenie, 3-3 
usuwanie, 3-5 
wprowadzanie zmian, 3-5 

Lista powiązań, 3-3 

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 

Nazwa kolumny, 3-4 
Nazwa Szablonu tabeli, 3-7,3-10 
NETINIT.EXE Program, 2-2 

O Podręczniku użytkownika, 1-3 
Obsługa zachowanych procedur, 4-12 
Obsługiwane bazy danych 

dBASE, 2-10 
Microsoft Access, 2-12 

background image

I-2 Indeks 

 

 

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

 

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 

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 

RecordNumber, 4-6 
Rejestrowanie daty i czasu w polach bazy danych 

Oracle, 2-7 

ResultCode, 4-6, 5-2 

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 
SQLInsert, 3-6 
SQLInsert, 4-3 
SQLInsert, 4-3 

background image

  

Indeks  

I-3 

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

 

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 

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 

Usuwanie zakłóceń dla funkcji skryptowych SQL, 5-2 
Usuwanie zakłóceń, 5-1 

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 

Zapytania 

Dynamiczne budowanie zapytań, 4-9 
Złożone, 4-9 


Document Outline