PDA

View Full Version : حرفه ای: آدرس عکس در پایگاه داده



saviorperi
شنبه 27 خرداد 1391, 17:10 عصر
سلام دوستان
من یک پروژه با C#‎ و SqlServerExpress نوشتم و از ترس اینکه یک زمانی حجم پایگاه دادم به 4GB برسه به جای خود عکس ها آدرسشونو تو پایگاه داده قرار دادم، ولی یک مشکلی برام پیش اومد.

برنامه تحت شبکه هستش، شما فرض کنید که تو یک سیستم یک پرسنل ثبت شد و آدرس عکی پرسنلی هم تو پایگاه داده ذخیره شد، حالا اگه تو سیستم دیگری بخوان عکس مربوط به پرسنل رو ببینن یا چاپ کنن چی میشه ؟ مگه آدرس عکس مربوط به سیستمی که پرسنل ازش ثبت شد نیست ؟ الان چیکار میشه کرد ؟

Y_Safaiee
شنبه 27 خرداد 1391, 18:52 عصر
با سلام خدمت شما دوست عزیز

شما دو راه دارید
1.تمامی عکس ها , ... روی سیستم سرور ذخیره بشه,مثه هاست ها که تمامی فایلها رو هاست ذخیره میشه نه رو هر کلاینت مجزایی,اینطوری خیلی راحت میتونین با سوکت نویسی فایل هاتونو از سرور به سیستم خودتون انتقال بدین
2.هر کلاینتی قابلیت سرور هم داشته باشه یعنی قادر به اتصال به اون و دریافت اطلاعات به اونو داشته باشید اینطوری میتونین تو آدرس ذخیره شده آی پی اون سیستم رو وارد کنید و وقت نیاز بهش Request بدید و اطلاعات رو بخونید

اما معمولا برای نرم افزارهای اتوماسیون از ذخیره داخلی استفاده میشه(به خاطر امنیت داده ها)

موفق باشید
بایت بایت

tooraj_azizi_1035
شنبه 27 خرداد 1391, 19:25 عصر
سلام





فعال کردن ساپورت FileStream:

http://msdn.microsoft.com/en-us/library/cc645585%28v=sql.100%29


ساخت جدولی برای ذخیره عکس نوع ستون FILESTREAM است که باعث می شود عکس خارج از بانک ذخیره شود.

CREATE TABLE Archive.dbo.Records
( [Id] [uniqueidentifier] ROWGUIDCOL NOT NULL UNIQUE,
[SerialNumber] INTEGER UNIQUE, [Chart] VARBINARY(MAX) FILESTREAM NULL )
GO




Before you can start to use FILESTREAM, you must enable FILESTREAM on the instance of the SQL Server Database Engine. This topic describes how to enable FILESTREAM by using SQL Server Configuration Manager.

To enable and change FILESTREAM settings



On the Start menu, point to All Programs, point to Microsoft SQL Server 2008, point to Configuration Tools, and then click SQL Server Configuration Manager.
In the list of services, right-click SQL Server Services, and then click Open.
In the SQL Server Configuration Manager snap-in, locate the instance of SQL Server on which you want to enable FILESTREAM.
Right-click the instance, and then click Properties.
In the SQL Server Properties dialog box, click the FILESTREAM tab.
Select the Enable FILESTREAM for Transact-SQL access check box.
If you want to read and write FILESTREAM data from Windows, click Enable FILESTREAM for file I/O streaming access. Enter the name of the Windows share in the Windows Share Name box.
If remote clients must access the FILESTREAM data that is stored on this share, select Allow remote clients to have streaming access to FILESTREAM data.
Click Apply.
In SQL Server Management Studio, click New Query to display the Query Editor.
In Query Editor, enter the following Transact-SQL code:



EXEC sp_configure filestream_access_level, 2 RECONFIGURE
Click Execute.





http://research.microsoft.com/pubs/64525/tr-2006-45.pdf

http://msdn.microsoft.com/en-us/library/bb933993%28SQL.100%29.aspx

saviorperi
شنبه 27 خرداد 1391, 19:53 عصر
فکر کنم این fileStream خیلی مفید باشه، ولی من فرصت خیلی کمی دارم و از fileStream هم نمیدونم چطور باید استفاده کنم، جستجو هم کردم یک آموزش خوب و صریح براش پیدا نکردم، حتی یک مثال عملی پیدا نکردم تا ازش یاد بگیرم، مجبورم عکس هارو تو دیتابیس ذخیره کنم

tooraj_azizi_1035
شنبه 27 خرداد 1391, 19:56 عصر
چرا مجبوری مگه نمی تونی لینک هایی که گذاشتم رو بخونی؟

saviorperi
شنبه 27 خرداد 1391, 20:22 عصر
چرا مجبوری مگه نمی تونی لینک هایی که گذاشتم رو بخونی؟

دوست عزیز متاسفانه هم زبان انگلیسی من خیلی خوب نیست، و هم از حجم adsl من حدود 30MB مونده واسه همین نمیتونم تو نت بچرخم
الان کلی سوال درباره این file Stream تو ذهن من هست، اینکه عکس ها کجا قرار میگیرن ؟ اینکه موقع backup گیری و restore چی میشه ؟ اینکه مقدار فیلد هامو چی باید بدم ؟ چطور باید به عکس ها دسترسی داشته باشم ؟ خلاصه متاسفانه الان من فقط میدونم چطور fileStream رو فعال کنم