
A mellékelt példaprogram megnyitása előtt az OutlookExpToSQL.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Mielőtt elindítaná a példaprogramot, az SQL szerver Manager programjával futassa le az Outlook2000.sql állományban mellékelt SQL script-et. Amennyiben SQL szerverének elérési útja eltér a telepítési alapbeállítástól, úgy a script-ben írja át az elérési utakat az alábbira:
C:\Program Files\Microsoft SQL Server\MSSQL\data\
A TADOConnection objektumok ConnectionString-jét módosítania kell, saját beállításainak megfelelően.
A komponens használata
A komponens a kapcsolatot az SQL szerverrel egy TADOConnection objektumon keresztül valósítja meg. Helyezzünk el a Form-on egy ilyen objektumot, komponensünk Connection tulajdonságában állítsuk be a hivatkozást a TADOConnection komponensre. Ezáltal a kapcsolatot az ADOConnection ConnectionString-jében kell felépítenünk. A szolgáltató megadásánál a Microsoft OLE DB Provider for SQL Server-t kell megadnunk.
A TableName tulajdonságban kell megadni annak az SQL táblának a nevét, amelybe az exportálás történik. Példaprogramunkban az adatbázis neve Outlook2000, a tábla neve pedig Data.
Ha felépítettük a kapcsolatot a komponens és a szerver között, akkor az ExportToSQL metódus meghívásával tudjuk exportálni a címlista tartalmát.
A komponens elkészítése
Komponensünket a TComponent osztályból származtatjuk. Szükségünk van egy Connection tulajdonságra, hogy kapcsolódni tudjunk a szerverhez, és egy TableName-re, hogy meg tudjuk adni az adattábla nevét.
Mivel az adatokat egy adattáblába akarjuk elmenteni, célszerű létrehozni egy TADOTable objektumot (FTable) is. Ezt az objektumot használjuk fel arra, hogy metódusai segítségével elmenthessük az adatokat.
Az adatok exportálását az ExportToSQL metódus hajtja végre.
Ahogy azt az Office alkalmazások programozása során tenni szoktuk, OleVariant típusú változók segítségével kapcsolódunk az Outlookhoz.
FOutlook:=CreateOleObject('Outlook.Application');
FNameSpace:=FOutlook.GetNameSpace('MAPI');
FAddressList:=FNameSpace.AddressLists.Item('Névjegyalbum');
FContactItem:=FOutlook.CreateItem(2);
Az FContactItem struktúra írja le a névjegyalbum egy elemét. A CreateItem 2-es paraméterének jelentése „olContactItem”.
A névjegyalbum elemein egy for ciklus segítségével végig tudunk menni.
for i:=1 to FAddressList.AddressEntries.Count-1 do begin
Az AddressEntries.Count-al kérdezhetjük le az elemek maximális számát.
Az aktuális elemet az alábbi módon tudjuk lekérdezni.
FContactItem:=FOutlook.Session.GetDefaultFolder(10).Items(i);
A 10-es paraméter jelentése „olFolderContacts”.