Outlook - MSSQL

Outlook - MSSQL
2005-03-19T11:32:25+01:00
2005-03-19T16:26:38+01:00
2022-10-24T08:25:41+02:00
Papus
Sziasztok!

Irtam a delphi - levlistára is, de ide is beteszem a kérdésemet, hátha nem ugyanazok olvassák

Üdv P

Levelem

Sziasztok!

Amit meg szeretnék oldani az az, hogy egy mssql táblába (még nincs,
rajtatok múlik hogy milyen felépítésű lesz) szeretnék egy outlook-bol
kiszedett naptár tételt betenni, majd később kiszedni.

Megnéztem az outllok calendar részében 1 "rekord" egy AppointmentItem
Object, ami nálam delphi-ben egy OleVariant.
Ezt az OleVariant-ot szeretném eltárolni, igy ahogy van, nem felbontani
részekre. (Subject, Start, stb)
Hogyan tudom ezt megtenni? Milyen mező-tipus(ok)-at kell csinálnom? Egyéb
általam eszembe nem jutott buktatók, hibák stb?

Mellékelem a kis source-mat (lent), ami eléri az outlookot. Ezzel
kapcsolatban még lenne kérdésem. Ez a progi kérdezés nélkül hozzáfér a
calendár bejegyzések "header" adataihoz (subject). A body résznél már
engedélyt kell adni x percre a proginak.
Kérdésem hogyan lehet állandó engedélyt adni neki, ha lehet?

Köszi
Üdv P

ui: ha teljesen el vagyok tévedve (gondolatmenetben), szóljatok nyugodtan
.


source
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; ListView1: TListView; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} const olFolderDeletedItems = $00000003; olFolderOutbox = $00000004; olFolderSentMail = $00000005; olFolderInbox = $00000006; olFolderCalendar = $00000009; olFolderContacts = $0000000A; olFolderJournal = $0000000B; olFolderNotes = $0000000C; olFolderTasks = $0000000D; olFolderDrafts = $00000010; olPublicFoldersAllPublicFolders = $00000012; var FOutlook: OleVariant; procedure TForm1.FormCreate(Sender: TObject); begin FOutlook:=CreateOleObject('Outlook.Application'); end; procedure TForm1.Button1Click(Sender: TObject); var FNamespace, FFolder, FAptItem: OleVariant; i: integer; li:TListItem; begin FNamespace:=FOutlook.GetNamespace('MAPI'); FFolder:=FNamespace.GetDefaultFolder(olFolderCalendar); ListView1.Items.Clear; for i:=1 to FFolder.Items.Count do begin FAptItem:=FFolder.Items(i); //ITT SZERETNÉM ELMENTENI A FAptItem-et!!!!!!!!!!!!!! Memo1.Lines.Add(FAptItem.Subject); Memo1.Lines.Add(FAptItem.Start); li:=ListView1.Items.Add; li.Caption:=FAptItem.Subject; li.Caption:=FAptItem.Body; li.SubItems.Add(FAptItem.Start); li.SubItems.Add(FAptItem.End); end; end; end.
Mutasd a teljes hozzászólást!
megvan:

winapi szintre kell lemenni:

1: OleConvertOLESTREAMToIStorage fgv-el tudod egy stream-be lementeni
2: stream-et simán lehet tárolni mssql-ben, erre már itt is volt példa, keress rá.

visszafelé:
1: kiolvasod a blob-ob stream-be
2: a OleLoadFromStream fgv-el tudod visszakonvertálni...
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd