Heim >Datenbank >MySQL-Tutorial >Wie exportiere ich Bildfelddaten von Microsoft SQL Server in einzelne Dateien?
Bildfelddaten in eine Datei exportieren
In Microsoft SQL Server können einige Tabellen Bildfelder enthalten, die Dateidaten speichern. Diese Dateidaten, beispielsweise Bilder, müssen aus verschiedenen Gründen möglicherweise extrahiert und in einzelnen Dateien gespeichert werden. Der direkte Export dieser Daten aus einer Datenbank kann jedoch eine Herausforderung sein.
Leider gibt es kein integriertes SQL-Skript oder eine integrierte SQL-Funktion, die den direkten Export von Bilddaten in eine Datei ermöglicht. Um dies zu erreichen, müssen Sie eine Kombination aus T-SQL-Anweisungen und OLE-Automatisierungsverfahren verwenden.
Hier ist ein detailliertes Skript, mit dem Sie Bilddaten aus einer Tabelle in separate Dateien exportieren können:
-- Write all database images (jpg) to file. --------- --------- --------- --------- --------- --------- --------- DECLARE CURSOR_ProductIds CURSOR FOR (SELECT ImgImagesId FROM ImgProductSample) DECLARE @ProductId INT; OPEN CURSOR_ProductIds FETCH NEXT FROM CURSOR_ProductIds INTO @ProductId WHILE (@@FETCH_STATUS <> -1) BEGIN DECLARE @ImageData varbinary(max); SELECT @ImageData = (SELECT convert(varbinary(max), ImageData, 1) FROM ProductImages WHERE Id = @ProductId); DECLARE @Path nvarchar(1024); SELECT @Path = 'C:\MyImages\Output'; DECLARE @Filename NVARCHAR(1024); SELECT @Filename = (SELECT ImageFilename FROM ProductImages WHERE id = @ProductId); DECLARE @FullPathToOutputFile NVARCHAR(2048); SELECT @FullPathToOutputFile = @Path + '\' + @Filename; DECLARE @ObjectToken INT EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT; EXEC sp_OASetProperty @ObjectToken, 'Type', 1; EXEC sp_OAMethod @ObjectToken, 'Open'; EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @ImageData; EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @FullPathToOutputFile, 2; EXEC sp_OAMethod @ObjectToken, 'Close'; EXEC sp_OADestroy @ObjectToken; FETCH NEXT FROM CURSOR_ProductIds INTO @ProductId END CLOSE CURSOR_ProductIds DEALLOCATE CURSOR_ProductIds -- Make sure the following statement is executed to enable file IO -- From http://msdn.microsoft.com/en-us/library/ms191188.aspx --------- --------- --------- --------- --------- --------- --------- sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO
Dieses Skript verwendet ADO (ActiveX Data Objects), um ein Stream-Objekt zu erstellen und die Bilddaten im Speicher zu bearbeiten. Anschließend werden die Daten mit den Methoden Open, Write und SaveToFile des Stream-Objekts in einer Datei gespeichert.
Das obige ist der detaillierte Inhalt vonWie exportiere ich Bildfelddaten von Microsoft SQL Server in einzelne Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!