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=1481)



نسخ حقل من جدول الي اخر - galag8 - 07-01-2010

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله تعالي وبركاته

اذا كان لدي جدولين في الاكسس وبهما الحقول التاليه
جدول1 به
الاسم _ الرقم _ تاريخ الميلاد

جدول2 به
الاسم _ الرقم _ تاريخ الميلاد

اي ان الحقول مكرره في الجدولين

وقمت بادخال سجل في الجدول1
كيف يمكن بضغطه زر واحده ان اقوم بنقل السجل الذي قمت ب إدخاله في جدول1 الي جدول 2
بالدلفي .اي عمل نسخ من الجدول الاول الي الجدول الثاني.

وبارك الله فيكم.


نسخ حقل من جدول الي اخر - kachwahed - 07-01-2010

وعليكم السلام ورحمة الله وبركاته
إقتباس :اي ان الحقول مكرره في الجدولين
قبل انطلاق أي مشروع قواعد بيانات ينبغي إعداد نموذج للجداول والعلاقات
وعند تصميم النموذج ينبغي ألا نجد جداول مكررة ولا نضطر فيما بعد لتكرار سجلات
وبالتالي لن نضطر لعمل مثل هذا.
حاول إعادة صياغة الجداول بطريقة أخرى، بحيث مثلا يكون:
الاسم _ الرقم _ تاريخ الميلاد
في جدول منفرد ثم يرتبط الجدولان به من حقل غريب (Foreign key).

هذا الإجراء يقوم بتكرار السجل في نفس الجدول:
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
  
i: Integer;
  
QueryCopy: TQuery;
begin
    QueryCopy 
:= TQuery.Create(Self);
  
with QueryCopy do
    
begin
      DatabaseName 
:= Table1.DatabaseName;
      
SQL.Clear;
      
SQL.Add('SELECT * FROM biolife');
      
Open;
      
Bookmark := Table1.Bookmark;
    
end;
  try
    
With QueryCopy do
    
begin
      Table1
.Append;
      
Table1.Fields.Fields[0].AsInteger := Table1.RecordCount +1;
      for 
i := 1 to  FieldCount -1 do
        
Table1.Fields.Fields[i].assign(Fields.Fields[i]);
      try
        
Table1.Post;
      
Except on Exception do
        
Table1.Cancel;
      
end;
    
end; // with
  
finally
    
QueryCopy.Free;
  
end;
end; 

إجراء آخر،بطريقة أخرى:
PHP كود :
procedure DuplicateCurrentRecord(FirstField: Variant; aDataSet : TDataSet);
var
  
Data : array of variant;
  
aRecord : array of TVarRec;
  
i : integer;
  
max : integer;
begin
  max 
:= aDataSet.fields.count -1;
  
// set the lenghth of the arecord array to be the same as the number of
  // elements in the data array
  
SetLength(aRecord, max+1);
  
SetLength(Data, max+1);

  
// set the variant type pointers to the data array
  
for i := 0 to max do
  
begin
    aRecord
[i].VType := vtVariant;
    
aRecord[i].VVariant := @Data[i];
  
end;

  
// Copy the Record to the Array
  
for i := 1 to max do
    
Data[i] := aDataSet.fields[i].value;
    
Data[0] := FirstField;

  
// finally append the record in one go
  
aDataSet.AppendRecord(aRecord);
end; 
بالتوفيق.



نسخ حقل من جدول الي اخر - galag8 - 09-01-2010

سلام عليكم

لكن اذا كان لدي موظفين وانتهت فتره خدمتهم بالموسسه لكن لا **** مسحهم من الجدول بحيث اذا احتجت الي معلوماتهم اقوم بالرجوع لها لكن في نفس الوقت اود وضعهم في جدول منفصل مثلا يسمي الارشيف لذلك اقوم بنقلهم من الجدول الرئيسي الي جدول الارشيف هل من طريقه اخري غير هذه.


نسخ حقل من جدول الي اخر - nabilkeb - 09-01-2010

قد يفيدك هذا أيضــا : راجع العنصر الخامس هنــــــــــــــــا
راجع أيضا الصفحة 69 من كتاب لغة البرمجة دلفي لمحمد خالد ناصر آغا .


بالتوفيق أحي العزيز .


نسخ حقل من جدول الي اخر - محمد عبد العزيز - 14-01-2010

إقتباس :ان لدي موظفين وانتهت فتره خدمتهم بالموسسه
ضف للجدول حقل منطقي Boolean
ضع به القيمة True في حالة كان يعمل
ضع القيمة False في حال ترك العمل
وفي تعاملك مع الجدول خذ بعين الاعتبار ذلك الحقل بحيث يظهر فقط المستخدمي ذوي القيمة True
وبالتوفيق



نسخ حقل من جدول الي اخر - galag8 - 15-01-2010

شكرا للجميع وبارك الله فيكم

اذا في هذه الحاله سادخل الحقل المنطقي في جميع عمليات الفلتره التي اقوم بها بحيث يقوم بالفلتره فقط للذين لهم القيمه true اليس كذلك؟


نسخ حقل من جدول الي اخر - محمد عبد العزيز - 15-01-2010


نعم، في اي تعامل مع الجدول، فلترة او استعلام sql
وبالتوفيق