Merhabalar
Netsis'de bazen stok kartlarına toplu resim eklemek gerekiyor. Aşağıdaki sql sorgusu ile bir klasördeki resimlerin stok kartına nasıl kayıt edileceği gösterilmektedir.
CREATE TABLE #TMP(STRFILENAME VARCHAR(100));
INSERT INTO #TMP EXEC xp_cmdshell 'DIR /B C:\Nevaa\StokResim\';
DECLARE @FILENAME VARCHAR(1000)
WHILE (SELECT COUNT(*) FROM #TMP WHERE STRFILENAME IS NOT NULL) > 0
BEGIN
SELECT TOP 1 @FILENAME = STRFILENAME FROM #tmp
DECLARE @FILEPATH NVARCHAR(500)
SET @FILEPATH = 'C:\Nevaa\StokResim\'+@FILENAME
--SELECT @FILEPATH
DECLARE @SQL NVARCHAR(MAX)
DECLARE @FILESTREAM VARBINARY(MAX)
SET @SQL = N'SELECT @FILESTREAM1 = CAST(BULKCOLOUMN AS VARBINARY(MAX))
from OPENROWSET(BULK ''' + @filePath + ''',
SINGLE_BLOB) ROW_SET'
EXEC sp_executesql @SQL, N'@FILESTREAM1 VARBINARY(MAX) OUTPUT',@FILESTREAM1 =@FILESTREAM OUTPUT
--ASAGIDAKI DELETE COMMENT'I KALDIRILIRSA ILGILI STOK KODUNA AIT DAHA ONCEDEN KAYIT EDILMIS RESIM VARSA SILER
--DELETE FROM TBLEVRAK WHERE KOD=@FILENAME AND TABLOTIPI=1 AND EVRAKTIPI=0
INSERT INTO TBLEVRAK (TABLOTIPI, KOD, EVRAKTIPI, ACIKLAMA,BILGIBOYUT,BILGI,KAYITTAR,KULID)
SELECT 1,LEFT(@FILENAME,13),0,LEFT(@FILENAME,13),DATALENGTH(@FILESTREAM), @FILESTREAM, GETDATE(),1
DELETE FROM #TMP WHERE STRFILENAME = @FILENAME
END
DROP TABLE #TMP
Yorumlar
Yorum Gönder