Delphi - Linkek készítése SQL adatbázisból

forráskód letöltése
Amikor egy Web-es alkalmazást fejlesztünk, sokszor szükségünk lehet arra, hogy linkeket jelenítsünk meg. Ebben a példában olyan IntraWeb-es oldalt készítünk, amely a megjelenítendő linkeket egy SQL adatbázisból olvassa be. Ha rákattintunk egy linkre, akkor megjelenik az adott oldal. A linkek megjelenítése dinamikusan történik az adatbázis alapján.
A példaprogram működéséhez szükséges SQL adatbázis létrehozásához futtassa a mellékelt Run_script.cmd programot.
Amennyiben az SQL adatbázis eléréséhez szükséges ADOConnection1 objektum ConnectionString értéke az Ön beállításainak nem megfelelő, módosítsa annak értékét, hogy az SQL szerver WebPagesDB adatbázisa elérhetővé váljon.
A mellékelt adatbázis WebPage táblája két mezőt tartalmaz: PageName és WebPage. Mindkető VarChar típusú. A PageName-ben a link megnevezését tároljuk el, a WebPage-ben pedig a link címét.
Az SQL szerverhez a szokásos módon, ADO objektumok segítségével kapcsolódunk.
Az adatok lekérdezésére egy ADOQuery komponenst használunk a következő SQL utasítással.
SELECT * FROM WebPageDB
Ahhoz, hogy egy IntraWeb-es alkalmazásban ADO kapcsolatot tudjunk létesíteni, módosítanunk kell az alkalmazás beállításain. Az IWServerController objektum ComInitialization property-jének értékét ciNormal-ra kell állítanunuk.
Az adatkapcsolat beállítása során csak az adatbázis elérhetőségét állítsuk be, a kapcsolat ne legyen aktív. A kapcsolat aktiválását forráskódból végezzük el a szükséges helyeken.
A linkeket TIWLink komponensek segítségével jelenítjük meg. Ahhoz hogy alkalmazásunk felvegye a megfelelő unit-hivatkozásokat, helyezzünk el a FormMain-en egy TIWLink komponenst. Mentsük el az alkalmazást, majd töröljük a komponenst. Ezáltal a komponens használatához szükséges unit-okat a Delphi felveszi a listába.
A megjelenítendő IWLink komponenseket a FormMain OnCreate eseményében hozzuk létre.
Link:=TIWLink.Create(Self);
A Create metódust a Self paraméterrel kell meghívnunk. Ezáltal a komponens a FormMain-re kerül. IntraWeb esetén nem használhatjuk a Parent property-t.
A Link megjelenésének helyét a Top és Left property-ken keresztül állíthatjuk be. A Caption property-ben adhatjuk meg a komponens által megjelenítendő feliratot. Ez a WebPages tábla első mezője lesz.
Az IWLink komponensek rendelkeznek egy OnClick eseménnyel, amely akkor hajtódik végre, ha a felhasználó rákattint a komponensre.
Az összes IWClick komponens OnClick eseményét egyetlen eljárással kezeljük le (DoClick).
procedure DoClick(Sender: TObject);
Az IWLink komponens Caption értéke alapján kikeressük az adatbázisban a megadott URL címet, majd a böngészőprogramot arra irányítjuk.
if ADOQuery1.Locate('PageName',Caption,[]) then
  WebApplication.TerminateAndRedirect(ADoQuery1.Fields[1].AsString);