Exportation des données de champs d'image vers un fichier
Dans Microsoft SQL Server, certaines tables peuvent contenir des champs d'image qui stockent des données de fichier. Ces données de fichiers, telles que les images, peuvent devoir être extraites et enregistrées dans des fichiers individuels pour diverses raisons. Cependant, exporter ces données directement à partir d'une base de données peut s'avérer difficile.
Malheureusement, il n'existe aucun script ou fonction SQL intégré permettant l'exportation directe des données d'image vers un fichier. Pour y parvenir, vous devrez utiliser une combinaison d'instructions T-SQL et de procédures d'automatisation OLE.
Voici un script détaillé qui vous permettra d'exporter les données d'image d'une table vers des fichiers séparés :
-- 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
Ce script utilise ADO (ActiveX Data Objects) pour créer un objet flux et manipuler les données d'image en mémoire. Il enregistre ensuite les données dans un fichier à l'aide des méthodes Open, Write et SaveToFile de l'objet stream.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!