Benutzer mit den meisten Antworten
Noch ein Problem mit Filetables: WORD-Dateien

Frage
-
Mit PDF-Dateien im Filetable als datensatzbezogenes ARchiv komme ich ganz gut zurecht.
Anders mit WORD-Dateien: Anscheinend legt Word beim Öffnen einer Datei gleich eine neue an und löscht dann die alte.
dIes führt mutmaßlich zu einer neuen stream_id und somit ist der Bezug zu einem Datensatz verloren. Wie kann man dies umgehen? aka wie bekomme ich den neuen stream_id um ihn wieder im zugehörigen Datensatz zu speichern.
Antworten
-
Das Beispiel ist schon etwas älter aber ich benutze es immer noch gern
http://www.eidias.com/Blog/2013/12/4/using-sql-filetable-in-entity-framework
Wenn du auf den Ordner kein Zugriff gewährst und nur eine Kopie raus gibt, kann ohne dein wissen niemals eine neue stream-id entstehen.
Nach der Dokumentation zu Filetable ist dein vorgehen richtig aber wie du merkst läut es nicht immer glatt
Gruß
Thomas
Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm
- Bearbeitet Thomas Wycichowski Donnerstag, 1. September 2016 09:40
- Als Antwort markiert NicoNi Dienstag, 6. September 2016 07:07
Alle Antworten
-
Hallo,
es kann natürlich sein das ich mir irre aber für mich ist das kein gutes vorgehen. In dem von SQL Verwalteten Ordner sollte nur deine Programme Dateien ablegen oder raus geben. Direkte Manipulationen sollten nicht stattfinden.
Die Filetables sind dafür da und nicht mehr byte arrays oä. in die DB zu speichern.
Demnach solltest du dein Konzept nochmal überdenken.
Gruß
Thomas
<a href="https://www.microsoft.com/store/apps/9nblggh5fzpm">App für UWP Entwickler UWP Segoe MDL2 Assets</a>
-
Als Workaround öffne ich die Dateien konventionell über den Dateinamen indem mein Programm WORD-VBA benutzt.
Ich muss halt zusätzlich eine Tabelle mit den Dateinamen pflegen während die PDFs über die stream-id verwaltet werden.
Aber letztendlich wird auch dort das PDF über den Dateinamen angezeigt.
-
Das Beispiel ist schon etwas älter aber ich benutze es immer noch gern
http://www.eidias.com/Blog/2013/12/4/using-sql-filetable-in-entity-framework
Wenn du auf den Ordner kein Zugriff gewährst und nur eine Kopie raus gibt, kann ohne dein wissen niemals eine neue stream-id entstehen.
Nach der Dokumentation zu Filetable ist dein vorgehen richtig aber wie du merkst läut es nicht immer glatt
Gruß
Thomas
Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm
- Bearbeitet Thomas Wycichowski Donnerstag, 1. September 2016 09:40
- Als Antwort markiert NicoNi Dienstag, 6. September 2016 07:07
-
Okay, es scheint keine einfache Lösung zu geben.
Die stream_id wird jeweils neu erstelt wenn die Datei neu erstellt wird. Für statische Dateien, z.B. PDFs oder Bmps ist das generell unproblematisch.
WORD scheint ein besonderes Vorgehen zu wählen, indem beim Öffnen einer Datei generell eine neue Datei erstellt wird, welche dann beim Speichern gegen die urprüngliche getauscht wird - und das beschert mir eine neue stream_id.
Zumindest für änderbare Dateien (wie WORD) werde ich also auf die Vorzüge der filetable verzichten müssen und althergebracht einfach über den Namen der Datei gehen müssen.