در این مقاله آموزشی ما قصد داریم تصاویری که در یک دایرکتوری ذخیره شده است را به با استفاده از SQL Server Integration Services به یک جدول در SQL Server منتقل کنیم.
معمولاً ما از روشهای زیر برای ذخیره تصاویر در SQL Server استفاده میکنیم.
۱. ذخیره تصویر درون بانک اطلاعاتی با استفاده از نوع داده (Varbinary (Max
۲. استفاده از Filestream برای ذخیره تصویر در خارج از بانک اطلاعاتی
۳. استفاده از FileTable برای ذخیره تصویر در خارج از بانک اطلاعاتی
ولی در مواردی هم میتوان دیتا و تصاویر را درون جداول دیتابیس ذخیره کرد، مثلا در این نمونه من در یکی از جداول دیتابیسم لیست کارمندانی را دارم که باید تصاویر آنها که هر کدام زیر 10 کیلو بایت هستند را ذخیره کنم و در داشبورد مدیریتی مدیران از آنها استفاده کنم.
برای انتقال تصویر از یک دایرکتوری به دیتابیس میتوان از پکیجی در SSIS بدین شیوه طرح کرد.
با ایجاد یک Data Flow Task آغاز میکنیم.
یک متغیر برای تعیین مسیر در نظر بگیرید
میتوانید این مورد را بشکل پارامتری برای پکیج هم در نظر بگیرید.
در این مرحله برای آنکه لیست فایلهای داریکتوری را بدست آوریم یک Script Component را بعنوان Source اضافه میکنیم.
متغیری که تعریف کردیم در این مرحله به Script Component بعنوان متغیر معرفی میکنیم.
در قسمت خروجی یک ستون اضافه میکنیم و مقدار آن را رشتهای 256 کاراکتری در نظر میگیریم.
روی دکمهی Edit Script کلیک میکنیم و در اولین قدمystem.IO را Use میکنیم.
در متد CreateNewOutputRows() قطعه کد زیر را برای دریافت نام کامل فایلهای موجود وارد میکنیم. (میتوان از همینجا کدی برای دریافت باینزی تصاویر هم نوشت که در این سناریو من راه دیگری در نظر دارم!)
Script راSave کرده و سپس پنجره Task Script را OK کنید.
یک Import Column به پروژه اضافه کنید و وارد قسمت تنظیمات آن شوید.
در این قسمت ستون ورودی را انتخاب کنید.
به تبInput and output Properties میرویم و یک ستون خروجی با نام Image ایجاد میکنیم.
ID این ستون را به خاطر بسپارید. و روی ستون ورودی کلیک کنید و عدد ID را در قسمت Custom Properties و در Property با نام FileDataColumnID ثبت کنید. دکمه OK را بزنید و یک OLE DB Destination به پروژه اضافه کنید.
یک کانکشن برای Destination خود بسازید.
جدول خود را انتخاب کنید و یا آن را بسازید.
ستونها را MAP کرده و OK کنید.
پروژه را اجرا کنید و تصاویر را در دیتابیس خود داشته باشید.
میتوانیم نتیجه را به این شکل در داشبورد اضافه کنیم.
دانلود این مقاله آموزشی:
4 دیدگاه
علی
سلام
بهترین روش برای ذخیره عکس چیست؟
آدرس ذخیره کنم یا یکی از روش های بالا
آرزو محمدزاده
با سلام و وقت بخیر
بهترین روش برای ذخیره کردن فایل های BLOB مانند عکس،….
استفاده از تکنولوژی File Stream و File Table در SQL Server می باشد.
تشکر از همراهی شما
سهیل
ممنون از آموزش
کاشانی
عالی