Przedstawiona tutaj metoda wykorzystując kontrolkę ActiveX umożliwia dynamiczne prezentowanie danych pochodzących z odrębnych plików. Dane źródłowe odczytywane są z ręcznie przygotowanego pliku tekstowego lub mogą pochodzić np. z arkusza kalkulacyjnego. Nieomal każdy program zarządzający danymi (np. Excel) potrafi zapisać swoje tabele do formatu tekstowego w postaci takiej, że wiersze tabeli są wierszami tekstu, a kolumny są rozdzielane dowolnym separatorem (np. spacją, średnikiem, przecinkiem). Popularnym formatem tego typu jest CSV (Comma Separated Values), czyli "wartości oddzielone przecinkami". Zatem po stworzeniu "bazodanowego" pliku cała aktualizacja danych polegać będzie jedynie na zapisaniu arkusza do pliku *.csv i wysłaniu na serwer programem FTP.
Korzyści:
Wady:
Łączenie strony WWW z bazą danych
Aby prezentować dane w tabeli w sposób dynamiczny należy na stronie WWW osadzić
odpowiednią kontrolkę ActiveX.
Wykorzystujemy do tego znacznik <OBJECT>.
<OBJECT ID="Baza" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" WIDTH=0 HEIGHT=0>
<PARAM NAME=DataURL Value="dane.txt">
<PARAM NAME=TextQualifier Value=",">
<PARAM NAME=UseHeader Value=True>
</OBJECT>
W ten sposób osadzony obiekt uzyskuje nazwę "Baza". Atrybut CLASSID
identyfikuje konkretną kontrolkę, której konfigurowanie odbywa się za pomocą
znaczników <PARAM>. Parametr DataURL określa
lokalizację pliku z danymi, w którym pola są oddzielane znakiem określonym
parametrem TextQualifier. W pliku zawierającym dane, pierwszy
wiersz może zawierać nazwy poszczególnych kolumn, o czym przesądza parametr
UseHeader.
Przykład
Utwórzmy plik o nazwie dane.txt zawierający przykładowe dane:
producent,model,typ nadwozia,liczba drzwi:INT
OPEL,AGILA,hatchback,5
OPEL,ASTRA,sedan,5
OPEL,ASTRA,sedan,4
OPEL,ASTRA,combi,5
OPEL,CORSA,hatchback,5
OPEL,FRONTERA,terenowy,5
OPEL,OMEGA,sedan,4
OPEL,OMEGA,sedan,5
OPEL,OMEGA,combi,5
OPEL,TIGRA,coupe,2
OPEL,VECTRA,sedan,4
OPEL,VECTRA,sedan,5
OPEL,VECTRA,combi,5
OPEL,ZAFIRA,van,5
OPEL,COMBO,furgon,3
W pierwszej linii plik zawiera nazwy poszczególnych kolumn bazy. Następne linie pliku to kolejne rekordy. Przyrostek INT w pierwszej linii oznacza, że pole "liczba drzwi" zawierać będzie liczby.
Prezentowanie danych w tabeli:
| producent | model | typ nadwozia | liczba drzwi |
Aby połączyć element strony internetowej z bazą danych wprowadzono atrybuty:
DATASRC oraz DATAFLD. Pierwszy kojarzy dany element
z konkretnym źródłem danych, drugi służy do wyboru pola rekordu. Atrybuty
mogą być stosowane w różnego rodzaju znacznikach, np.: DIV, SPAN,
INPUT-TEXT, TEXTAREA, IMG, BUTTON,
A, LABEL. Na przykład dla znacznika SPAN
skojarzenie z polem "model" naszej bazy może wyglądać następująco:
<SPAN DATAFLD="model" DATASRC="#Baza">
W przypadku znacznika TABLE dostępny jest tylko atrybut DATASRC,
który umożliwia skojarzenie całej tabeli ze źródłem danych.
<HTML>
<BODY>
<OBJECT ID="Baza" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" WIDTH=0 HEIGHT=0>
<PARAM NAME=DataURL Value="dane.txt">
<PARAM NAME=TextQualifier Value=",">
<PARAM NAME=UseHeader Value=True>
</OBJECT>
<TABLE BORDER=1 DATASRC="#Baza">
<THEAD BGCOLOR="white">
<TD><B>producent</B></TD>
<TD><B>model</B></TD>
<TD><B>typ nadwozia</B></TD>
<TD><B>liczba drzwi</B></TD>
</THEAD>
<TBODY>
<TR>
<TD><DIV DATAFLD="producent"></DIV></TD>
<TD><DIV DATAFLD="model"></DIV></TD>
<TD><DIV DATAFLD="typ nadwozia"></DIV></TD>
<TD><DIV DATAFLD="liczba drzwi"></DIV></TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>
Znacznik <THEAD> określa nagłówek tabeli, czyli pierwszy
jej wiersz zawierający nazwy kolumn. Część tabeli zawierająca dane jest ujęta
w parę znaczników <TBODY></TBODY>. W każdej komórce
prezentowane jest jedno z pól rekordu naszej bazy. Przeglądarka sama rozpoznaje
ile rekordów zawiera nasza baza, a tym samym ile wierszy ma mieć prezentująca
ją tabela.
W znacznikach obok DATAFLD może wystąpic także atrybut DATAFORMATAS,
który służy do określenia sposobu wyświetlania danych. W przypadku, gdy pole
zawiera znaczniki HTML standardowo nie będą one interpretowane i zostaną wyświetlone
jako zwykły tekst. Jednakże w sytuacji, gdy pole wyświetlające dane będzie
skonfigurowane w następujący sposób:
<DIV DATAFLD="producent" DATAFORMATAS="html"></DIV>
to jeżeli w polu "producent" znajdą się znaczniki HTML, zostaną one zinterpretowane. Na przykład jeżeli pole jest zdefiniowane w następujący sposób:
<B>OPEL</B>
na ekranie zostanie wyświetlony pogrubiony napis: OPEL
stronicowanie tabeli i sortowanie danych