<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server?</title><link>http://blogs.technet.com/b/austria/archive/2010/02/25/wie-bekomme-ich-bin-re-dokumente-blobs-aus-dem-sql-server.aspx</link><description>Das Leben als Datenbank-Administrator steckt voller Überraschungen. Mal gehören Indizies erstellt oder neu aufgebaut, Volltextkataloge rebuildet, Datenbanken gebackupt, gewartet, restored und natürlich ist ein DB-Admin Ansprechpartner für alle weiteren</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Wie bekomme ich binäre Dokumente (BLOBs) aus dem SQL Server?</title><link>http://blogs.technet.com/b/austria/archive/2010/02/25/wie-bekomme-ich-bin-re-dokumente-blobs-aus-dem-sql-server.aspx#3365432</link><pubDate>Tue, 02 Nov 2010 12:31:31 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3365432</guid><dc:creator>Jan Hardt</dc:creator><description>&lt;p&gt;Hallo,&lt;/p&gt;
&lt;p&gt;danke für den tollen Ansatz! Wahrscheinlich liegt es wie so oft an einem Details.&lt;/p&gt;
&lt;p&gt;Das Script schreibt mir in das &amp;nbsp;SQL Ausgabefenster alle Namen der Dateien, aber leider nichts auf die Festplatte. Was mache ich falsch. Die ID habe ich raus genommen da die nicht als Integer vorliegt.&lt;/p&gt;
&lt;p&gt;Hier mein Script und wie es aufgerufen wird?&lt;/p&gt;
&lt;p&gt;Ein Tipp wäre super, da ich mit OLE keine Erfahrung habe und schon Stunden damit verbringe ohne weiter zu kommen.&lt;/p&gt;
&lt;p&gt;Ganz herzlichen Dank für jede Hilfe im voraus&lt;/p&gt;
&lt;p&gt;Jan Hardt&lt;/p&gt;
&lt;p&gt;PS: eMail Jan.Hardt@web.de&lt;/p&gt;
&lt;p&gt;set ANSI_NULLS ON&lt;/p&gt;
&lt;p&gt;set QUOTED_IDENTIFIER ON&lt;/p&gt;
&lt;p&gt;go&lt;/p&gt;
&lt;p&gt;ALTER PROC [dbo].[save2file]&lt;/p&gt;
&lt;p&gt;AS&lt;/p&gt;
&lt;p&gt;-- original script &lt;a rel="nofollow" target="_new" href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=101754"&gt;www.sqlteam.com/.../topic.asp&lt;/a&gt; by &amp;quot;Peso&amp;quot;&lt;/p&gt;
&lt;p&gt;-- modified script &lt;a rel="nofollow" target="_new" href="http://www.atwork.at/download/save2file.txt"&gt;www.atwork.at/.../save2file.txt&lt;/a&gt; by Toni Pohl&lt;/p&gt;
&lt;p&gt;declare @ObjectToken INT&lt;/p&gt;
&lt;p&gt;declare @TheImage VARBINARY(MAX)&lt;/p&gt;
&lt;p&gt;declare @Save2File VARCHAR(255)&lt;/p&gt;
&lt;p&gt;declare @FileName varchar(255)&lt;/p&gt;
&lt;p&gt;DECLARE TheCursor CURSOR FAST_FORWARD FOR &lt;/p&gt;
&lt;p&gt;SELECT &amp;nbsp;rtrim(strSourceFilename), Blob -- OR: FIL_Thumbnail &lt;/p&gt;
&lt;p&gt;FROM dbo.BLOB &lt;/p&gt;
&lt;p&gt;OPEN TheCursor &lt;/p&gt;
&lt;p&gt;FETCH NEXT FROM TheCursor INTO @FileName, @TheImage&lt;/p&gt;
&lt;p&gt;WHILE @@FETCH_STATUS = 0&lt;/p&gt;
&lt;p&gt;	BEGIN&lt;/p&gt;
&lt;p&gt;		-- SET @Helper = right(&amp;#39;00000&amp;#39; + rtrim(convert(varchar, @id)), 5)&lt;/p&gt;
&lt;p&gt;		-- Pfad anpassen!&lt;/p&gt;
&lt;p&gt;		SET @Save2File = &amp;#39;C:\Temp\&amp;#39; + &amp;#39;_&amp;#39; + @FileName -- @Helper + &lt;/p&gt;
&lt;p&gt;		PRINT @Save2File&lt;/p&gt;
&lt;p&gt;		EXEC sp_OACreate &amp;#39;ADODB.Stream&amp;#39;, @ObjectToken OUTPUT -- Creates an instance of an OLE object.&lt;/p&gt;
&lt;p&gt;		EXEC sp_OASetProperty @ObjectToken, &amp;#39;Type&amp;#39;, 1 -- Sets a property of an OLE object to a new value.&lt;/p&gt;
&lt;p&gt;		EXEC sp_OAMethod @ObjectToken, &amp;#39;Open&amp;#39; -- Calls a method of an OLE object.&lt;/p&gt;
&lt;p&gt;		EXEC sp_OAMethod @ObjectToken, &amp;#39;Write&amp;#39;, NULL, @TheImage&lt;/p&gt;
&lt;p&gt;		EXEC sp_OAMethod @ObjectToken, &amp;#39;SaveToFile&amp;#39;, NULL, @Save2File, 2&lt;/p&gt;
&lt;p&gt;		EXEC sp_OAMethod @ObjectToken, &amp;#39;Close&amp;#39;&lt;/p&gt;
&lt;p&gt;		EXEC sp_OADestroy @ObjectToken	-- Destroys a created OLE object.&lt;/p&gt;
&lt;p&gt;		FETCH NEXT FROM TheCursor INTO @FileName, @TheImage&lt;/p&gt;
&lt;p&gt;	END &lt;/p&gt;
&lt;p&gt;CLOSE TheCursor&lt;/p&gt;
&lt;p&gt;DEALLOCATE TheCursor&lt;/p&gt;
&lt;p&gt;Aufruf mit &lt;/p&gt;
&lt;p&gt;use ff	&lt;/p&gt;
&lt;p&gt;exec save2file&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3365432" width="1" height="1"&gt;</description></item></channel></rss>