This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_08F2E51F.4A473E20
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
Grüß Gott Martin Ehrlich,
herzlichen Dank - die Erläuterungen über die Ids waren hilfreich.
Ich habe wieder alles auf Item(x) umgestellt und damit das Problem beseitigt.
Den Grund, warum ich das einst auf die Methode ItemFromID umgestellt habe, weiss ich nicht mehr, werde ich dann merken, wenn anderswo wieder Fehlermeldungen kommen ...
Mit freundlichen Grüßen
Franz Böhmisch
boehmisch@animabit.de
http://www.animabit.de
GF Animabit Multimedia Software GmbH
Am Sonnenhang 22
D-94136 Thyrnau
Tel +49 (0)8501-8538
Fax +49 (0)8501-8537
Subject: Über IDs (13-Nov-2006 16:10)
From: martin.ehrlich@gmx.de
To: tobit.public.de.developer.api
Guten Tag.
ItemFromID() ist für die Abfrage von Items auf Basis einer anderen ID
gedacht. Dieser Wert kann an jedem Item, das von MessageItem erbt (Adress, CalendarItem, MailItem, FaxItem) über die Eigenschaft _ID abgefragt werden.
In Visual Basic kann man Sie nur via "Item.[_ID]" abfragen.
Diese ID ist übriegens die Nummer des Records in der ARCHIVE.DAT Datei. In
der Datei ist für jeden Archiveintrag ein Sendrec drin, der genau 430 Byte
lang ist und diese ID ist der Index-Wert oder auch Offset in dieser Datei.
Beispiel: Hat ein Eintrag die ID 3, dann beginnt der SendRec für diesen Eintrag an der Stelle:
Offset = (3 - 1) * 430 also in diesem Fall ab dem Offset 860.
Jetzt ist auch klar, warum die "ID" eigentlich der falsche Name für diese
Information darstellt, RecordNumber oder so wäre besser. Und damit ist auch
klar, daß diese Id nicht zuverlässig ist quasi als Primärschlüssel, denn
nach einer Bereinigung werden diese Einträge umstrukuriert und demnach auch
neu numeriert (z.B. dadurch das Einträge gelöscht wurden).
Und damit ist auch klar, warum in Ihrem Schleifendurchlauf versehentlich
schon gelöschte Einträge aufgetaucht sind, weil Sie zufällig einen Eintrag
mit einer ID abgefragt der a) vorhanden ist und b) gelöscht aber noch nicht
bereinigt ist. Daher wie in der anderen Antwort beschrieben Items bei einem
Schleifendurchlauf via AllItems..Item(n) abfragen.
-Martin Ehrlich
Diese ID ist leider kein zuverlässige ID, weil Sie nur solange zuverlässig
ist, solange das David in dem Verzeichnis keine Bereinigung durchführt.
schrieb im Newsbeitrag
news:100040004554490C00006EB4@news.tobit.com...
Hallo,
wenn ich in visual basic 6.0
Set oItems = oArchive.AllItems
n = oItems.Count
die Zahl der Emails auslese, dann erhalte ich die Zahl aller aktiven
(angezeigten) Items im Archive.
Die bereits gelöschten x Items im Archive, die physikalisch dort noch > liegen und noch nicht bereinigt sind, werden hier nicht mitgezählt
(korrekt).
Wenn ich dann eine Schleife 1 .. n in i durchlaufen lasse und mir die
einzelnen
Items auslese, dann habe ich festgestellt, dass der Befehl ItemFromID alle
Items liest, auch diejenigen x Items, die der Nutzer schon gelöscht hatte,
die im Archive aber noch nicht bereinigt wurden, so dass ein
Zuordnungsproblem entsteht und meine Schleife die ersten n Items inklusive
gelöschter Items ausliest, die nächsten x aktuelle Items aber nicht.
Ich benutze zum Zugriff auf die einzelnen Items den Befehl
Set oEmail = oArchive.ItemFromID(i - 1, 34)
Wie kann ich das Problem lösen?
------_=_NextPart_000_08F2E51F.4A473E20
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Grüß Gott Martin Ehrlich,
herzlichen Dank - die
Erläuterungen über die Ids waren hilfreich.
Erläuterungen über die Ids waren hilfreich.
Ich habe wieder alles auf
Item(x) umgestellt und damit das Problem beseitigt.
Item(x) umgestellt und damit das Problem beseitigt.
Den Grund, warum ich das
einst auf die Methode ItemFromID umgestellt habe, weiss ich nicht
mehr, werde ich dann merken, wenn anderswo wieder Fehlermeldungen kommen
.... ;-)
einst auf die Methode ItemFromID umgestellt habe, weiss ich nicht
mehr, werde ich dann merken, wenn anderswo wieder Fehlermeldungen kommen
.... ;-)
Mit freundlichen Grüßen
Franz Böhmisch
Franz Böhmisch
http://www.animabit.de
GF Animabit Multimedia Software GmbH
GF Animabit Multimedia Software GmbH
Am Sonnenhang 22
D-94136 Thyrnau
Tel +49 (0)8501-8538
Fax +49
(0)8501-8537
Tel +49 (0)8501-8538
Fax +49
(0)8501-8537
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
cellSpacing=0 cols=3 cellPadding=0 width="99%" border=0>
width=140 colSpan=2 height=22>
Original
Message
Message
color=#808080> processed by David
InfoCenter
InfoCenter
cellSpacing=0 cols=2 cellPadding=0 width="99%" border=0>
Subject:
Über IDs (13-Nov-2006 16:10)
From:
style="FONT: 8pt Tahoma">To:
ItemFromID() ist für die Abfrage von Items
auf Basis einer anderen ID
gedacht. Dieser Wert kann an jedem Item, das
von MessageItem erbt (Adress,
CalendarItem, MailItem, FaxItem) über die
Eigenschaft _ID abgefragt werden.
In Visual Basic kann man Sie nur via
"Item.[_ID]" abfragen.
Diese ID ist übriegens die Nummer des Records in
der ARCHIVE.DAT Datei. In
der Datei ist für jeden Archiveintrag ein
Sendrec drin, der genau 430 Byte
lang ist und diese ID ist der Index-Wert
oder auch Offset in dieser Datei.
Beispiel: Hat ein Eintrag die ID 3,
dann beginnt der SendRec für diesen
Eintrag an der Stelle:
Offset = (3
- 1) * 430 also in diesem Fall ab dem Offset 860.
Jetzt ist auch klar,
warum die "ID" eigentlich der falsche Name für diese
Information
darstellt, RecordNumber oder so wäre besser. Und damit ist auch
klar, daß
diese Id nicht zuverlässig ist quasi als Primärschlüssel, denn
nach einer
Bereinigung werden diese Einträge umstrukuriert und demnach auch
neu
numeriert (z.B. dadurch das Einträge gelöscht wurden).
Und damit ist
auch klar, warum in Ihrem Schleifendurchlauf versehentlich
schon gelöschte
Einträge aufgetaucht sind, weil Sie zufällig einen Eintrag
mit einer ID
abgefragt der a) vorhanden ist und b) gelöscht aber noch nicht
bereinigt
ist. Daher wie in der anderen Antwort beschrieben Items bei einem
Schleifendurchlauf via AllItems..Item(n) abfragen.
-Martin
Ehrlich
Diese ID ist leider kein zuverlässige ID, weil Sie nur
solange zuverlässig
ist, solange das David in dem Verzeichnis keine
Bereinigung durchführt.
Newsbeitrag
news:100040004554490C00006EB4@news.tobit.com...
> Hallo,
>
> wenn ich in visual basic 6.0
>
> Set oItems
= oArchive.AllItems
> n = oItems.Count
>
> die Zahl der
Emails auslese, dann erhalte ich die Zahl aller aktiven
> (angezeigten)
Items im Archive.
> Die bereits gelöschten x Items im Archive, die
physikalisch dort noch
> liegen und noch nicht bereinigt sind, werden
hier nicht mitgezählt
> (korrekt).
>
> Wenn ich dann eine
Schleife 1 .. n in i durchlaufen lasse und mir die
> einzelnen
>
Items auslese, dann habe ich festgestellt, dass der Befehl ItemFromID alle
> Items liest, auch diejenigen x Items, die der Nutzer schon gelöscht
hatte,
> die im Archive aber noch nicht bereinigt wurden, so dass ein
> Zuordnungsproblem entsteht und meine Schleife die ersten n Items
inklusive
> gelöschter Items ausliest, die nächsten x aktuelle Items
aber nicht.
>
> Ich benutze zum Zugriff auf die einzelnen Items
den Befehl
>
> Set oEmail = oArchive.ItemFromID(i - 1,
34)
>
> Wie kann ich das Problem lösen?
>
>
>
------_=_NextPart_000_08F2E51F.4A473E20--
