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