Zastosowanie w InTouch`u kontrolki ActiveX wwGenericSQLGrid do

Transkrypt

Zastosowanie w InTouch`u kontrolki ActiveX wwGenericSQLGrid do
INFORMATOR TECHNICZNY WONDERWARE
Informator Techniczny nr 74
26-10-2004
Zastosowanie w InTouch’u kontrolki ActiveX wwGenericSQLGrid do odczytywania informacji z baz danych
Kontrolka ActiveX wwGenericSQL firmy Wonderware przeznaczona jest do pobierania informacji z bazy
danych i wyświetlania ich w postaci tabelarycznej. Nie wymaga definiowania źródeł danych ODBC ani
list powiązań (Bind List).
Instalacja kontrolki wwGenericSQLGrid
W celu zainstalowania kontrolki wwGenericSQLGrid w aplikacji wizualizacyjnej InTouch, naleŜy:
1. Zainstalować na tym samym komputerze, na którym znajduje się oprogramowanie InTouch,
kontrolkę wwGenericSQLGrid.
2. Zainstalować kontrolkę wwGenericSQLGrid w środowisku edycyjnym InTouch’a, a więc w
programie WindowMaker. W tym celu naleŜy:
• Po uruchomieniu programu WindowMaker, wybrać opcję:
Special\Configure\Wizard/ActiveX Installation...
•
W wyświetlonym oknie wybrać zakładkę ActiveX Control Installation, a następnie w dolnym oknie, w którym znajdują się wszystkie zainstalowane obiekty ActiveX w systemie
operacyjnym Windows, naleŜy wskazać kontrolkę o nazwie: wwGenericSQLGrid.Grid.
ASTOR Sp. z o.o.
Dział Oprogramowania Przemysłowego
ul. Smoleńsk 29, 31-112 Kraków
tel.: 012 428-63-30
fax: 012 428-63-09
e-mail: [email protected]
http://www.astor.com.pl
•
Wybrać przycisk Install, w celu zainstalowania obiektu ActiveX w programie WindowMaker. Program wwGenericSQLGrid.Grid zniknie z dolnego okna, a pojawi się w oknie górnym, gdzie znajdują się wszystkie zainstalowane w programie WindowMaker, obiekty ActiveX. Zamknąć okno przyciskiem Close.
Osadzanie kontrolki w InTouch’u
Z okna wyboru wizardów Wizard Selection naleŜy wskazać grupę ActiveX Controls i wybrać kontrolkę
Grid (pełna nazwa wwGenericSQLGrid.Grid), a następnie umieścić ją w oknie InTouch.
2
Konfiguracja kontrolki
Po umieszczeniu kontrolki w oknie InTouch’a, naleŜy dwukrotnie na nią kliknąć, aby przejść do okna
konfiguracyjnego.
Na zakładce ControlName w polu ControlName naleŜy podać unikalną nazwę, dzięki której będzie
moŜna się do niej odwoływać w skryptach.
Pola Left, Top, Width, Height określają połoŜenie i wielkość kontrolki w oknie.
Opcja Visible określa czy kontrolka ma być widoczna na oknie lub nie.
3
Na zakładce Czcionka naleŜy wybrać czcionkę, która ma być uŜywana do prezentacji danych w
kontrolce.
Na zakładce Connection moŜna wstępnie określić parametry połączenia z bazą danych SQL przez
zdefiniowanie następujących ustawień:
• ServerName – nazwa komputera, gdzie uruchomiony jest serwer bazy danych SQL.
• DatabaseName – nazwa bazy danych, z której będą pobierane dane.
• UserName – nazwa uŜytkownika, który moŜe się dostać do bazy danych.
• Password – hasło dla logującego się do bazy danych uŜytkownika.
• SQLString – naleŜy wprowadzić polecenie w języku SQL (zapytanie SQL), jakie ma zostać wykonane przez serwer bazy danych.
4
Kontrolka połączy się z bazą danych o nazwie public na komputerze lokalnym (localhost) uŜywając
uŜytkownika o nazwie sa i hasła sa. W kontrolce wyświetlone zostaną wszystkie rekordy z tabeli
intouch.
Na zakładce Properties moŜna przypisać zmienne do odpowiednich właściwości kontrolki oraz
kierunek wymiany danych:
• Wartość zmiennej moŜe zostać przypisana do właściwości kontrolki.
• Wartość właściwości kontrolki moŜe zostać przypisana do zmiennej.
• Wartość zmiennej moŜe zostać przypisana do właściwości kontrolki lub wartość właściwości
kontrolki moŜe zostać przypisana do zmiennej.
Po wybraniu opcji Advanced moŜna filtrować pokazujące się w zakładce Properties właściwości
kontrolki.
5
Na zakładce Events moŜna przypisać skrypty ActiveX do odpowiednich zdarzeń obsługiwanych przez
kontrolkę.
Metody kontrolki dostępne z poziomu skryptów
Metoda
About()
Typ
zwracanych
danych
brak
Connect()
brak
ConnectWithString()
brak
Clear()
brak
Execute()
Opis
Wyświetla okno informacji o kontrolce.
About();
Zastosowanie po zmianie parametrów połączenia. Metoda ta
uruchamia takŜe metodę Execute by sprawdzić połączenie z
bazą. Przed uruchomieniem metody Connect naleŜy ustawić
właściwość SQLString.
Connect();
Połączenie się ze źródłem danych uŜywając ciągu znaków
ADO. Przykłady połączeń na końcu informatora technicznego.
ConnectWithString(„CONNECTION STRING”);
Metoda ta czyści zawartość kontrolki.
Clear();
Zastosowanie po zmianie właściwości SQLString. Metoda ta
wykona zapytanie i zwróci wynik zapytania do kontrolki.
Execute();
6
GetColumnNumber()
long
GetRowColumnValue()
string
GetRowNumber()
long
GetSelectedCellValue()
string
ColumnValue()
string
Disconnect()
brak
MoveFirst()
brak
MoveLast()
brak
MoveNext()
brak
MovePrevious()
brak
SQLStringAppend()
brak
Zwraca numer kolumny aktualnie zaznaczonej komórki. Gdy
nie jest zaznaczona Ŝadna komórka zwracana jest wartość -1
IntegerTag = GetColumnNumber();
Zwraca wartość komórki określonej przez numer wiersza i
kolumny.
StringTag = GetRowColumnValue(Row as Integer, Column
as Integer);
Zwraca aktualny numer wiersza.
IntegerTag = GetRowNumber();
Zwraca wartość aktualnie zaznaczonej komórki.
StringTag = GetSelectedCellValue();
Zwraca wartość z określonej kolumny w zaznaczonym wierszu.
StringTag = ColumnValue(Column as Integer);
Odłącza kontrolkę od źródła danych.
Disconnect();
Przechodzi do pierwszego wiersza w wyświetlanej bazie.
MoveFirst();
Przechodzi do ostatniego wiersza w wyświetlanej bazie.
MoveLast();
Przechodzi do następnego wiersza w wyświetlanej bazie.
MoveNext();
Przechodzi do poprzedniego wiersza w wyświetlanej bazie.
MovePrevious();
Dodaje ciąg znaków do właściwości SQLString. Metoda ta
dodaje spację na początku dodawanego ciągu znaków.
SQLStringAppend(„where IntegerTag > 10”);
Właściwości kontrolki dostępne z poziomu skryptów
Właściwość
ServerName
DatabaseName
UserName
Typ danych
string
string
string
Password
Caption
string
string
FillColor
FillStyle
Font
MaxRecords
long
SQLString
string
RowCount
EOF
long
boolean
Opis
Nazwa serwera, do którego ma się podłączyć kontrolka.
Nazwa bazy danych, do której ma się podłączyć kontrolka.
Nazwa (ID) uŜytkownika, który będzie korzystał z bazy danych.
Hasło dla uŜytkownika, który będzie korzystał z bazy danych.
Nagłówek dla kontrolki. W przypadku, gdy właściwość Caption jest pusta nagłówek dla kontrolki nie będzie widoczny.
Ustawia lub zwraca kolor wypełnienia dla obiektu.
Ustawia lub zwraca styl wypełnienia dla obiektu.
Ustawia lub zwraca czcionkę uŜytą dla kontrolki.
Ustawia lub zwraca maksymalną liczbę rekordów, jakie zostały wysłane do kontrolki. Zero oznacza, Ŝe wysłane zostały
wszystkie rekordy.
Ustawia lub zwraca aktualny ciąg znaków dla zapytania w
języku SQL.
Zwraca aktualną liczbę wierszy w kontrolce.
Zwraca status końca pliku (1 – prawda, 0 – fałsz).
7
Enabled
boolean
BOF
ConnectionString
ConnectionTimeOut
boolean
string
long
ColumnHeaders
boolean
Ustawia lub zwraca stan kontrolki jako moŜliwy lub niemoŜliwy dostęp do kontrolki (1 – dostęp moŜliwy, 0 – dostęp niemoŜliwy).
Zwraca status początku pliku (1 – prawda, 0 – fałsz).
Ustawia lub zwraca wartość ciągu znaków połączenia.
Ustawia lub zwraca maksymalny czas próby łączenia z bazą
danych.
Ustawia lub zwraca stan pokazywania nagłówków kolumn (1
– nagłówki widoczne, 0 – nagłówki niewidoczne).
Łączenie się z serwerem baz danych np. Microsoft SQL Server
Aby połączyć się z bazą danych obsługiwaną przez serwer SQL naleŜy określić następujące właściwości
kontrolki ActiveX:
•
•
•
•
•
ServerName – nazwa serwera SQL,
DatabaseName – nazwa bazy danych na serwerze SQL,
UserName – nazwa uŜytkownika,
Password – hasło dla uŜytkownika,
SQLString – polecenie w języku SQL, które ma wykonać serwer.
Następnie naleŜy uŜyć metody Connect, aby połączyć się z bazą i uzyskać wynik zapytania.
Przykładowe ustawienia połączenia z bazą danych w Microsoft SQL Server:
#Grid1.ServerName = "localhost";
#Grid1.DatabaseName = "pubs";
#Grid1.UserName = "sa";
#Grid1.Password = "sa";
#Grid1.SQLString = "select * from authors where au_fname = 'johnson'";
#Grid1.Connect();
Wynikiem działania powyŜszego przykładu jest wyświetlenie w kontrolce rekordów z bazy danych pubs
z tabeli authors znajdującej się na lokalnym komputerze (localhost) spełniających kryteria: w kolumnie
au_fname = johnson. W kontrolce zostaną wyświetlone wszystkie kolumny znajdujące się w tabeli.
Łączenie się z bazami danych poprzez metodę ConnectWithString()
Oprócz moŜliwości łączenia się z bazami danych poprzez metody ServerName, DatabaseName,
UserName i Password istnieje moŜliwość łączenia się poprzez metodę ConnectWithString. Daje to
moŜliwość łączenia się nie tylko z serwerami bazami danych, ale ze wszystkimi relacyjnymi bazami
danych np.: Microsoft Access oraz ze źródłami danych ODBC np.: Microsoft Excel, Paradox czy
Microsoft Visual FoxPro.
8
Przykłady uŜycia metody ConnectWithString() dla źródeł danych typu OLE DB.
Źródło danych
Microsoft Access
Microsoft SQL Server
Oracle
Microsoft Indexing Service
Ciąg znaków dla połączenia OLE DB
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=fizyczna ścieŜka do pliku
.mdb
Provider=SQLOLEDB.1;Data Source=ścieŜka do bazy danych na serwerze
Provider=MSDAORA.1;Data Source= ścieŜka do bazy danych na serwerze
Provider=MSIDXS.1;Data Source=ścieŜka do pliku
Połączenie z bazą Microsoft Access korzystając z OLE DB:
#Grid1.ConnectWithString(„Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\database\intouch.mdb”);
Przykłady uŜycia metody ConnectWithString() dla źródeł danych ODBC.
Sterownik (driver) źródła
danych
Microsoft Access
SQL Server
Oracle
Microsoft Excel
Microsoft Excel 97
Paradox
Text
Microsoft Visual FoxPro®
(with a database container)
Microsoft Visual FoxPro
(without a database container)
Ciąg znaków dla połączenia ODBC
Driver={Microsoft Access Driver (*.mdb)};DBQ=fizyczna ścieŜka do pliku
.mdb
DRIVER={SQL Server};SERVER=ścieŜka do serwera
DRIVER={Microsoft ODBC for Oracle};SERVER=ścieŜka do serwera
Driver={Microsoft Excel Driver (*.xls)};DBQ=fizyczna ścieŜka do pliku
.xls;DriverID=278
Driver={Microsoft Excel Driver (*.xls)};DBQ=fizyczna ścieŜka do pliku
.xls;DriverID=790
Driver={Microsoft Paradox Driver (*.db)};DBQ=fizyczna ścieŜka do pliku
.db;DriverID=26
Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=fizyczna ścieŜka do
pliku .txt
Driver={Microsoft Visual FoxPro
Driver};SourceType=DBC;SourceDb=fizyczna ścieŜka do pliku .dbc
Driver={Microsoft Visual FoxPro
Driver};SourceType=DBF;SourceDb=fizyczna ścieŜka do pliku .dbf
Połączenie z bazą Microsoft Access korzystając z ODBC:
#Grid1.ConnectWithString(„Driver={Microsoft Access Driver
(*.mdb)};DBQ=C:\database\intouch.mdb”);
9