This is a mirror of official site: http://jasper-net.blogspot.com/

שמירת קבצים בתוך טבלה

| Monday, September 19, 2011
מאפשר לשמור קבצים בינאריים בתוך טבלה. למשל- טבלת עובדים בה יש עמודה המכילה את התמונה של כל עובד.
כדאי כבר להקדים ולציין שהשימוש בכלי הזה בעייתי- קבצים גראפיים ואחרים נוטים להיות גדולים מאוד, וכשמדובר בטבלאות גדולות – נפח האחסון שלהן גדל למימדים מעוררי חלחלה.. לא לנסות בבית, ובטח שלא במשרד!
החל מגרסת 2008 R2 יש פתרון חלופי – Filestream – בו הקובץ נשמר בנפרד על הדיסק והדטבייס שומר על גודל שפוי (כתבתי על כך פוסט בעבר), אבל אני אעסוק כאן דווקא בפתרון הישן.

ניצור בכונן C: מחיצה בשם Tmp (סביר להניח שלרובנו יש כבר אחת כזו), ונעתיק אליה מספר קבצים.
אני העתקתי קובץ טקסט בשם MyFile.txt,
קובץ Word בשם MyFile2.doc,
וקובץ Excel בשם MyFile3.xlsx.
ניצור טבלה מתאימה לאחסון הקבצים:

Use tempdb;
Go
 
If Object_Id('MyTbl','U') Is Not Null Drop Table MyTbl;
Go
 
Create Table MyTbl(ID Int Identity,
                   Teur Varchar(Max),
                   MyFile Varbinary(max));
Go

וכעת נקלוט את הקבצים (עם תיאור מתאים) לטבלה:

Insert
Into    MyTbl(Teur,MyFile)
Select  'My text file',
        *
From    Openrowset(Bulk N'C:\Tmp\MyFile1.txt',Single_BLOB) T;
 
Insert
Into    MyTbl(Teur,MyFile)
Select  'My Word file',
        *
From    Openrowset(Bulk N'C:\Tmp\MyFile2.doc',Single_BLOB) T;
 
Insert
Into    MyTbl(Teur,MyFile)
Select  'My Excel file',
        *
From    Openrowset(Bulk N'C:\Tmp\MyFile3.xlsx',Single_BLOB) T;
Go


Read more: גרי רשף
QR: GR20110918.aspx

Posted via email from Jasper-net

0 comments: