
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