PDA

View Full Version : ذخیره عکس در بانک اکسس



vahid_boy1
جمعه 31 فروردین 1386, 10:53 صبح
سلام دوستان
کسی میتونه نحوه ذخیره عکس در بانک اکسس رو توضیح بده ؟
ممنون میشم

vb_nima
جمعه 31 فروردین 1386, 11:50 صبح
من در چند پست قبل ذخیره در sql را پرسیده بودم می تونی سرچ کنی .روشش فرق نداره
در اکسس باید از نوع داده ای ole (فکر کنم) استفاده کنی.
عکسی که در picture box وجود دارد را با تابع savepicture() در یک فایل موقت سیو کن.
یک آرایه از نوع بایت تعریف کنید.
با استفاده از تابع filelen() طول فایل موقت ذخیره شده را بدست آورید و سپس با دستور redim طول آرایه ی بایت را برابر با طول فایل کنید.

vb_nima
جمعه 31 فروردین 1386, 12:13 عصر
Dim bPic() as byte
dim lenght as long
savepicture(picture1.picture,app.path & "\temp.pic")
lenght=filelen(app.path & "\temp.pic")
redim bPic(lenght)
اکنون فایل را به صورت باینری باز می کنیم و اطلاعات فایل را در آرایه می ریزیم.


open app.path & "\temp.pic" for binary as #1
get #1,,bPic
close #1

سپس با استفاده از recordset ومتد appendchunk آرایه را ذخیره می کنیم.


RS.fields("pic").appendchunk(bPic)

vb_nima
جمعه 31 فروردین 1386, 12:27 عصر
برای باز کردن تصویر دوباره از همون متغیر آرایه و متغیر lenght استفاده کن.
طول فیلد را با استفاده از تابع lenB داخل متغیر lenght بریز و دوباره آرایه زا redim کن


lenghtlenB(RS!pic)
redim bPic(lenght)
حالا با استفاده از getchunk مقدار فیلد را در آرایه بریز


RS.fields("pic").getchunk(lenght)
درست یادم نیست تو دستور بالا lenght را احتیاج بود یانه.
در مرحله بعد این آرایه را در یک فایل موقت ذخیره کن


open app.path & "\temp.pic" for binary as #1
put #1,,bPic
close #1

حالا با استفاده از متد load picture تصویر را باز کن


picture1.picture=loadpicture(app.path & "\temp.pic")

امیدوارم مفید بوده باشه.

CodeMasterX
جمعه 31 فروردین 1386, 16:59 عصر
البته آخرین جواب به این سوال رو من نوشتم !
توی همین بخش جستجو کن با همین موضوع صد تا تاپیک هست!
قبلا توضیح داده شده،روش کار هم همون کدی هست که vb_nima اشاره کرد و یه روش دیگه استفاده از آبجکت Stream در ADO هست.