Es schien nicht so schwer zu finden VBA/C# Beispiele für die Arbeit mit. ACCDB Anhang Felder, die relativ leicht in Delphi übersetzen sollte. Es stellte sich jedoch heraus, dass es schwieriger als gedacht war, etwas zu finden, das a) nicht verstanden hat, was Attachment-Felder tatsächlich sind und b) tatsächlich funktioniert. Gehen Sie zum Abschnitt update weiter unten.
Zum Beispiel
accdb googeln erstellen Befestigung in vba
zahlreiche Hits einschließlich dieser
http://sourcedaddy.com/ms-access/working-with-attachment-fields.html
gibt, die Sie als Ausgangspunkt versuchen könnten. Es verwendet MS DAO-Objekte und enthält einfachen Code zum Speichern von Dateien in Anhangsfeldern und für den Zugriff darauf. Sie müßten eine Delphi-Wrapper-Einheit für die DAO-Typenbibliothek erstellen, wenn Sie nicht bereits eine haben, die IDE mit Import Type Library
Wenn Sie etwas ADO-basierte bevorzugen würden, könnten Sie einen Blick auf
nehmen
https://www.codeproject.com/Questions/843001/Handling-fields-of-Attachment-type-in-MS-Access-us
aktualisiert Siehe die Funktion OpenFirstAttachmentAsTempFile
in dem Beitrag von "Espe" (date = 2012.04.11 07.18) in diesem Thread
https://access-programmers.co.uk/forums/showthread.php?t=224112&page=2
zeigt einen scheinbar erfolgreichen Versuch, eine Datei aus einem Feld attachment
zu extrahieren (der Thread enthält auch mehrere andere Versuche, diese Funktion zu codieren).
Hinweis insbesondere auf diese Linie
Set rstChild = rstCurrent.Fields(strFieldName).Value ' the .Value for a complex field returns the underlying recordset
was impliziert, dass die Value
des Befestigungsfeldes eine Datensatz zurückkehren kann, die die angehängte Datei (en) enthält.
Vermutlich würde eine aktuelle Version der DAO-Typbibliothek in Delphi importieren lassen ein Delphi-App, das Gleiche zu tun, und dann könnte man die rstChild
Cord-Reverse-Engineering zu sehen, wie dieses Feld im Code zu füllen. Das habe ich aber noch nicht getan.
@DownVoter Wie ich schon sagte, nicht nur dv und verlassen, sagen Sie uns, was ist los mit der Frage, was ist Ihre Sicht, auch die Besucher können diese Kommentare hilfreich finden und ihre Qs beter machen. – Sami
@MartynA Sie meinen 'TBlobField (FDTable1FilesAttached)'? – Sami
Attachmentdatentyp ist eine Struktur, nicht nur ein Dateistream (er kann mehrere Dateien enthalten.). Es gibt keine offizielle Beschreibung dieser Struktur und unterliegt Änderungen, daher würde ich diesen Typ einfach vermeiden. P.S. Versuchen Sie nicht, den vorgeschlagenen Weg über den Feldzugriff zu typisieren. – Victoria