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

نسخة كاملة : قاعدة البيانات والملفات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم و رحمة الله

من المعتاد في برامج (تسيير المخازن و الفوترة ) تشكيل ملفات (force directory ) للسنة الجديدة يعني كل سنة و ملف خاص بها و من المعتاد ان نسميها بالفرنسية exercice و بداخل هذه الملفات يتم تشكيل جداول جديدة فارغة لعمليات الشراء و البيع

فائدة هذا ال exercice تتمثل في تخفيف الضغط على جداول الشراء و البيع

كل حديثي هذا يتعلق بجداول paradox و dbase و غيرها

:bye1: والان جاء دوري لطرح السؤال على اصحاب gestion stock : كيف يكون العمل مع قاعدة بيانات SQL SERVER او ACCESS او ماشابههما

المشكل في هذا النوع (SQL SERVER او ACCESS او...) ان الجداول لا يمكن تشكيلها داخل الملفات الجديدة

افيدونا بارك الله فيكم WinkWink
وعليكم السلام ورحمة الله وبركاته
إقتباس :المشكل في هذا النوع (SQL SERVER او ACCESS او...) ان الجداول لا يمكن تشكيلها داخل الملفات الجديدة
في SQL Server أو Access يمكن أن تقوم بحفظ نسخة من قاعدة البيانات وتنشئ أخرى جديدة
يمكن للرجوع إلى أرشيف قاعدة البيانات وإعادة فتحه والاطلاع عليه في أي وقت مادامت هيكلة البيانات هي نفسها
أين المشكلة بالتحديد؟
حاول التوضيح أكثر.
صباح الخير
في SQL Server أو Access يمكن أن تقوم بحفظ نسخة من قاعدة البيانات وتنشئ أخرى جديدة

فلنناقش هذا الخيار: يعني مع مطلع كل سنة ننشئ قاعدة بيانات جديدة داخل مجلد جديد هل هذا عملي و ناجع? وماذا عن البيانات النهائية للسنة القديمة و البيانات الابتدائية للسنة الجديدة هل نعمل استعلام query لتحويلها
أخي هنالك عدة طرق لعمل ما تقول عنه ولكن أبسط طريقة هي عمل نسخ أحتياطي لقاعدة البيانات عند الإنتهاء من كل جلسة عمل ... ويمكن ذلك فقط ضمن الحدث FormDestroy لأن القاعدة آثناء العمل تكون مفتوحة ولا يمكن نسخها ويتم ما ذكرته بسهولة على سبيل المثال
PHP كود :
f1:=TFileStream.Create(ExtractFilePath(Application.ExeName)+'DB3.MDB',fmopenread or fmsharedenywrite);
f2:=TFileStream.Create(s+'db3.mdb',fmcreate);
f2.CopyFrom(f1,f1.Size);
f1.Free;
f2.Free; 

كما يمكن لك أن تحتفظ بنسخة من قاعدة البيانات تكون فارغة وتقوم عند نهاية العام الحالي بنسخ القاعدة القديمة إلى المجلد الذي عينته ليكون مسار لملفات النسخ الإحتياطي وتعيد تسمية هذا المجلد ليحتوي في أسمه على التاريخ الذي يمثل السنة الفائتة وتقوم بعد ذلك بنسخ القاعدة الفارغة وتعيين مسار القاعدة الجديدة ضمن ال ConnectionString الذي يكون ضمن قيمة ديناميكية (قيمة ضمن مسجل النظام أو ملف ini .....إلخ) وبذلك تكون قد فتحت قاعدة بيانات جديدة لبيانات العام الجديد...

العمل السابق يتم برمجياً ولا يجري قدح الأحداث السابقة إلا عند تغيير قيمة العام الحالي.. والإنتقال إلى عام جديد .... ****ا أن أكون قد وفقت لشرح ما يجول في مخيلتك...

وفقك الله .
كاقتراح، يمكن استخدام الرسورس لتخزين نموذج من قاعدة البيانات إذا كان حجمها صغير (MS Access).
الطريقة من هنا:
إستخدام ملفات الريسورس في دلفي
بالتوفيق.
صراحة لم افهم هذه الطريقة
ثم ماذا عن البيانات النهائية للسنة القديمة كيف تكون ابتدائية للسنة الجديدة
إقتباس :ثم ماذا عن البيانات النهائية للسنة القديمة كيف تكون ابتدائية للسنة الجديدة

أعطني مثال على ذلك وفقك الله ....حتى تتوضح فكرتك تماماً...
صنع برنامج gestion stock et facturation يتطلب جداول article,client fournisseur, achat ,vente, ligne achat, ligne vente,reglement achat ,reglement vente,stock
الكل على ما يرام:
مرت شهور على العمل بهذا البرنامج و بدا الثقل يظهر على الجداول من كثرة البيانات
لهذا فكرت في انشاء الملفات : كل سنة و ملفها: ملف 2007 ملف 2008 ملف 2009 .......
في راس السنة 2010 نقوم بانشاء الملف 2010 يحتوي على الجداول السالفة الذكر ولكن :
نفترض انني اشتريت يوم 30/12/2009 شاشة siemens بكمية قدرها 4 و بعت يوم 31/12/2009 شاشة واحدة اذن بقي في المخزن 3 شاشات
و يوم 01/01/2010 انشات ملف 2010 وفيه جداول الشراء و البيع فارغة اي نبتدئ فاتورة الشراء برقم 1 وكذلك فاتورة البيع ولكن عندي في المخزن 3 شاشات و هذا ما يعرف بالقيمة الابتدائية
لاحظ معي جيدا
3 شاشات=قيمة نهائية في جدول المخزن سنة 2009
3 شاشات=قيمة ابتدائية في جدول المخزن سنة 2010
وشكرا

الامر بسيط
انسخ قاعدة البيانات كاملة باسم جديد مثلا من 2009 الى 2010
هناك جداول يجب افراغها / حذف جميع السجلات
مثل achat ,vente, ligne achat, ligne vente
هناك جداول تتركها كما هي او تغير بها ما يجب (هذا يرجع لتصميمك للقاعدة وكيفية عمل برنامجك)
مثل article,client fournisseur,Stock
وبالتوفيق
b.m.abdelaziz كتب :
انسخ قاعدة البيانات كاملة باسم جديد مثلا من 2009 الى 2010

نظريا : حل منطقيا

شكرا يا معلم
الصفحات : 1 2