delphi4arab منتديات دلفي للعرب

نسخة كاملة : مدى سعة قاعدة معطيات access
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم إخواني الكرام
سوالي هو على مدى استعاب قاعدة بيانات access
علما ان لدي برنامج تسيير مخزون به جداول منها فواتيير منها مبيعات ومشتريات وسلع هذا الأخير الذي يمكنه تخزين صورة لكل سلعة.
01-ماذا لو طالت مدة استعمال البرنامج وكبرت قاعدة البيانات ما مدى استيعابها عند access
02-اخترت access لانه في غالب الأحيان موجود على الحواسيب الأخرى
03- حاولت البحث عن محرك البيانات من نوع آخر مثلا SQLserver لكنني في البرنامج اعتمدت ال access من الأول وكيف لي العودة للأخر.


أفيدونا بارك الله فيكم .
حجم قاعدة البيانات في أكسس تصل إلى 2 جيجا بايت
أما في Sql server Express تصل إلى 10 جيجا بايت
أما في Sql server تصل إلى 500 تيرابايت

ممكن أن تقلص حجم البيانات وذلك بحفظ صورة السلعة في مجلدات وتحتفظ بمساراتها فقط في قاعدة البيانات
بارك الله فيك أخي الكاسر على التوضيحات
هلا شرحت لنا كيفية وضع الصورة في مجلد وعمل رابط لها ولو باختصار
إذا كنت تستخدم Ado
يجب أن يكون لديك حقل في جدول السلعة ولنفرض أن اسمه Image_Path من النوع الحرفي لتخزن فيه مسار الصورة

- قم بوضع مجموعة من صور السلع في مجلد داخل المجلد الرئيسي للبرنامج ولنفرض أن اسمه Pics
- قي الفورم الخاص بإدخال بيانات السلع قم بوضع مكون TOpenDialog وكذلك أضف زر وسمه (إضافة صورة) وأيضا ضع مكون صورة
- قم بإضافة Unit إسمها jpeg في uses باعتبار أن أغلب الصور هي من نوع Jpg
- م بتعريف متغير عام Global وسمه ImgPath من نوع String
- في زر إضافة صورة أكتب الكود التالي

كود :
Var Res : Integer; begin image1.Picture.Bitmap.FreeImage; OpenDialog1.Filter := 'Image files|*.jpg;*.jpeg;*.Png;*.bmp;*.gif;*.tif;*.tiff'; if OpenDialog1.Execute Then begin ImgPath := ExtractFilePath(Application.ExeName)+'pics\'+ExtractFileName(OpenDialog1.FileName); if(OpenDialog1.FileName <> ImgPath) Then begin Res := (MessageDlg('الصورة التى اخترتها ليست موجودة ضمن مجلدالسلع..هل تريد نسخها ؟',mtInformation,[mbYes,mbNo,mbCancel],0)); if Res = mrYes then begin if(CopyFile(PChar(OpenDialog1.FileName), PChar(ImgPath), false)) Then ShowMessage('تمت عملية النسخ') else ShowMessage('فشلت عملية النسخ'); end else if Res = mrNo then ImgPath := OpenDialog1.FileName else if Res = mrCancel then ImgPath := ''; end; if ImgPath <> '' Then image1.Picture.LoadFromFile(ImgPath); end;

- بعد ذلك إفتح الكود الخاص بزر الإضافة إلى قاعدة البيانات وأضف السطر الآتي قبل post

كود :
if ImgPath <> '' Then AdoTable1.FieldByName('Image_Path').AsString := ImgPath;

- في عملية عرض البيانات من قاعدة البيانات يمكن أن تكتب الكود التالي في زر عرض البيانات
كود :
if AdoTable1.FieldByName('Image_Path').AsString <> '' then Image1.Picture.LoadFromFile(AdoTable1.FieldByName('Image_Path').AsString);

طبعا هذا الكود هو كود قياسي قمت بكتابته إعتمادا على ما فكرت فيه ولهذا يمكنك أن تقوم بالتعديلات التي تراها مناسبة لبرنامجك
بارك الله فيك أخي الكاسر
سأجربه و أخبرك
لكني فكرت في تغيير محرك قاعدة المعطيات إلى SQL server رغم اننه يستوجب أنك تثبته في الحاسب
ما رأيك؟
يمكنك ذلك ويمكنك أن تستخدم sql server express لأن حجم البيانات في برنامجك يعتبر صغير مقارنة بإمكانيات Sql server

عموما .. لو عملت عملية حسابية بسيطة ستجد أن بيانات الصورة لن تصل إلى الحجم التي تتخيله
فمثلا لو أن حجم الصورة 100 كيلو بايت فإن 1000 سلعة ستحجز حوالي 98 ميغابايت في قاعدة البيانات إضافة إلى 3 أو 4 ميغابايت لبقية البيانات وبعض الميغا بايت للإستعلامات وغيرها ولك أن تقارن باقي الحجم المتبقي قي قاعدة البيانات.