كيف يمكنني ان احفظ معطيات جدول في جدول أخر باستعمال absolute
#1
المقصود بهذا السؤال هو :
لدي برنامج يحتوي على قاعدة بيانات من نوع absolute
واستعمله شهريًا
قاعدة البيانات تحتوي على ستة حقول وهي كالتالي :
NUM من نوع smallint
GRP من نوع String
SRP من نوع String
MT_ANT من نوع Float وهو مخصص للمبلغ السابق أي MT_TOT السابق
MT_MS من نوع Float وهو مخصص للمبلغ الحالي
MT_TOT من نوع Float وهو يساوي MT_ANT + MT_MS

ولنفترض ان لدي جدولين الأول يسمى ABSTABLE1
والثاني يسمى ABSTABLE_ARCHIVE

كل ما ابحث عنه هو :
1- ماهي الطريقة التي يجب علي استعمالها لحفظ المعطيات الأخيرة للجدول ABSTABLE1 في جدولABSTABLE_ARCHIVE كلما تم التغيير في المعطيات الحالية بالجدول ABSTABLE1 .
2- ماهي الطريقة التي يجب استعمالها لإستدعاء الحقل MT_TOT الموجود بالجدول ABSTABLE_ARCHIVEالذي تم به حفظ المعطيات الأخيرة ووضع محتوياته بالحقل MT_ANT الموجود بالجدول ABSTABLE1 الحالي
ملاحظة
بطبيعة الحال في بداية إستعمال البرنامج تكون قاعدة البيانات فارغة وعند الشروع في إدخال المعطيات يكون الحقل MT_ANT فارغ وهذا يعود لعدم وجود معطيات في الجدول ABSTABLE_ARCHIVE
اما في استعمال البرنامج مرة ثانية يجب ان يتم جلب المعطيات الموجودة بالحقل MT_TOT من الجدول ABSTABLE_ARCHIVE الى الحقل MT_ANT الموجود بالجدول ABSTABLE1 وهذا طبعا بعد حفظ معطيات السابقة
اسأل الله التوفيق
الرد
#2
السلام عليكم ورحمة الله

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

اين المشكل بالضبط ؟
الرد
#3
لقد حاولت استعمال مكون BatchMove مع ABSTable
لكن لم أجد في خصائصه مكان
Sible و Source
أما عن استعمال SQL فكيف ذلك
وكيف استعمل الحلقة
الرد
#4
السلام عليكم

تعرف ماذا ساقولك لك:
ارفق محاولتك
الرد
#5
b.m.abdelaziz كتب :ارفق محاولتك

سأفعل بعد 10 دقائق سأرفعها إن شاء الله
الرد
#6
مثال مرفق:
المركبة batchmove
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#7
medreg كتب :سأفعل بعد 10 دقائق سأرفعها إن شاء الله

اليك المرفق

بالنسبة للزر المكتوب عليه Transferer to TB_1
يعني يبحث في الجدول TB_ARCHIVE على MT_TOT المقابل للـ GRP و SRP
ويضعه في TB_1 في MT_ANT المقابل للـ GRP و SRP
الرد
#8
kachwahed كتب :مثال مرفق:
المركبة batchmove

مشكور أخي لكن كيف اتعامل معها وانا اتعامل مع قاعدة البيانات absolute
الرد
#9

القيت نظرة على المرفق ان كان العدد صغيرا بدلا من BatchMove يمكنك فعل ذلك برمجيا
تقريبا نفس ما كان مكتوب بالمرفق بتصرف
للحفظ
كود :
TB_1.First; while not TB_1.Eof do begin if TB_Archive.Locate('GRP;SRP',VarArrayof([TB_1GRP.AsString,TB_1SRP.AsString]),[loCaseInsensitive]) then TB_Archive.Edit else TB_Archive.Append; TB_ArchiveGRP.AsString:= TB_1GRP.AsString; TB_ArchiveSRP.AsString:= TB_1SRP.AsString; TB_ArchiveMT_TOT.AsFloat:=TB_1MT_TOT.AsFloat; TB_Archive.Post; TB_1.Next; end;
للاسترجاع

كود :
TB_ARCHIVE.First; while not TB_ARCHIVE.Eof do begin if TB_1.Locate('GRP;SRP',VarArrayof([TB_ARCHIVEGRP.AsString,TB_ARCHIVESRP.AsString]),[loCaseInsensitive]) then TB_1.Edit else TB_1.Append; TB_1GRP.AsString:= TB_ARCHIVEGRP.AsString; TB_1SRP.AsString:= TB_ARCHIVESRP.AsString; TB_1MT_TOT.AsFloat:= TB_ARCHIVEMT_TOT.AsFloat; TB_1.Post; TB_ARCHIVE.Next; end;
يبقى عليك اضافة حقل او شيئ ما تحدد به الشهر
ملاحظتين:
لم تذكراي شيئ عن قيمة الحقل NUM بالجدول الاول الذي يبقى دون قيمة عند الاسترجاع
بالنسبة للمكون ABSDatabase1 من الاحسن ان تكون DataBaseName دون مسار test_A.ABS
الرد
#10
السلام عليكم:
عفواً اخي لم يشتغل البرنامج هل يمكن ارفاق المكون ..
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم