PDA

View Full Version : ذخیره و بازیابی عکس در دیتا بیس



sajjad1365
پنج شنبه 02 فروردین 1386, 10:23 صبح
سلام.
دوستان من برای ذخیره وبازیابی عکس تو دیتا بیس مشکل دارم.

مثلا برای ذخیره و بازیابی متن و... مشکلی ندام/ با این کدها::::

Data1.Recordset.Fields(5) = Text4.Text
Data1.Recordset.Fields(6) = Text5.Text
ولی برای ذخیره و بازیابی عکس با این کدها مشکل دارم:(نوع داده عکس هم باینری olE است.)
مثلا::::::::برای بازیابی (picture1.picture=data1.recordset.field(0
لطفا راهنمایی کنید.ممنون

S_VB.max
پنج شنبه 02 فروردین 1386, 10:40 صبح
قبلا در این مورد بارها بحث شده لطفا قبل از مطرح کردن سئوال جستجو کنید

__siavash__
پنج شنبه 02 فروردین 1386, 19:39 عصر
اینو همین الان از ایران ویج گرفتم و هنوز نگاش نکردم ببین به کارت میاد

S_VB.max
پنج شنبه 02 فروردین 1386, 20:03 عصر
من که چیزی نمی بینم !!!

__siavash__
پنج شنبه 02 فروردین 1386, 22:13 عصر
آره ببخشید وقتی داشتم آپلود میکردم سیستمم هنگ کرد فکر کردم فرستاده شده
بازم میگم من هنوز نگاش نکردم شاید بی ربط باشه
اون جا عنوانش همین عنوان تاپیک شما بود

romina2006
پنج شنبه 02 فروردین 1386, 22:35 عصر
می تونی از سورسهای زیر استفاده کنی ولی بهتره از کنترل Data استفاده نکنی

اون سورسی که سیاوش جان گذاشته با کنترل Data نیست با ADO کار می کنه.

CodeMasterX
جمعه 03 فروردین 1386, 01:32 صبح
برای ذخیره فایل (از هر نوعی) توی دیتابیس های اکسس مایکروسافت باید از فیلد نوع OLE استفاده بشه که برای مثال این فیل توی SQLServer بصورت فیلد های BLOB و Image بهینه سازی شدند.خود مایکروسافت اعلام کرده که فیلد های OLE مربوط به اکسس 2003 برای هر رکورد تا حجم یک گیگا بایت رو به خوبی پشتیبانی می کنن.
برای ذخیره فایل های باینری در دیتابیس توی VB6 با ADO سرو کار داریم.که می تونیم با استفاده از ADO Stream Object و یا متدهای GetChunk,AppendChunk استفاده کنیم.استفاده از Stream Object خیلی آسون تر هست.حالا اینجا یه مثال از متدهای GetChunk و AppendChunk رو می نویسم.

برای ذخیره فایل در دیتابیس:



Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim sFileName As String
Dim dataBytes() As Byte

CN.Open ConnectionString
Rs.Open SQL,CN,adOpenStatic,adLockOptimistic

sFileName = "C:\Document.pdf"
ReDim dataBytes(FileLen(sFileName))

Open sFileName For Binary As #1
Get#1 , , dataBytes
Close #1

Rs.AddNew
Rs.Fields("UserPicture").AppendChunk dataBytes
Rs.Update
Rs.UpdateBatch adAffectAllChapters

Rs.Close
CN.Close