CDN - Eksport zdjęć z SQL do plików jpg DaneBinarne.DAB_Dane
Moderator: mikey
CDN - Eksport zdjęć z SQL do plików jpg DaneBinarne.DAB_Dane
Dzień dobry. Mam zadanie wyeksportować do plików zdjęcia jpg towarów z tabeli [CDN].[DaneBinarne]. Proszę o pomoc.
Re: CDN - Eksport zdjęć z SQL do plików jpg DaneBinarne.DAB_Dane
Tutaj jest o konwertowaniu na JPG danych binarnych w C#. Może pomoże Ci.
https://stackoverflow.com/questions/879 ... in-c-sharp
https://www.codeproject.com/Articles/10 ... erver-usin
https://stackoverflow.com/questions/879 ... in-c-sharp
https://www.codeproject.com/Articles/10 ... erver-usin
Re: CDN - Eksport zdjęć z SQL do plików jpg DaneBinarne.DAB_Dane
Wystarczy poweshell (odpalony jako administrator). Znalezione w C# na stacku i lekko przerobione.
#do uzupełnienia
$SERVER = ""
$DATABASE = ""
$USER = ""
$PASSWORD = ""
$connectionString = "Data Source=$SERVER;Initial Catalog=$DATABASE;pwd=$PASSWORD;User ID=$USER;"
$sqlCommandText = "select top(3) DAB_id,DAB_Dane,DAB_Rozszerzenie from CDN.DaneBinarne where DAB_Rozszerzenie='jpg'"
# powyższe zapytanie testowo pobiera 3 pierwsze rekordy z rozszeżeniem jpg
$saveToDir = "C:\" # katalog docelowy
$connection = new-object System.Data.SqlClient.SQLConnection($connectionString)
$command = new-object System.Data.sqlclient.sqlcommand($sqlCommandText,$connection)
$connection.Open()
$bufferSize = 8192 #default value
$buffer = [array]::CreateInstance('Byte', $bufferSize)
$dr = $command.ExecuteReader()
While ($dr.Read())
{
#nazywanie plików: można oczywiście pobrać w zapytaniu nazwy, ja użyłem identyfikatora DAB_Id (zerowy element tablicy)
$fs = New-Object System.IO.FileStream($saveToDir + $dr.GetValue(0) + "." + $dr.GetValue(2)), Create, Write
$bw = New-Object System.IO.BinaryWriter $fs
$start = 0
$received = $dr.GetBytes(1, $start, $buffer, 0, $bufferSize - 1)
While ($received -gt 0)
{
$bw.Write($buffer, 0, $received)
$bw.Flush()
$start += $received
# Read next byte stream
$received = $dr.GetBytes(1, $start, $buffer, 0, $bufferSize - 1)
}
$bw.Close()
$fs.Close()
}
$fs.Dispose()
$dr.Close()
$command.Dispose()
$connection.Close()
#do uzupełnienia
$SERVER = ""
$DATABASE = ""
$USER = ""
$PASSWORD = ""
$connectionString = "Data Source=$SERVER;Initial Catalog=$DATABASE;pwd=$PASSWORD;User ID=$USER;"
$sqlCommandText = "select top(3) DAB_id,DAB_Dane,DAB_Rozszerzenie from CDN.DaneBinarne where DAB_Rozszerzenie='jpg'"
# powyższe zapytanie testowo pobiera 3 pierwsze rekordy z rozszeżeniem jpg
$saveToDir = "C:\" # katalog docelowy
$connection = new-object System.Data.SqlClient.SQLConnection($connectionString)
$command = new-object System.Data.sqlclient.sqlcommand($sqlCommandText,$connection)
$connection.Open()
$bufferSize = 8192 #default value
$buffer = [array]::CreateInstance('Byte', $bufferSize)
$dr = $command.ExecuteReader()
While ($dr.Read())
{
#nazywanie plików: można oczywiście pobrać w zapytaniu nazwy, ja użyłem identyfikatora DAB_Id (zerowy element tablicy)
$fs = New-Object System.IO.FileStream($saveToDir + $dr.GetValue(0) + "." + $dr.GetValue(2)), Create, Write
$bw = New-Object System.IO.BinaryWriter $fs
$start = 0
$received = $dr.GetBytes(1, $start, $buffer, 0, $bufferSize - 1)
While ($received -gt 0)
{
$bw.Write($buffer, 0, $received)
$bw.Flush()
$start += $received
# Read next byte stream
$received = $dr.GetBytes(1, $start, $buffer, 0, $bufferSize - 1)
}
$bw.Close()
$fs.Close()
}
$fs.Dispose()
$dr.Close()
$command.Dispose()
$connection.Close()
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW