الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعلم كيف تحفظ صورة في قاعدة البيانات

بدأه hisham saad في 16 نوفمبر 2008 · 0 رد · 2,494 مشاهدة · في قسم قواعد البيانات
مشاركة: واتساب X فيسبوك تيليجرام
#1

بسم الله والصلاة والسلام علي رسولة الله

الان إن شاء الله نتعلم كيفة نحفظ صورة في قاعدة بيانات في برنامجنا بطريقة احترافية وسهلة

الاول يجب ان نعلم ان الصورة تحفظ في قاعدة البيانات عن طريق نوع البيانات OLE فيجب اولا ان نخصص لها حقل

في قاعدة البياانات بهذا النوع

ثانيا وإن شاء الله سوف نتعامل في هذا الدرس بمكتبة الادو الاصدار 2.6 او فيما فوق من هذا الاصدار

وسوف نتعامل مع الوظيفة التي بداخلة والتي تسمي stream وهي خاصة بالتعامل مع البينري والنصوص في مكتبة

الادو

يجب اول في في المشروع في فيجوال بيسك ان نعلم مسار الصورة المراد ادخالها وهي طبعا عن طريق الكومون ديلوج

وانا سوف ابدا باستخدام الوظيفة مباشرتا

نعلم طبعا ان في زر حفظ يجب ان نحفظ الصورة مع باقي الحقول العادية لدينا فنحن سوف نعمل اجراء واستداعة وقت

الحاجة لاستدعاء الصورة اذا كان في الحفظ او ازرار التنقل

اولا ناخذ الاجراء الخاص بالحفظ

وليكن كالتالي

private sub SaveImg ()

On Error Resume Next ' لعدم الخطأ
	Dim mStream As New ADODB.Stream	 ' تعريف الوظيفة Stream من المكتبة ادو

	With mStream											 ' الامر with لسهولة التعامل معها
		.Type = adTypeBinary						   ' تعريف نوع البيانات الذي سوف نتعامل معه في الوظيفة
		.Open													  ' تهيئة الاستريم وفتحها لقراءة الصورة
		.LoadFromFile Cmdialog1.FileName  ' تحميل الصورة عن طريق الكومون ديلوج 
		Rs("img1").Value = .Read					' لقد تم تحويل الصورة الي صيغة البينري كود والان نحفظه بطريقة عادية في القاعدة عن طريقة اداة الادو العادية او اداة الادو دسي
		End With
	Set mStream = Nothing						   ' ننهي ونمسح الوظيفة من الذاكرة لكي لا تأخذ حيز فيه

end sub

وفيما سبق تعلما كيف نصنع اجراء ليحفظ الصورة

الان نريد ان نعيد الصورة الي اليفورم في ازرار الانتقال او البحث او غير ذلك ماذا نفعل سوف نري الان معا.

سوف نصنع اجراء ثاني لهذا الهدف إن شاء الله

private sub LoadImg ()


On Error Resume Next
	Dim mStream As New ADODB.Stream
	'طبعا لن اعيد شرح الكود لاننا شرحناه سابقا ولكني سوف اشرح فقط الجديد من هذا الكود
		With mStream
			.Type = adTypeBinary
			.Open
			.Write Rs("img1")														' سوف نأخذ الصورة من الادو او الادو دسي وادخالها في مكتبة الاستريم 
			.SaveToFile "tmp1.fil", adSaveCreateOverWrite  ' الان المكتبة يوجد بداخلها كود البينري الخاص بالصورة بتاعتها وعن طريق هذه الوظيفة نستطيع ان نحفظ كود البينري الي صورة وسوف نحفظه في ملف مؤقت وسوف نسميه وليكن tmp1.fil  , خاصية ال adSaveCreateOverWrite  هذه وظيفتها اذا كان الملف موجود مسبقا تكتب عليه اي تحذفة وتضع الملف الجديد 
		End With
		Set mStream = Nothing
		Image1.Picture = LoadPicture("tmp1.fil")	' الان والبطريقة المعتادة سوف نحمل الصورة في الكومون ديلوج وطبعا لن نكتب مسار الصورة لانها صنعت داخل مجلد المشروع بتاعنا 

		Kill "tmp1.fil"												  ' وهنا وبعد ان حملنا الصورة الاصلية نمسح الصورة المؤقتة

end sub

ملحوظة :

بما اننا نستخدم الكومون ديلوج Common Dialog فهي تغير مسار مشروعنا بالكامل واي مسار تركينه تلقي كي

يأخذ قيمت مساره من مجلد المشروع سوف يتغير مساره وهنا ينتج لنا اخطاء لا نعلمها ولذلك واهم مسار لدينا وهو

قاعدة البيانات فيجب ان نعرف مسارها بالوظيفة App.Path

مثال :

وليكن اسم كان الاتصال Cn

سوف يكون كالاتي :

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path & "\DataBase Name" + " "

ارجو من الله ان يكون قد افادكم هذا الدرس ونرجوا الدعاء بحسن الخاتمة

منتظر تعلقاتكم واستفساراتكم

العلم بين الحياء والكبرياء

تم تعديل هذه المشاركة بواسطة hisham saad في 16 نوفمبر 2008 في 21:33

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…