1
새로운 기능과 매우 달라 붙은 기능! 다음 코드를 사용하여 디렉토리에서 이미지를 데이터베이스로로드하려고합니다.디렉토리에서 이미지를로드하는 동적 SQL
SP를 실행할 때 다음 양식을 포함 시켰습니다.
USE [store]
GO
DROP PROCEDURE [dbo].[insert2img]
/****** Object: StoredProcedure [dbo].[insert2img] Script Date: 07/08/2009 15:36:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROC [dbo].[insert2img]
as
Begin
Declare @img1 as varbinary(max)
Declare @dircmd as varchar(max)
DECLARE @filename varchar(100)
DECLARE @filepath varchar(100)
DECLARE @maxRowID int
DECLARE @count int
DECLARE @tempXMLFileName table (RowId int identity(1,1), name varchar(100))
Declare @sql as varchar(max)
Set @count = 1
Set @dircmd = 'MASTER..XP_CMDSHELL "dir/b '+ 'C:\Images\*.*"'
INSERT
@tempXMLFileName exec (@dircmd)
SET @maxRowID = (SELECT max(RowId) FROM @tempXMLFileName)
WHILE @count <= @maxRowID
BEGIN
SET @filename = (SELECT name FROM @tempXMLFileName WHERE [RowId] = @count)
Print @filepath
Set @filepath = 'C:\Images\'[email protected]
Set @sql = 'Insert into dbo.aaaimg (sno,imgdate,imgname,img)
Select '' @count'',getdate(),''Image'',
BulkColumn from Openrowset(Bulk ''' + @filepath + ''',Single_Blob) as tt '
print @sql
Print @count
Exec (@sql)
Set @filepath=' '
print @filepath
Set @count = @count + 1
end
end
인쇄 문을 몇 개 사용하여 SP를 실행하면 출력됩니다.
Insert into dbo.aaaimg (sno,imgdate,imgname,img)
Select ' @count',getdate(),'Image',
BulkColumn from Openrowset(Bulk 'C:\Images\n0501.jpg', Single_Blob) as tt
1
(1 row(s) affected)
내 문제는 내가 데시벨로 @count의 값을 삽입하기 위해 노력하고, 대신 나는 dB의 실제 단어 @count이 아닌 값으로 끝날 것입니다. 구분 기호로 처리한다고 가정하지만 올바른 조합을 얻을 수는 없습니다.
고마워요,
제임스.