none
Noch ein Problem mit Filetables: WORD-Dateien RRS feed

  • 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.

    Mittwoch, 31. August 2016 19:35

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
    Donnerstag, 1. September 2016 09:05

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>

    Mittwoch, 31. August 2016 23:44
  • 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.

    Donnerstag, 1. September 2016 08:14
  • 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
    Donnerstag, 1. September 2016 09:05
  • 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.

    Dienstag, 6. September 2016 07:07