delphi4arab منتديات دلفي للعرب
لجلب معطيات حقل من جدول الى اخر - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : لجلب معطيات حقل من جدول الى اخر (/showthread.php?tid=726)



لجلب معطيات حقل من جدول الى اخر - medreg - 23-03-2009

هذا كود وضعته لجلب من جدول إلى أخر لكنه يجلب كل القيم حتى لو كانت مكررة
IF table1Cde.value='1' and table1SCde.value='1-01' then
table2.insert;
أقصد بهذا الكود ما يلي
إذا كان الحقلين الموجودين في الجدول 1 يحملاني هذه القيمة أضف هذا السطر في الجدول الثاني
بشرط إن كان الحقلين متكررين بنفس القيمة في الجدول 1 أضف أحدهما فقط في الجدول الثاني
وهكذا إلى أن ينتهي
كما هو موضح في الصورة
هنا السؤال مطروح
ما ذا يجب علي أن أفعل ما هو الكود المناسب لكي أضيف أحد السطور


لجلب معطيات حقل من جدول الى اخر - gigi - 23-03-2009

استخدم المكون tbatchmove


لجلب معطيات حقل من جدول الى اخر - medreg - 23-03-2009

gigi كتب :استخدم المكون tbatchmove

شكرًا أخي العزيز
فعلاً
لكن المشكلة ليست في استعمال المكون أعلم أن المكون يصلح لمثل هذه العمليات لكن المشكل هو تكرار محتو الحقل

للتوضيح أكثر
الجدول1 مكون من أربع حقول وهي :
الحفل الأول : N
الحقل الثاني : Cde
الحقل الثالث : SCde
الحقل الرابع : Montant
المكون ديبقريد1 تابع لجدول1 يحتوي على 08 تسجيلات أي 08 أسطر و 04 أعمدة
التسجيل الأول مكرر مرتين واختلافهما في الحفل N و Montant فقط
الحقول التي أحتاج إلى إضاقتها في الجدول2 هي Cde , SCde فقط
المطلوب هو :
إذا كان الحقل Cde و SCde الموجود في السطر الأول للديبقريد1 مكرر في سطر أخر يجب أن يضيفه في
الجدول 2 مرة واحدة وليس مرتين كما هو موضح في المرفق أنظر للمرفق ولا تخف المرفق مفحوص وخالي من الفيروسات
هذا ما اردت توضيحه
ملاحظة صغير عن المرفق
المرفق عبارة عن صورة 010.bmp
لأنني لم أعرف كيف أدمج صورة في الموضوع


لجلب معطيات حقل من جدول الى اخر - gigi - 24-03-2009

العفو .....

المشكلة اني اتصفح الموقع من خلال هاتفي النقال فلا استطيع الرد بشكل وافي هذا عدا اني لم افهم قصدك ولكن متى ماتمكنت من الدخول من خلال الحاسوب احاول ذلك لكن اظن لو عملت فيلتر في الجدول الثاني معتمد على قيمة من الجدول الاول وتعمل شرط if لعدد السجلات للجدول الثاني لو اكثر من 1 هنا قم باخد البيانات بحلقة for تبدأ من صفر وتنتهي بعدد السجلات ناقص واحد

اتمنى ان تجد الحل بهذه الطريقة


لجلب معطيات حقل من جدول الى اخر - tempuser - 25-03-2009

قم بعمل ترتيب للجدول بالاعتماد على الحقلين الثاني والثالث
كود :
Select * From Table1 Sort by CDE, SCDE; In Delphi Query1.Open; While Not Query1.EOF Do Begin {Keep Previous Values} Montant:=Query1Montant.AsInteger; CDE:=Query1CDE.AsInteger; SCDE:=Query1SCDE.AsString; Query1.Next; {Compare Previous and Next Values} IF (CDE=Query1CDE.AsInteger) And (SCDE=Query1SCDE.AsString) Then Begin {Write the Code To Insert Your Values In The Second Table} End; While (CDE=Query1CDE.AsInteger) And (SCDE=Query1SCDE.AsString) Do {Skip Same Rows} Query1.Next; End;



لجلب معطيات حقل من جدول الى اخر - medreg - 25-03-2009

tempuser كتب :قم بعمل ترتيب للجدول بالاعتماد على الحقلين الثاني والثالث

مشكور على هذه المعلومة
لكن أود ان اطرح سؤال
أنا لا اتعامل في برنامجي مع مكون Query ولم اتعامل معه قط بل اتعامل مع المكون Table و DataSource
وإن كان من الضروري إستعمال المكون Query وضح لي طريقة التعامل معه
وجزاكم الله عنا كل خير


لجلب معطيات حقل من جدول الى اخر - tempuser - 25-03-2009

اداة الجدول تشبه في عملها الى حد كبير اداة الاستعلام ولا يوجد فروقات كبيرة بنهم إلا أن أداة الاستعلام يفضل استخدمها للقراءة وعدم التعديل

يتم التعامل معها كما تتعامل مع أداة الجدول وسوف أقوم بالتوضيح

اضاف مكون TQuery

غير تسميته الىQuery1

نفرض ان اسم الجدول لديك هو TblSource

اختر المكون السابق Query1

به الخاصية SQL اضغط على الزر '...' يضهر محرر اكتب به
كود :
Select * From TblSource Order By CDE, SCDE;
اضغط<OK>

بعد ذلك تعامل معها وكأنها TTable


لجلب معطيات حقل من جدول الى اخر - medreg - 25-03-2009

جزاكم الله عنا كل خير
بدأت أستوعب نوعًا ما التعامل مع Query
لكن الشيءالذي لم أفهمه هو بعد أن ربطت Query1 مع Datasource1
كيف يتم تصفية كل ما سيضاف الى T_DESTINATION
إليك هذا المثال المرفق


لجلب معطيات حقل من جدول الى اخر - arab_co - 02-04-2009

[B][FONT="Arial Black"]بسم الله الرحمن الرحيم
السلام على من اتبع الهدى
انصحك يااخي باستعمال المكون patchmove من القائمة BDE فهو مكون رائع يقوم بالعمليات التالية
1-نسخ جميع التسجيلات من قاعدة بيانات الى اخرى
2-نسخ التسجيلات الناقصة من قاعدة بيانات الرئيسة الى التابعة ....الخ فعليك بتجربته [B]
[/B][/B]