
ObjectHTML
Wstęp - geneza, zastosowania |
Instrukcja ta służy do wyciągania danych z bazy danych i wklejania ich na stronę HTML. Wyciąganie danych polega na wykonaniu zapytania SQL i załadowaniu wyniku. Wynik wklejany jest na stronę rekord po rekordzie. Dla każdego rekordu wykonywane są instrukcje wewnątrz bloku do-endq, przed wykonaniem instrukcji tworzone są zmienne lokalne które umożliwiają dostęp do poszczególny ch pól rekordu. Umożliwia to wklejanie wyniku zapytania na stronę. Składnia instrukcji jest następująca:query type,name,user,password,querytext do [instrukcje] endq
Definiowane zmienne do użycia wewnątrz instrukcji query.
Przykłady: /* Deklaracja zmiennych pomocniczych */ decl i, q, c /* Zdefiniowanie tekstu zapytania SQL */ set q "select * from DEPT" /* Wykonanie zapytania na bazie danych "tempdb". Blok instrukcji do-endq jest skonstruowany na tyle ogólne, że potrafi wyświetlić wyniki dowolnego zapytania. Wynik nie jest formatowany znacznikami HTML w celu zwiększenia czytelności przykładu. */ query mysql,tempdb,root,"",$q do /* Wydrukowanie nazw kolumn. Oczywiście nazwy należy wydrukować tylko przed pierwszym rekordem. */ if $record_index n== 1 then for i in $column_names do $i; " " endf nl endif /* Wydrukowanie wartości kolumn z pojedynczego rekordu wyniku zapytania. */ for i in $column_names do /* Instrukcja $i zwróci nazwę kolumny, ponowne zastosowanie znaku dolara spowoduje pobranie wartości ze zmiennej o nazwie kolumny. */ $$i; " " endf nl endq /* Nowe zapytanie SQL */ set q "select * from USERS" /* Poniższy przykład ilustruje wykorzystanie pozostałych zmiennych instrukcji query */ query postgres,db1,root,"",$q do /* wydrukowanie nazw kolumn */ if $record_index n== 1 then set i 1 while $i n<= $num_fields do set c column_,$i $$c ; " " incr i 1 endw nl endif /* Wydrukowanie wartości kolumn z aktualnego rekordu */ set i 1 while $i n<= $num_fields do $$i ; " " incr i 1 endw nl /* Po ostatnim rekordzie też można coś wydrukować. */ if $record_index n== $num_rows then "To był ostatni rekord" ; nl endif endq |