none
Filestream auslesen und Datei speichern RRS feed

  • Frage

  • Hallo zusammen,

    ich habe in meinem Projekt eine Übernommene Tabelle in der vom Vorgänger eingelesene bzw per Filestream abgespeicherte Dokumente hinterlegt sind.

    Folgende Columns habe ich:
    ID = uniqueidentifier
    FileBLOBContent = varbinary(MAX)
    FileStreamContent = varbinary(MAX)

    In einem File unterhalb der datas (dort liegen auch die MDF und LDF Files) sind die Dokumente abgelegt, soweit weiss ich wo die Dateien liegen und das sie da sind.

    Nun möchte ich aber die Dokumente per Filestream wieder auslesen und umbenannt im TEMP-Folder ablegen, unter umbenannt meine ich das die Dokumente wieder mit ihrem ursprünglichen filenamen abgelegt werden. Über eine weitere Tabelle kann ich die ID zum DokName auslesen, dies müste ich eben über ein JOIN (?) verbinden.

    Wie aber kann ich das ganze per Filestream auslesen? Irgendwie komme ich auf keine Lösung.

    Wäre Euch für Eure Hilfe sehr dankbar.

    Viele Grüsse,
    Maximilian

    Freitag, 12. November 2010 23:27

Antworten

  • Hallo Maximilian,

    um Dir ein konkretes Beispiel geben zu können, müssen wir erst einmal wissen, "was" Du verwenden willst, um die Filestreams auszulesen, also ob Du z.B. eine .NET Applikation erstellen willst. Mit ADO.NET geht es über die SQLFileStream Klasse aus ADO.NET.

    Siehe auch:
    TechNet Wiki: How To: Export SQL Server FileStream Data with PowerShell
    MSDN Designing and Implementing FILESTREAM Storage


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Samstag, 13. November 2010 06:46
  • Hallo Maximilian,

    Olaf ist mein Name ... na ja, die paar unterschiedlichen Buchstaben stören mich dann aber auch nicht J

    Und wie der Name des Tools SSMS es schon sagt, es ist in erster Linie zur Verwaltung / Management da, nicht zur Datenerfasung / -Export. Es gibt zwar einen "SQL Server Export and Import Wizard", aber mit dem kann man auch nicht selektiv Exportieren, Filestreams werden dabei nicht unterstützt.

    Wenn Du programmieren kannst, könntest Du Dir ein Addin fürs SSMS erstellen, das den Download durchführt. Ist halt nur eine Frage des Aufwandes, wo doch ein paar Zeilen PowerShell Script oder .NET als Standalone wie eine kleine Konsolen-Anwendung es auch erledigen können.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Samstag, 13. November 2010 18:35

Alle Antworten

  • Hallo Maximilian,

    um Dir ein konkretes Beispiel geben zu können, müssen wir erst einmal wissen, "was" Du verwenden willst, um die Filestreams auszulesen, also ob Du z.B. eine .NET Applikation erstellen willst. Mit ADO.NET geht es über die SQLFileStream Klasse aus ADO.NET.

    Siehe auch:
    TechNet Wiki: How To: Export SQL Server FileStream Data with PowerShell
    MSDN Designing and Implementing FILESTREAM Storage


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Samstag, 13. November 2010 06:46
  • Hallo Oliver,

    das ist ja lustig, nachdem ich die Anfrage hier geschrieben habe, konnte ich noch ein paar Beispiele finden und da war Dein Blog dazu dabei :-)

    Das aber heisst, ich kann nicht direkt aus dem SQL Management Studio (also die Konsole) den "Export" erstellen? Dann müsste ich ein Tool schreiben um die Files wieder aus dem Filestream lesen und im Zielverzeichnis schreiben zu können?

    Mein Ziel wäre sowas auch im SQL Managament Studio machen zu können.

    Sehe ich das richtig?

    Viele Grüsse,
    Maximilian

    Samstag, 13. November 2010 08:05
  • Hallo Maximilian,

    Olaf ist mein Name ... na ja, die paar unterschiedlichen Buchstaben stören mich dann aber auch nicht J

    Und wie der Name des Tools SSMS es schon sagt, es ist in erster Linie zur Verwaltung / Management da, nicht zur Datenerfasung / -Export. Es gibt zwar einen "SQL Server Export and Import Wizard", aber mit dem kann man auch nicht selektiv Exportieren, Filestreams werden dabei nicht unterstützt.

    Wenn Du programmieren kannst, könntest Du Dir ein Addin fürs SSMS erstellen, das den Download durchführt. Ist halt nur eine Frage des Aufwandes, wo doch ein paar Zeilen PowerShell Script oder .NET als Standalone wie eine kleine Konsolen-Anwendung es auch erledigen können.


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Samstag, 13. November 2010 18:35
  • Hallo Olaf,

    sorry für den falschen Namen, tja im Gefecht... :-)

    Da das ganze quasi programmtechnisch gelöst werden muss, sind mir beim überlegen auch ein paar weitere Ideen gekommen. Ich versuche das ganze mal mit VB.net, mal schauen wie weit ich komme :-)

    Viele Grüsse,
    Maximilian

    Dienstag, 16. November 2010 21:54