
A mellékelt példaprogram megnyitása előtt az OutlookImpFromSQL.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 futtassa 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 ImportFromSQL metódus meghívásával tudjuk importá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 importálását az ImportFromSQL 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');
FNameSpace.GetDefaultFolder(10);
A 10-es paraméter jelentése „olFolderContacts”.
Az SQL adatbázis összes rekordját be kell olvasnunk, ezt egy While ciklus keretében tesszük. A névjegyalbum egy elemének létrehozásához a ContactItem struktúrát használjuk.
FContactItem:=FOutlook.CreateItem(2);
A CreateItem 2-es paraméterének jelentése „olContactItem”.
Miután beállítottuk az FContactItem mezőit, a Save metódus meghívásával tudjuk elmenteni.
A példaprogramunk adatbázisában szereplő mezőnevek megegyeznek a ContactItem struktúra által használt nevekkel.