![]() |
|
مدى سعة قاعدة معطيات access - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : مدى سعة قاعدة معطيات access (/showthread.php?tid=6843) |
مدى سعة قاعدة معطيات access - itoumoui - 04-03-2015 السلام عليكم إخواني الكرام سوالي هو على مدى استعاب قاعدة بيانات access علما ان لدي برنامج تسيير مخزون به جداول منها فواتيير منها مبيعات ومشتريات وسلع هذا الأخير الذي يمكنه تخزين صورة لكل سلعة. 01-ماذا لو طالت مدة استعمال البرنامج وكبرت قاعدة البيانات ما مدى استيعابها عند access 02-اخترت access لانه في غالب الأحيان موجود على الحواسيب الأخرى 03- حاولت البحث عن محرك البيانات من نوع آخر مثلا SQLserver لكنني في البرنامج اعتمدت ال access من الأول وكيف لي العودة للأخر. أفيدونا بارك الله فيكم . مدى سعة قاعدة معطيات access - الكاسر الآخر - 04-03-2015 حجم قاعدة البيانات في أكسس تصل إلى 2 جيجا بايت أما في Sql server Express تصل إلى 10 جيجا بايت أما في Sql server تصل إلى 500 تيرابايت ممكن أن تقلص حجم البيانات وذلك بحفظ صورة السلعة في مجلدات وتحتفظ بمساراتها فقط في قاعدة البيانات مدى سعة قاعدة معطيات access - itoumoui - 04-03-2015 بارك الله فيك أخي الكاسر على التوضيحات هلا شرحت لنا كيفية وضع الصورة في مجلد وعمل رابط لها ولو باختصار مدى سعة قاعدة معطيات access - الكاسر الآخر - 04-03-2015 إذا كنت تستخدم 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);طبعا هذا الكود هو كود قياسي قمت بكتابته إعتمادا على ما فكرت فيه ولهذا يمكنك أن تقوم بالتعديلات التي تراها مناسبة لبرنامجك مدى سعة قاعدة معطيات access - itoumoui - 05-03-2015 بارك الله فيك أخي الكاسر سأجربه و أخبرك لكني فكرت في تغيير محرك قاعدة المعطيات إلى SQL server رغم اننه يستوجب أنك تثبته في الحاسب ما رأيك؟ مدى سعة قاعدة معطيات access - الكاسر الآخر - 05-03-2015 يمكنك ذلك ويمكنك أن تستخدم sql server express لأن حجم البيانات في برنامجك يعتبر صغير مقارنة بإمكانيات Sql server عموما .. لو عملت عملية حسابية بسيطة ستجد أن بيانات الصورة لن تصل إلى الحجم التي تتخيله فمثلا لو أن حجم الصورة 100 كيلو بايت فإن 1000 سلعة ستحجز حوالي 98 ميغابايت في قاعدة البيانات إضافة إلى 3 أو 4 ميغابايت لبقية البيانات وبعض الميغا بايت للإستعلامات وغيرها ولك أن تقارن باقي الحجم المتبقي قي قاعدة البيانات. |