PDA

View Full Version : روش استفاده از نوع image در sql



vb_nima
یک شنبه 26 فروردین 1386, 21:11 عصر
چطوری میتونم تصویر موجود در Picture box را در دیتابیس sql با استفاده از نوع image دخیره کنم؟
آیا مثل دخیره فیلدهای رشته ای و عددی باید عمل کنم یا روش دیگری دارد؟

CodeMasterX
دوشنبه 27 فروردین 1386, 00:05 صبح
دوست عزیز برای ذخیره یک فایل در دیتابیس های اکسس یا SQL حالا هر فایلی باید اون فایل رو بصورت باینری بخونی و بایت های فایل رو در بانک ذخیره کنی.قبلا بارها مطرح شده.در SQL برای ذخیره فایل های (در اینجا) عکس باید از فیلد نوع image استفاده کنی.دستورات زیر رو ببین:



Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim dataBytes() As Byte
Dim FileName As String

CN.Open ConnectionString
RS.Open SQLQuery,CN,adOpenStatic,adLockOptimistic

FileName = "C:\Picture1.jpeg"
ReDim dataBytes(FileLen(FileName))

Open FileName For Binary As #X
Get #x , , dataBytes
Close #X

RS.AddNew
RS.Fields("Picture").AppendChunk dataBytes
RS.Update
RS.Update adAffectAllChapters

RS.Close
CN.Close


با این حال که باید قبلش یه جستجو می کردی ولی خوب کد رو نوشتم.شاید این کد یه جایی مشکل کوچیکی داشته باشه از حفظ نوشتمش.متد AppendChunk مربوط به رکوردست ADODB بایت ها رو در فیلد باینری بانک که در اکسس OLE BLOB و در SQL برای مقادیر تصویری Image هستند میریزه.

ascpro
دوشنبه 27 فروردین 1386, 00:09 صبح
اول باید نوع picture تونو image بگیرین در sql.
بعدم باید ADODB رو از توی references اد کنید.
project>references

vb_nima
دوشنبه 27 فروردین 1386, 11:52 صبح
من این روش ذخیره در فایل را بلدم. ولی من باید تصاویر زیادی را در یک لحظه بازیابی کنم که در داخل Picture box هستند. روشی وجود ندارد که احتیاج به ذخیره فایل برروی هارد و سپس ذخیره در دیتابیس نباشد. یعنی مستقیم بایتها را از picture box بگیریم؟

vb_nima
سه شنبه 28 فروردین 1386, 12:39 عصر
این دستور در برنامه بالا چه کار میکنه؟ چه فرقی با دستور قبلش داره؟
RS.Update adAffectAllChapters
من وقتی می خوام rs را کلوز کنم ارور میده؟ چه کار کنم؟

CodeMasterX
چهارشنبه 29 فروردین 1386, 01:35 صبح
RS.Update فقط رکوردست رو به روز می کنه ولی در بانک اعمال نمیشه ولی با متد دوم تمام تغییرات در بانک اعمال میشن.البته من خودم نمیدونم این بعنی چه جون با همون متد Update خالی همه تغییرات اعمال میشه،ولی خوب خود مایکروسافت که توی کتاب ADO 2.5 اینجوری توضیح داده.