Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengeksport Data Medan Imej dari Pelayan Microsoft SQL ke Fail Individu?

Bagaimana untuk Mengeksport Data Medan Imej dari Pelayan Microsoft SQL ke Fail Individu?

Mary-Kate Olsen
Lepaskan: 2024-12-27 03:53:37
asal
136 orang telah melayarinya

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

Mengeksport Data Medan Imej ke Fail

Dalam Microsoft SQL Server, sesetengah jadual mungkin mengandungi medan imej yang menyimpan data fail. Data fail ini, seperti imej, mungkin perlu diekstrak dan disimpan ke fail individu atas pelbagai sebab. Walau bagaimanapun, mengeksport data ini terus daripada pangkalan data boleh menjadi mencabar.

Malangnya, tiada skrip atau fungsi SQL terbina dalam yang membenarkan eksport terus data imej ke fail. Untuk mencapai matlamat ini, anda perlu menggunakan gabungan pernyataan T-SQL dan Prosedur Automasi OLE.

Berikut ialah skrip terperinci yang membolehkan anda mengeksport data imej daripada jadual ke dalam fail berasingan:

-- 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
Salin selepas log masuk

Skrip ini menggunakan ADO (ActiveX Data Objects) untuk mencipta objek strim dan memanipulasi data imej dalam ingatan. Ia kemudian menyimpan data ke fail menggunakan kaedah Open, Write dan SaveToFile bagi objek strim.

Atas ialah kandungan terperinci Bagaimana untuk Mengeksport Data Medan Imej dari Pelayan Microsoft SQL ke Fail Individu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan