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

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

الصفحات: 1 2 3


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - أبو معاذ - 05-04-2018

انت تقوم بجلب المعلومات المراد تصدريها عن طريق dataset مثل adoquery adotable  ibquery .... الخ.
هذا dataset يمكن التعامل معها سطرا سطرا بواسطة حلقة while.
هل أكمل؟


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 05-04-2018

(05-04-2018, 01:57 PM)أبو معاذ كتب : انت تقوم بجلب المعلومات المراد تصدريها عن طريق dataset مثل adoquery adotable  ibquery .... الخ.
هذا dataset يمكن التعامل معها سطرا سطرا بواسطة حلقة while.
هل أكمل؟

يمكن ان تكمل ادا كان ممكن بتسمية source et destination و بارك الله فيك


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - أبو معاذ - 05-04-2018

طيب ،
لنفرض أن ال Source تحوي الاستعلام التالي :

Select Code1 , Code2
From Table1
Where  c1= c2

ال Destination  تحوي الاستعلام التالي :

Insert into Table2 (A1,A2) Values (:b1 , :b2)

لنجري الآن عملين نقل البيانات :
كود :
Source.close; Source.open; While   Not  Source.eof  do  //  eof = End Of File Begin destination.close; ;destination.paramettre('b1').value := source.Code1.value ;destination.paramettre('b2').value := source.Code2.value destination.execSql; source.next; End;

إن شاء الله تكون مفيدة. Blush


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 05-04-2018

(05-04-2018, 07:56 PM)أبو معاذ كتب : طيب ،
لنفرض أن ال Source تحوي الاستعلام التالي :

Select Code1 , Code2
From Table1
Where  c1= c2

ال Destination  تحوي الاستعلام التالي :

Insert into Table2 (A1,A2) Values (:b1 , :b2)

لنجري الآن عملين نقل البيانات :
كود :
Source.close; Source.open; While   Not  Source.eof  do  //  eof = End Of File Begin destination.close; ;destination.paramettre('b1').value := source.Code1.value ;destination.paramettre('b2').value := source.Code2.value destination.execSql; source.next; End;

إن شاء الله تكون مفيدة. Blush
بارك الله فيك اخي ابو معاد 
لكن هدا الجدول يحتوي على اكثر من 25 حقل 
و اظن ان كتابة اكثر من 25 سطر كثير نوعا ما بالاضافة انه لم يسبق لي ان استعملت براميتر و لكن هدا لا يهمني يمكن فهمه بسرعة 
المشكل عدد السطور الثي سوف انفدها في برماجي و خاصة انني اريد نقل معطيات 7  جداول بنفس الطريقة
هل من طريقة اسهل و اخف


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - أبو معاذ - 05-04-2018

ما في مشكلة ،
عوضا عن تسمية الحقول باسمها الحقيقي ، يمكنك ان تستعمل ترتيبها.
بمعنى ، عندك جدول فيه الحقول التالية :
C1 ,C2,C3...
لاستدعائها ، اما نستعمل اسم الحقل ، او ترتيبه.
Source.fields [o]  هو الحقل C1  وهكذا....
While not source.eof do
Begin
For i:=o to 25 do
Begin
Destination.close

Destination.parametrs[i]  := source.fileds[i]
Destination.exexsql
Source.next
End
 عذرا على الأخطاء لاني اكتب بواسطة  هاتفي.
وفقك الله.


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 05-04-2018

(05-04-2018, 09:49 PM)أبو معاذ كتب : ما في مشكلة ،
عوضا عن تسمية الحقول باسمها الحقيقي ، يمكنك ان تستعمل ترتيبها.
بمعنى ، عندك جدول فيه الحقول التالية :
C1 ,C2,C3...
لاستدعائها ، اما نستعمل اسم الحقل ، او ترتيبه.
Source.fields [o]  هو الحقل C1  وهكذا....
While not source.eof do
Begin
For i:=o to 25 do
Begin
Destination.close

Destination.parametrs[i]  := source.fileds[i]
Destination.exexsql
Source.next
End
 عذرا على الأخطاء لاني اكتب بواسطة  هاتفي.
وفقك الله.

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


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 09-04-2018

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

PHP كود :
begin

DM1
.Source.close;
DM1.Source.open;

While 
Not DM1.Source.eof  do  //  eof = End Of File

Begin

with DM1
.destination do

 
     begin
      Active
:=False;
 
     SQL.Clear;
 
     SQL.Add('Insert into customer (id, FIRSTNAME,LASTNAME,CITY,COUNTRY)');
 
     SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5)');
 
     Params[0].Value := DM1.SourceID.Value;
 
     Params[1].Value := DM1.SourceFIRSTNAME.Value;
 
     Params[2].Value := DM1.SourceLASTNAME.Value;
 
     Params[3].Value := DM1.SourceCITY.Value;
 
     Params[4].Value := DM1.SourceCOUNTRY.Value;
 
     ExecSQL;
 
     end;
DM1.source.next;
End; 

و لكن للاسف الطريقة الثانية والثى هدفها هو ان يكون الكورس مختصر لم تمشي معي الكود و الخطأ فيمايلى


PHP كود :
var
i : integer;
Begin

DM1
.Source.close;
DM1.Source.open;

While 
Not DM1.Source.eof  do  //  eof = End Of File

Begin

for i:= 0 to 4 do

with DM1.destination do

 
     begin
      Active
:=False;
 
     SQL.Clear;
 
     SQL.Add('Insert into customer (id, FIRSTNAME,LASTNAME,CITY,COUNTRY)');
 
     SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5)');
 
     Params[i].Value := DM1.source.Fields[i].Value;
 
     ExecSQL;
 
     end;
DM1.source.next;
End; 
[صورة: xfigrtons4i7.png]


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 09-04-2018

السلام عليكم

ما سبب هدا الخطأ

PHP كود :
var
i : integer;
Begin

DM1
.Source.close;
DM1.Source.open;

While 
Not DM1.Source.eof  do  //  eof = End Of File

Begin

for i:= 0 to 4 do

with DM1.destination do

 
     begin
      Active
:=False;
 
     SQL.Clear;
 
     SQL.Add('Insert into customer (id, FIRSTNAME,LASTNAME,CITY,COUNTRY)');
 
     SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5)');
 
     Params[i].Value := DM1.source.Fields[i].Value;
 
     ExecSQL;
 
     end;
DM1.source.next;
End; 



[صورة: xfigrtons4i7.png]


RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - Ben.Ja - 09-04-2018

حاول إضافة
PHP كود :
params[1].DataType:= ftString; 


قبل

PHP كود :
Params[i].Value := DM1.source.Fields[i].Value; 



RE: كيف يمكن نقل سجيلات من جدول الى اخر باستعمال الفلترة مع العلم ان DatabaseName مختلفة - AbdouProg - 10-04-2018

(09-04-2018, 10:55 PM)Ben.Ja كتب : حاول إضافة
PHP كود :
params[1].DataType:= ftString; 
قبل
PHP كود :
Params[i].Value := DM1.source.Fields[i].Value; 

السلام عليكم و رحمة الله و بركاته
بارك الله فيك اخي لقد دهب الخطأ لن المشكل الان هو ان نقل السجيلات يثم بالحقل و الباقي فراغ كما هو موضح في الصورة و الكود المستعمل هو الثالي

PHP كود :
While Not DM1.Source.eof  do  //  eof = End Of File

Begin

for i:= 0 to 4 do

with DM1.destination do

 
     begin
      Active
:=False;
 
     SQL.Clear;
 
     SQL.Add('Insert into customer (id, FIRSTNAME,LASTNAME,CITY,COUNTRY)');
 
     SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5)');
 
     params[0].DataType:= ftAutoInc ;
 
     params[1].DataType:= ftString;
 
     params[2].DataType:= ftString;
 
     params[3].DataType:= ftString;
 
     params[4].DataType:= ftString;
 
     Params[i].Value := DM1.source.Fields[i].Value;
 
     ExecSQL;
 
     end;
DM1.source.next;
End; 


[صورة: mldv3etkjmy9.png]