Maison > base de données > tutoriel mysql > Comment exporter les données des champs d'image de Microsoft SQL Server vers des fichiers individuels ?

Comment exporter les données des champs d'image de Microsoft SQL Server vers des fichiers individuels ?

Mary-Kate Olsen
Libérer: 2024-12-27 03:53:37
original
134 Les gens l'ont consulté

How to Export Image Field Data from Microsoft SQL Server to Individual Files?

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal