ホームページ >データベース >mysql チュートリアル >Microsoft SQL Server から画像フィールド データを個別のファイルにエクスポートするにはどうすればよいですか?
イメージ フィールド データをファイルにエクスポートする
Microsoft SQL Server では、一部のテーブルにファイル データを格納するイメージ フィールドが含まれる場合があります。画像などのこのファイル データは、さまざまな理由から抽出して個別のファイルに保存する必要がある場合があります。ただし、このデータをデータベースから直接エクスポートするのは難しい場合があります。
残念ながら、画像データをファイルに直接エクスポートできる組み込み SQL スクリプトや関数はありません。これを実現するには、T-SQL ステートメントと OLE オートメーション プロシージャを組み合わせて使用する必要があります。
テーブルから画像データを別のファイルにエクスポートできるようにする詳細なスクリプトを次に示します。
-- 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
このスクリプトは、ADO (ActiveX Data Objects) を使用してストリーム オブジェクトを作成し、メモリ内の画像データを操作します。次に、ストリーム オブジェクトの Open、Write、および SaveToFile メソッドを使用してデータをファイルに保存します。
以上がMicrosoft SQL Server から画像フィールド データを個別のファイルにエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。