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

مشكلة الصورة في Sql

مغلق
بدأه Salah El Deen في 6 أكتوبر 2007 · 6 رد · 1,155 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كل عام والجميع بخير

لقد قمت مند مدة ببرمجة مشروع الإرشيف الإلكتروني إن صح التعبير ويعتمد هذا البرنامج على تخزين صور المستندات لاي مؤسسة و شركة ما داخل قاعدة بيانات من نوع Sql Server 2000 وقد تمت هذا البرنامج وعمل بشكل جيد ولكن بعد ن وصل عدد المستندات ( صور المستندات ) بقاعدة البيانات إلى حجم 2gb ظهرت رسالة مفادها ن الذاكرة غير قادرة على ستعاب حجم البيانات المراد تحميلها بها .

وبعد عدة ختبارات على قاعدة البيانات اكتشفت ن هذا الخطاء يحدث في لحظة فتح ADO table اما لغرض التعديل اوالإضافة اي في اللحظة التي يتم اخذ نسخة من بيانات في الرام.

قمت ببعض التعديلات في عملية التعديل بحيث يتم التعديل عن طريق adoquery ونجحت ولكن لا علم لاي بطريقة الإضافة في adoquery بحث لازلت حتاج إلى استخدام ADOtable في عملية الإضافة .

فمن لديه حل هذه المشكلة ارجو منه الإفادة .

وشكراً

من جد وجد ومن زرع حصد

#2
اقتباس
بقاعدة البيانات إلى حجم 2gb ظهرت

حجم كبير جدا

حاول ضغط الصور مثلا JPG بدلا من BMP (هذا ان لم نكن ضغطتها من قبل)

حاول انشاء جدول في قاعدة تحتولى الصور فقط وقاعدة اخرى للبيانات والجداول المتبقية

وعند الحاجو انشاء قاعدة ثانية وثالثة ورابعة فقط للصور عندما يكبر حجمها...

والسلام عليكم

d4baa0.gif
#3

مشكور أخي المشرف على الأهتمام وأنا بالفعل قد قمت بوضع الصور في جدول مستقل عن بيانات البرنامج ولكن لازالت المشكلة قائمة حيث أنه من غير المنطقي أن أقسم الصور على عدة جداول مع أني أطلعت على برنامج لشركة أجنبية تستخدم SQL Server 2000 في إنشاء قواعد بياناتها وليها برنامج ارشيف الكتروني كالدي أعمل عليه ووصلت حجم البيانات في جدول الصور لديهم إلى حوالي 15Gb ولم تكن لديهم أية مشكل بل أن سرعة الجهاز لديهم لم تتغير في تصفح هذه المستندات سواء أكانت في الجهاز الخادم أو العميل .

موضوع محير لم أجد له تفسير مع العلم أني قد درست عدة نقاط سأدكرها قد تساعد في فهم مشكلتي .

1. إذا نظرنا إلى سعة الذاكرة التي يستخدمونها Ram فهي بسعة 1GB وهي مطابقة لسعة الذاكرة لدي.

2. نوع الجهاز Server الذي يستخدمونه من نوع HP وسرعة 3400MHz مطابق لمواصفات الجهاز الذي أعمل عليه .

3. الجداول التي يستخدمونها في قاعدة البيانات 3 وهي ( جدول البيانات Main_Table - جدول الصور Pic_Table - جدول المرفقات Atattchment_table) >

4. يتخدمون مكونات ADO وهذا واضح من أستخدام ملف الإتصال ن نوع DB.UDL >

كما ترون جميع المعطيات متوفرة في حسب رأي إن لم أغفل شيئاً منها .

فأرجو من له خبرة في هذا الموضوع أن يفيدنا أفاده الله .

من جد وجد ومن زرع حصد

#4

Try to simulate some thing like caching or paging

تم تعديل هذه المشاركة بواسطة حزووم في 7 أكتوبر 2007 في 06:18

#5

إذا كنت تريد النصيحة, فيجب عدم تخزين الصور أو الملفات في قاعدة البيانات هذا هو المنطق و هذا هو الشيئ الصحيح, و يتم تخزين اسماء الملفات او الصور في قاعدة البيانات فقط..

تم مناقشة الموضوع سابقا في موضوع آخر في منتدى آخر في السابق

إذا اردت ان تبقى على نفس البنية دون تغيير: بالنسبة للجدول الصور لا تتعامل معه من خلال adotable ابداً و انما فقط من خلال adoquery لتنفيذ كل شيئ و لن يحصل مشاكل طالما هناك شرط where و لا تجلب جميع البيانات وهذا ما تحتاجه

انت تتحكم بكل شي في adoquery اما في ال adotable فيتم جلب كل البيانات إلى الذاكرة و هنا تكمن المشكلة

حتى إذا لم يكن لدينا صور و كان بيانات الجدول هي كتابة لا يجب الاعتماد على adotable في حال كان حجم البيانات كبير

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

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

#6
اقتباس
بالنسبة للجدول الصور لا تتعامل معه من خلال adotable ابداً و انما فقط من خلال adoquery لتنفيذ كل شيئ و لن يحصل مشاكل طالما هناك شرط where و لا تجلب جميع البيانات وهذا ما تحتاجه
صحيح تماما
اقتباس
قمت ببعض التعديلات في عملية التعديل بحيث يتم التعديل عن طريق adoquery ونجحت ولكن لا علم لاي بطريقة الإضافة في adoquery بحث لازلت حتاج إلى استخدام ADOtable في عملية الإضافة
عند جلب الصورة استخدم ADOQuery وعند الإضافة أو التعديل استخدم ADOCommand
#7

مع التأكيد على ملاحظات الاخ وائل والتأكد من امر اخر وهو بالنسبة لحجم قاعدة البيانات وحجم الجدول فهناك تحديد على الحجم من قبل مايكروسوفت لنسخة SQL Server 2000 Personal وال MSDE بحيث ان لا يزيد الحجم عن 2 جيجا بايت لكل قاعدة بيانات . لذا تأكد من النسخة الموجودة عندك

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

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