امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Stream کردن برای خواندن فیلد نوع OLE
نویسنده پیام
psdcompany آفلاین
كاربر دو ستاره
**

ارسال‌ها: 142
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۶

تشکرها : 0
( 12 تشکر در 8 ارسال )
ارسال: #1
Stream کردن برای خواندن فیلد نوع OLE
با سلام
دوستان فرض کنید فایلی رو در فیلد نوع Ole در اکسس بصورت باینری ذخیره کرده ایم. حالا برای خوندن این فایل از پایگاه داده و از فیلد مورد نظر چگونه باید عمل کنیم
یک روش اینه که مقدار این فیلد رو بخونیم و در آرایه بایتی ذخیره کنیم و سپس اون رو توی یه فایل موقتی بریزیم و فایل رو اجرا کنیم.
اما از این روش نمی خوام استفاده بشه و میخوام مستقیما با خواندن از دیتابیس فایل رو بشه استفاده کرد.دوستی فرمودن باید از روش Stream استفاده کنیم. اما طریق اون رو نمی دونم

از همه دوستان تقاضای کمک دارم چون خیلی بهش نیاز دارم

باتشکر


شرکت توسعه گران سیستم پارسا
http://www.psdco.ir
(آخرین ویرایش در این ارسال: ۰۹-آذر-۱۳۸۶, ۱۵:۵۲:۰۵، توسط psdcompany.)
۰۹-آذر-۱۳۸۶, ۱۵:۵۰:۲۰
وب سایت ارسال‌ها
پاسخ
psdcompany آفلاین
كاربر دو ستاره
**

ارسال‌ها: 142
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۶

تشکرها : 0
( 12 تشکر در 8 ارسال )
ارسال: #2
RE: Stream کردن برای خواندن فیلد نوع OLE
کد زیر رو ببینین:
کد:
Private Sub DisplayBlob()
Dim sFilename As String
Set cn = New CDatClass
Set rs = New Recordset

On Error GoTo Command1_Error
sFilename = App.Path & "\Temp\" & mGUID.GetGUID & ".tmp"

rs.Open "Select * FROM tblPersonal WHERE PID =" & cboPID.BoundText, cn.Conn, adOpenKeyset, adLockOptimistic

If rs.RecordCount = 0 Then cmdSave2DB.Enabled = False: cmdSave2File.Enabled = False: Picture1.Picture = Nothing: Exit Sub

Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.Write rs.Fields("Foto").Value

mstream.SaveToFile sFilename, adSaveCreateOverWrite
        
        Picture1.Picture = LoadPicture(sFilename)

cmdSave2DB.Enabled = True: cmdSave2File.Enabled = True

rs.Close
cn.Conn.Close

Command1_Error:
    If err.Number <> 0 Then MsgBox Str(err) & " - " & Error, vbExclamation
End Sub

در کد بالا هم از روش استریم استفاده شده ولی همون جور که می بینید با استفاده از متد SaveToFile توی یه فایل موقت کار ذخیره شده...

همچنان منتظر شنیدن نظراتتون هستم
از مدیر محترم بخش وی بی هم خواهش می کنم که این پست ها و پیام های شخصی ما رو لطف کنن منت بزارن و فی سبیل الله یه نگاهی بندازن
از زحماتتون ممنون اجرتون با اباعبدالله.


شرکت توسعه گران سیستم پارسا
http://www.psdco.ir
(آخرین ویرایش در این ارسال: ۱۳-آذر-۱۳۸۶, ۱۲:۴۷:۲۷، توسط psdcompany.)
۱۱-آذر-۱۳۸۶, ۲۱:۳۲:۱۱
وب سایت ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #3
RE: Stream کردن برای خواندن فیلد نوع OLE
سلام
مطلب اول اینکه از شما عذر می خوام بایت اینکه مدتی برای من مشکلی به وجود اومد که اصلا امکان حظور در ایرانویج رو نداشتم .
روش Stream کردن در واقع روشیست در که در اون شما با تجزیه تحلیل داده ها در حافظه می تونید باعث بشید نتایج و داده هاتون به طور مستقیم از حافظه خونده یا در حافظه نوشته بشه .
نمونه هم زیاد هست, Stream کردن داده های فایل های تصویری یا چند رسانه ای مثل AVI و یا تجزیه و تحلیل هایی که روی تصاویر در حافظه انجام می شه .
و به طور کلی هم یک فرمول عام داره که در مواقع خاص خودش ممکنه برای فرمت و نوع داده ها این فرمول متفاوت باشه.
خوب اون داده هایی مه شما در آرایه بایتی ذخیره کردید رو یادتون میاد در اینجا ما با کمک VarPtrArray ما اشاره گری از نوع Long از آرایه به دست میاریم که البته بعدا به کمک API CopyMemory می شه آرایه مورد نظر رو از اون اشاره گر حافظه بر گردوند.
در واقع کنترل فلش پلیر باید یک ورودی برای دریافت اشاره گر داشه باشه که من هر چی گشتم و تحقیق کردم چیزی در اون کنترل ندیدم .
موضوع اصلی اینه:
-ما داده های خودمون رو به حافظه می دیم مثلا در یک آرایه بایتی
-در مرحله بعدی اشاره گری به کمک VarPtrArray به دست می گیریم
-کنترل ما به جای دریافت آدرس فایل باید محلی برای تحویل این اشاره گر داشته باشه

این موضوع در مورد تصاویر و خیلی از فایل های دیگه قابل انجامه یعنی به جای اینکه ما داده هامون رو از دیتا بیس در یک فایل ذخیره کنیم و آدرس فایل رو مورد ارجاع قرار بدیم میام و اشاه رگ حافظه رو مورد ارجاع قرار می دیم...
۱۱-آذر-۱۳۸۶, ۲۳:۰۱:۴۸
وب سایت ارسال‌ها
پاسخ
psdcompany آفلاین
كاربر دو ستاره
**

ارسال‌ها: 142
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۶

تشکرها : 0
( 12 تشکر در 8 ارسال )
ارسال: #4
RE: Stream کردن برای خواندن فیلد نوع OLE
دستتون درد نکنه.جدا شرمنده که خیلی مزاحم شدم واسه این مطلب چون سریع ، فوری و شدید به ایده شما نیاز داشتم
من جایی متدی به نام getChunk دیدم که برای خوندن فیلد نوع Blob از رکوردست استفاده میشد.اما باز نتونستم نتیجه مورد نظر رو ازش بگیرم
-----
-ما داده های خودمون رو به حافظه می دیم مثلا در یک آرایه بایتی
-در مرحله بعدی اشاره گری به کمک VarPtrArray به دست می گیریم
-کنترل ما به جای دریافت آدرس فایل باید محلی برای تحویل این اشاره گر داشته باشه
-----
خوب از همه دوستان تقاضا دارم که با هم رو ی روش فوق کار کنیم .من الان به عنوان یه کار و پروژه مهم عملیاتی کردن مراحل فوق رو شروع می کنم و نتایح رو میزارم توی تاپیک. ایشاله که جواب بیگیرم چون خیلی کاربردهای مفیدی می تونه داشته باشه و میتونه به یه روش امنیتی خیلی خوب تبدیل بشه.

از کاربری Darg بازم ممنونم
زنده باشید.


شرکت توسعه گران سیستم پارسا
http://www.psdco.ir
۱۳-آذر-۱۳۸۶, ۱۲:۵۳:۰۵
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  خواندن و ارسال کردن اطلاعات با پورت سریال SBRE77 18 20,157 ۱۱-مهر-۱۳۹۷, ۰۹:۴۶:۲۸
آخرین ارسال: reza1354
Shy [فوری] خواندن فایل تکست و تبدیل آن به فایل اکسل توسط CommandButton ahmadelectron 1 3,530 ۰۵-خرداد-۱۳۹۴, ۱۶:۵۲:۲۷
آخرین ارسال: Ghoghnus
  [سوال] خواندن فایل dll sallamatii 5 5,764 ۲۶-مهر-۱۳۹۳, ۲۲:۱۴:۱۶
آخرین ارسال: NO DONGLE
  جمع زدن دو فیلد و قرار دادن در فیلد دیگر در VB6 mohsen0025 7 7,477 ۰۲-شهریور-۱۳۹۲, ۱۱:۵۱:۴۶
آخرین ارسال: mohsen0025
  stream چیست؟ mehrdad8 3 3,377 ۱۳-خرداد-۱۳۹۲, ۱۷:۱۳:۱۶
آخرین ارسال: babyy
  خواندن اطلاعات از برنامه دیگر automa 8 6,343 ۲۴-بهمن-۱۳۹۱, ۱۸:۱۹:۱۱
آخرین ارسال: automa
  [سوال] کم کردن یه مقدار از فیلد جدول arezoobandar 8 7,580 ۱۴-دى-۱۳۹۱, ۱۴:۰۲:۱۶
آخرین ارسال: mehdibahram
  [سوال] خواندن و نوشتن یک فایل باینری به حالت اولیه one hacker alone 2 2,685 ۱۵-آبان-۱۳۹۱, ۲۳:۰۳:۵۷
آخرین ارسال: one hacker alone
Rolleyes کمک برای ignore کردن یک کلید کیبورد (مثل Remapping) sadra0 3 3,638 ۲۵-اردیبهشت-۱۳۹۱, ۱۴:۵۳:۰۳
آخرین ارسال: Ghoghnus
  ساخت فیلد کلیدی با vb6 alaska 4 3,905 ۳۱-فروردین-۱۳۹۱, ۰۱:۴۶:۰۳
آخرین ارسال: parviin

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS