Я пытаюсь экспортировать изображения с SQL-сервера с помощью bcr, мне также интересно, как это сделать, поэтому я решил попробовать сам. Так что мой вопрос, как я могу экспортировать изображения из MSSQL успешно, и то, что я до сих пор описан здесь:BCR экспортирует изображения с сервера MSSQL
В командной строке я создал файл formatfile-n.fmt
и размещался на E:
диск, потому что я искал в Интернете много и Я видел, что необходимо отредактировать этот файл, чтобы установить его значение SQLBINARY от 8 до 0. Читайте, что в this post (мы говорим об изображениях, поэтому нам нужно редактировать SQLBINARY).
Я выполнил команду (ниже) и экспортировал изображения в нужное место, все изображения есть, но они не имеют размера!
Вот мой полный код, когда изображение не имеет размера:
EXEC sp_configure 'show advanced options', 1
GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO
EXEC master..xp_cmdshell 'mkdir C:\ImagesFromSql'
DECLARE @ID as int DECLARE @SQL as varchar(4000)
DECLARE csr CURSOR FOR SELECT BrojIskaznice FROM [Savez].[dbo].[Igraci]
OPEN csr
FETCH NEXT FROM csr INTO @ID
WHILE @@FETCH_STATUS = 0 BEGIN
SET @SQL = 'BCP "SELECT Fotografija FROM [Savez].[dbo].[Igraci] WHERE BrojIskaznice = "' + CAST(@ID as varchar(10)) + ' queryout "C:\ImagesFromSql\' + CAST(@ID as varchar(10)) + '.jpg" -T -fC "E:\formatfile-n.fmt'
EXEC master..xp_cmdshell @SQL
FETCH NEXT FROM csr INTO @ID
END
CLOSE csr DEALLOCATE csr
А вот мой полный код, когда изображение имеет размер оригинала. Но их вообще нельзя открыть! так как они повреждены, вот почему я возвращаюсь к this post, но я сделал это уже! измененное значение до нуля!
EXEC sp_configure 'show advanced options', 1
GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO
EXEC master..xp_cmdshell 'mkdir C:\ImagesFromSql'
DECLARE @ID as int DECLARE @SQL as varchar(4000)
DECLARE csr CURSOR FOR SELECT BrojIskaznice FROM [Savez].[dbo].[Igraci]
OPEN csr
FETCH NEXT FROM csr INTO @ID
WHILE @@FETCH_STATUS = 0 BEGIN
SET @SQL = 'BCP "SELECT Fotografija FROM [Savez].[dbo].[Igraci] WHERE BrojIskaznice = "' + CAST(@ID as varchar(10)) + ' queryout "C:\ImagesFromSql\' + CAST(@ID as varchar(10)) + '.jpg" -T -N'
EXEC master..xp_cmdshell @SQL
FETCH NEXT FROM csr INTO @ID
END
CLOSE csr DEALLOCATE csr
Я действительно застрял здесь, это так раздражает работать, есть ли у кого-нибудь какие-либо советы?