أهلا بكم مرة أخرى إلى درس جديد من دروس البرمجة بلغة دلفي بالصوت والصورة. في تطبيقات قواعد البيانات غالبا ما نجد أنفسنا نحتاج إلى إدراج صورة إلى قاعدة البيانات، ولذا سوف نقوم في هذا الدرس بعون الله بشرح طريقة إدراج صورة إلى قاعدة البيانات.
بداية قمنا بإنشاء جدول بسيط باستخدام (Paradox) يحتوي على ثلاث حقول وهي كالآتي:
الرقم (sn) من نوع (Integer)
الاسم (name) من نوع (String)
والصورة (pic) من نوع (Graphic)
كالعادة سنضع المكونات (TDataBase، TTable، TDataSourse، DBGrid) وبالطبع لا داعي لذكر طريقة ربط هذه المكونات بقاعدة البيانات بالتفصيل لكي لا أطيل عليكم.
وسوف نضيف أيضا الكائنات (OpenPictureDialog، DBImage1)
سنقوم بربط (DBImage) بالـ(TDataSourse) بحقل الصورة (وهو Pic كما ذكرنا)
ومن ثم نضع الكود التالي في الحدث (DblClick) للكائن (DBImage):
اقتباس:begin
Table1.Edit;
if OpenPictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
end;
عند تشغيل البرنامج والضغط مرتين على كائن الصورة (DBImage) يتم فتح مربع الحوار (OpenPictureDialog1)، ومن ثم يمكننا اختيار الصورة المطلوبة ونضغط (open) فتظهر الصورة على الكائن (DBImage)، وعن طريق الأمر (Post) يتم كتابتها في الحقل المطلوب. لاحظ أننا استخدمنا في البداية الأمر (Edit) ليسمح لنا بالكتابة في الجدول، في حالة أردت إدخال سجل جديد استخدم (Insert) بدلا من (Edit).
أتمنى أن أكون قد وفقت في تقديم الشرح، وكالعادة في حالة الاستفسار نحن في الخدمة بعون الله.
ملاحظة: بعض قواعد البيانات تستخدم النوع (BLOB) للصور.
تحياتي...!
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
للاطلاع على الدروس السابقة على الروابط التالية:
الدرس 1: http://www.alhandasa.net/forum/showthread.php?t=193706
الدرس 2: http://www.alhandasa.net/forum/showthread.php?t=193843
الدرس 3: http://www.alhandasa.net/forum/showthread.php?t=194172
الدرس 4: http://www.alhandasa.net/forum/showthread.php?t=195538
الدرس 5: http://www.alhandasa.net/forum/showthread.php?t=196247
الدرس 6: http://www.alhandasa.net/forum/showthread.php?t=197185
الدرس 7: http://www.alhandasa.net/forum/showthread.php?t=199336
الدرس 8: http://www.alhandasa.net/forum/showthread.php?t=199949
الدرس 9: http://www.alhandasa.net/forum/showthread.php?t=200778
الدرس 10: http://www.alhandasa.net/forum/showthread.php?t=201879
الدرس 11: http://www.alhandasa.net/forum/showthread.php?t=202182
الدرس 12: http://www.alhandasa.net/forum/showthread.php?t=202559
الدرس 13: http://www.alhandasa.net/forum/showthread.php?t=203887
الدرس 14: http://www.alhandasa.net/forum/showthread.php?t=204354
الدرس 15: http://www.alhandasa.net/forum/showthread.php?t=204651
الدرس 16: http://www.alhandasa.net/forum/showthread.php?t=204768
الدرس 17: http://www.alhandasa.net/forum/showthread.php?t=207721
الدرس 18: http://www.alhandasa.net/forum/showthread.php?t=207826
الدرس 19: http://www.alhandasa.net/forum/showthread.php?t=213370
الدرس 20: http://www.alhandasa.net/forum/showthread.php?t=213985
الدرس 21: http://www.alhandasa.net/forum/showthread.php?t=215251
الدرس 22: http://www.alhandasa.net/forum/showthread.php?t=216942
ملحق 1: http://www.alhandasa.net/forum/showthread.php?t=202141
ملحق 2: http://www.alhandasa.net/forum/showthread.php?t=202181
ملحق 3: http://www.alhandasa.net/forum/showthread.php?t=202690
ملحق 4: http://www.alhandasa.net/forum/showthread.php?t=206510
__________________
بداية قمنا بإنشاء جدول بسيط باستخدام (Paradox) يحتوي على ثلاث حقول وهي كالآتي:
الرقم (sn) من نوع (Integer)
الاسم (name) من نوع (String)
والصورة (pic) من نوع (Graphic)
كالعادة سنضع المكونات (TDataBase، TTable، TDataSourse، DBGrid) وبالطبع لا داعي لذكر طريقة ربط هذه المكونات بقاعدة البيانات بالتفصيل لكي لا أطيل عليكم.
وسوف نضيف أيضا الكائنات (OpenPictureDialog، DBImage1)
سنقوم بربط (DBImage) بالـ(TDataSourse) بحقل الصورة (وهو Pic كما ذكرنا)
ومن ثم نضع الكود التالي في الحدث (DblClick) للكائن (DBImage):
اقتباس:begin
Table1.Edit;
if OpenPictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Table1.Post;
end;
عند تشغيل البرنامج والضغط مرتين على كائن الصورة (DBImage) يتم فتح مربع الحوار (OpenPictureDialog1)، ومن ثم يمكننا اختيار الصورة المطلوبة ونضغط (open) فتظهر الصورة على الكائن (DBImage)، وعن طريق الأمر (Post) يتم كتابتها في الحقل المطلوب. لاحظ أننا استخدمنا في البداية الأمر (Edit) ليسمح لنا بالكتابة في الجدول، في حالة أردت إدخال سجل جديد استخدم (Insert) بدلا من (Edit).
أتمنى أن أكون قد وفقت في تقديم الشرح، وكالعادة في حالة الاستفسار نحن في الخدمة بعون الله.
ملاحظة: بعض قواعد البيانات تستخدم النوع (BLOB) للصور.
تحياتي...!
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
للاطلاع على الدروس السابقة على الروابط التالية:
الدرس 1: http://www.alhandasa.net/forum/showthread.php?t=193706
الدرس 2: http://www.alhandasa.net/forum/showthread.php?t=193843
الدرس 3: http://www.alhandasa.net/forum/showthread.php?t=194172
الدرس 4: http://www.alhandasa.net/forum/showthread.php?t=195538
الدرس 5: http://www.alhandasa.net/forum/showthread.php?t=196247
الدرس 6: http://www.alhandasa.net/forum/showthread.php?t=197185
الدرس 7: http://www.alhandasa.net/forum/showthread.php?t=199336
الدرس 8: http://www.alhandasa.net/forum/showthread.php?t=199949
الدرس 9: http://www.alhandasa.net/forum/showthread.php?t=200778
الدرس 10: http://www.alhandasa.net/forum/showthread.php?t=201879
الدرس 11: http://www.alhandasa.net/forum/showthread.php?t=202182
الدرس 12: http://www.alhandasa.net/forum/showthread.php?t=202559
الدرس 13: http://www.alhandasa.net/forum/showthread.php?t=203887
الدرس 14: http://www.alhandasa.net/forum/showthread.php?t=204354
الدرس 15: http://www.alhandasa.net/forum/showthread.php?t=204651
الدرس 16: http://www.alhandasa.net/forum/showthread.php?t=204768
الدرس 17: http://www.alhandasa.net/forum/showthread.php?t=207721
الدرس 18: http://www.alhandasa.net/forum/showthread.php?t=207826
الدرس 19: http://www.alhandasa.net/forum/showthread.php?t=213370
الدرس 20: http://www.alhandasa.net/forum/showthread.php?t=213985
الدرس 21: http://www.alhandasa.net/forum/showthread.php?t=215251
الدرس 22: http://www.alhandasa.net/forum/showthread.php?t=216942
ملحق 1: http://www.alhandasa.net/forum/showthread.php?t=202141
ملحق 2: http://www.alhandasa.net/forum/showthread.php?t=202181
ملحق 3: http://www.alhandasa.net/forum/showthread.php?t=202690
ملحق 4: http://www.alhandasa.net/forum/showthread.php?t=206510
__________________