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

تخزين صورة

مغلق
بدأه silence في 4 يوليو 2006 · 10 رد · 4,089 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الى اعضاء هذا المنتدى الرائع

ارجو منكم مساعدتى في حل هذه المشكلة التى طالت و ان بحث لها عن حل و هى:

كيف يمكن تخزين صورة بامتداد jpg في قاعدة بيانات من نوع اكسس في دلفى 7

#2

مثال مبسط من كود لدي استخدمه في التعامل الصور في مختلف قواعد البيانات مثل اكسس وارواكل

procedure TForm1.Button1Click(Sender: TObject);
begin
// save the image into the disk then load it in the image 
  TBLobField(AdoQuery1.FieldByName('Picture')).SaveToFile('temp.jpg');
  Image1.Picture.LoadFromFile('temp.jpg');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// open image and show the image component then add it to the table, beware the table have to be in edit or insert mode
  if OpenPictureDialog1.Execute then
  begin
	Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
	TBlobField(AdoQuery1.FieldByName('Picture')).LoadFromFile(OpenPictureDialog1.FileName);
  end;
end;

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

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#3

هناك مشكلة فعلا في التعامل مع jpg في قاعدة البيانات و لكن دائما هناك حل

انظر موقع About

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

أخي وائل، لا يوجد مشكلة في التعامل مع الصور او الملفات وتخزينها ضمن قواعد البيانات

المشكلة التى قد تحدث مع اكسس، وهي عندما تريد عرض صور تم تخزينها بواسطة اكسس نفسه وعليه على قاعدة بياناته

لانه سوف يضيع بيانات اضافية ضمن الحقل المخزن، لذلك لا يمكن عرض الصور مباشرة، والموقع الذى ذكره الاخ وائل هوا الخاص بهذه المشكلة فقط وليس للتخزين

لكن في حالة اعتماد دلفي كأساس للتخزين والاسترجاع لن يوجد هناك مشاكل

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#6

لا يمكن استخدام DBImage نهائيا مع jpg و ذلك لانها غير متوافقة.

و لحل ذلك يجب استخدام Image بدل من DbImage لحل المشكلة

اقتباس
أخي وائل، لا يوجد مشكلة في التعامل مع الصور او الملفات وتخزينها ضمن قواعد البيانات

المشكلة التى قد تحدث مع اكسس، وهي عندما تريد عرض صور تم تخزينها بواسطة اكسس نفسه وعليه على قاعدة بياناته

لانه سوف يضيع بيانات اضافية ضمن الحقل المخزن، لذلك لا يمكن عرض الصور مباشرة، والموقع الذى ذكره الاخ وائل هوا الخاص بهذه المشكلة فقط وليس للتخزين

لكن في حالة اعتماد دلفي كأساس للتخزين والاسترجاع لن يوجد هناك مشاكل

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

اما في حال التعامل من دلفي فلا يوجد اي مشكلة. اسف لم انتبه الى انّ المشكلة من اكسس

اذا حل المشكلة كما قال اخي محمد نسمان و الحل ايضا موجود ضمن الرابط الذي وضعه محمد عبد العزيز

اقتباس
لا ادري لماذا تطلق كلمة مشكل عندما لا يوجد شيئ جاهز!

كنت اتكلم عن هذه المشكلة و ليس عن عدم وجود شيئ جاهز.

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#7

السلام عليكم

شكر لكل من رد

ولكن بالنسبة لموقع عروة نت قمت بتنزيل الملف المرفق لتخزين الصورة في اكسس و قمت بتجريبه و كان فعال ولكن حين قمت بتغيير مسار قاعدة البيانات الى القاعدة الخاصة بى و كذلك اسم الجدول حدث خطا وهو ADOTable1Image ليست معرفه مامعنى هذا الخطا

ارجو منكم الايضاح

#8
المبرمجة الصغير2006 كتب:
القاعدة الخاصة بى و كذلك اسم الجدول حدث خطا وهو ADOTable1Image ليست معرفه مامعنى هذا الخطا

السلام عليكم

لوكان عندك مكون AdoTable1 و به حقل مسمى Image

يجب ااضغط مرتين على المكون AdoTable1 ثم اضافة كل الحقول...

أخي وائل، ماقصدته هو ان عدم قرائى Help يؤدى الى سوء التعامل ثم القول: مشكلة...

اقصد، ماذا لو كانت الصورة PNG او PCX أو غيرها...

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

وما فائدة البرمجة اذن ؟

d4baa0.gif
#9

السلام عليكم ورحمة الله وبركاته

اشكر لكم كل مجهودكم الذي بدلتموه في توضح الصورة بالنسبة لي ولكن تعقيبا على ما قاله الاعضاء لدي مكون باسم ADOTable1 ولدي حقل باسم image وقمت بتحويل الى مسار قاعدتي فقط وربطت ADOTable1 بجدولي الدي في القاعدة ومع هذا يعطي في نفس النتيجة يعطي رسالة بوجود خطأ في ADOTable1 بأن الجدول مغلق وهذه هي صورة من نص الرسالة

Project project1.exe raised exception class EDatabaseError with message 'ADOTable1: Cannot perform this operation on closed dataset'.process stopped.use step or to continue

#10
ADOTable1.Active := True;
d4baa0.gif
#11

شكرا لكم جميعا على هذه الحلول

فعلا عندما عملت اكتف تروا للجدول تمت عملية التخزين في الجدول ولكن اريد ان اتحقق من انه فعلا تم تخزينها بامتداد jpg و ليس bmp لانه عندما اريد اعرضها في الموقع من ملف القاعدة الدى تم فيه التخزين لا يتم العرض دليل على انها تم تخزينها bmp و ليس jpg

ارجوا منك مساعدتى

هذا الموضوع مغلق.

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