Mit SQL Server 2008 habe ich eine gespeicherte Prozedur, die einen VarBinary-Parameter akzeptiert. Während der Parameter im Speicher ist, möchte ich es in das Verzeichnis% temp% des SQL Servers schreiben.TSQL im Speicher VarBinary in Textdatei?
Wie kann ich aus dem Speicher Blob (es kam als ein Byte [] aus einer C# -App) in die Textdatei? Das Blob ist in keiner plattenresistenten Tabelle vorhanden.
Ich lehne mich in Richtung TSQL sproc Aufruf einer CLR gespeicherte Prozedur, die bisher (meistens) wie folgt aussieht.
Problem # 1 ist, dass ich denke, dass die inputBytes [] bei 8k Eingabegröße stecken bleibt.
Problem # 2 ist, dass ich nicht mit etwas anständigen SQL kommen kann, die einen varbinary Wert als Parameter übergibt, so dass ich dies in Management Studio oder VS DB Unit Test testen kann.
public static void FileWrite(string inputName , byte[] inputBytes)
using (FileStream fileStream = new
FileStream(Environment.GetEnvironmentVariable("TEMP") + "\\" + inputName,
FileMode.OpenOrCreate, FileAccess.Write))
{
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
binaryWriter.Write(inputBytes);
}
}
Danke.
Danke, während du mich auf einen CLR-Sproc zeigst, ging ich selbst diesen Weg hinunter. Ich kann nicht herausfinden, wie man eine unbegrenzte Größe VarBinary (Max) nimmt und es an den CLR-Sproc als ein Byte [] sendet, damit ich es schreiben kann .... Zeit, meinen ursprünglichen Post zu redigieren. Vielen Dank. – Snowy
Dana, das ist großartig. Der Schlüssel war der SqlBytes-Typ. Vielen Dank! – Snowy
Kein Problem. Viel Glück, es zur Arbeit zu bringen :) – dana