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

الصفحات: 1 2


تحديث جدول بنتيجة استعلام - fouad - 12-02-2018

السلام عليكم ورحمة الله تعالى وبركاته
لقد قمت بمحاولة تحديث جدول من قاعدة بيانات وذلك بمحاولة تحديثه بنيجة استعلام AbsQuery 
هذا الاخير يحتوي على عدة سجلات تقريبا 5 سجلات 
واضطررت لاستخدام طريقة اخرى وقد نجحت 
 
PHP كود :
ABSQuery3.First;
 
 absVente.First;
 
 while not ABSQuery3.Eof do
 
 begin
   absVente
.edit;
 
  absVente.FieldByName('commission').Value := ABSQuery3.FieldByName('tarif_commission').Value ABSQuery3.FieldByName('quantite').Value;
 
  absVente.post;
 
  ABSQuery3.Next;
 
  absVente.Next;
 
 end
اما الطريقة الاولى التي استعملتها ولم تنجح حيث ان هذه الطريقة تحدث الجدول ولكن السجل الاول فقط وليس جميع السجلات

PHP كود :
ABSQuery2.Close;
 
 ABSQuery2.SQL.Clear;
 
 ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero = numero');
 
 ABSQuery2.ParamByName('commission').Value := ABSQuery3.FieldByName('tarif_commission').Value ABSQuery3.FieldByName('quantite').Value;
 
 ABSQuery2.ParamByName('numero').Value := ABSQuery3.FieldByName('numero').value;
 
 ABSQuery2.ExecSQL;


الصور في المرفقات  

هل من طريقة لتحدث الجدول باستعمال الطريقة الاولى


RE: تحديث جدول بنتيجة استعلام - S.FATEH - 12-02-2018

السلام عليكم لكي يقرأ Query البرامترات يجب ان تضيف نقطتين :
PHP كود :
 ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero =:numero'); 
بدل
PHP كود :
ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero = numero'); 



RE: تحديث جدول بنتيجة استعلام - fouad - 13-02-2018

(12-02-2018, 06:11 PM)S.FATEH كتب : السلام عليكم لكي يقرأ Query البرامترات يجب ان تضيف نقطتين :
PHP كود :
 ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero =:numero'); 
بدل
PHP كود :
ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero = numero'); 

بارك الله فيك اخي

لقد جربتها فوجدت انها تقوم بتعبئة سجل واحد فقط والسجلات الاخرى تبقى فارغة 

الصورة  في المرفقات


RE: تحديث جدول بنتيجة استعلام - Delphi4Us - 16-02-2018

طباع لانك حددت له سجل معين
إقتباس :
كود :
where vente.numero =:numero
قم بحذف هذا السطر لتحديث كل البيانات وليس سجل معين


RE: تحديث جدول بنتيجة استعلام - fouad - 16-02-2018

(16-02-2018, 10:14 PM)Delphi4Us كتب : طباع لانك حددت له سجل معين
إقتباس :
كود :
where vente.numero =:numero
قم بحذف هذا السطر لتحديث كل البيانات وليس سجل معين

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

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


RE: تحديث جدول بنتيجة استعلام - S.FATEH - 17-02-2018

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


RE: تحديث جدول بنتيجة استعلام - fouad - 17-02-2018

(17-02-2018, 01:23 PM)S.FATEH كتب : السلام عليكم وضح العملية التي تود القيام بها

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

ارسلت استعلاما الى قاعدة البيانات ABSOLUTE DATABASE  وحصلت على جواب هذا الاستعلام في مكون ABSQUERY
والذي يحتوي الان عن جدول فيه عدة سجلات وعدة حقول من بينها حقل مهم والذي احتاجه وهو حقل العمولات 

[صورة: dLen0n]

واريد ان اقوم الان بتحديث الحقل الخاص بالعمولات في  جدول ABSTABLE داخل قاعدة البيانات وذلك باستعمال حقل عمولات ABSQUERY
يعني انني اريد نقل العمولات التي قمت بحسابها باستعمال ABSQUERY وادراج هذه القيم في جدول ABSTABLE ولكن بشرط ان يقوم 
باعطاء العمولة لكل بائع 

[صورة: kb41t7]

والحل الوحيد الذي وجدته هو هذا الكود 

PHP كود :
ABSQuery3.First;
 
 while not ABSQuery3.Eof do
 
 begin
   absVente
.Locate('numero',ABSQuery3.FieldByName('numero').Value,[]);
 
  absVente.edit;
 
  absVente.FieldByName('commission').value := ABSQuery3.FieldByName('tarif_commission').Value ABSQuery3.FieldByName('quantite').Value;
 
  absVente.post;
 
  ABSQuery3.Next


وانا الان ابحث عن طريقة اسهل باستعمال SQL يعني QUERY 
وقد سبق لي ان جربت ولكن لم يعمل الاستعلام الذي استعملته 
فكل ما يفعله وهو نقل قيمة واحدة فقط 

[صورة: n4Dx0n]

PHP كود :
ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero =:numero'); 



RE: تحديث جدول بنتيجة استعلام - Ben.Ja - 20-02-2018

عليك كتابة الامر كله في ال Sql لا حاجة لل Parameter

PHP كود :
Update vente,affectation
Set vente
.commission = (affectation.tarif_commission vente.quantite)
Where ?? 



في مكان ?? اكتب ما كتبت بعد where التي في الـABSQuery3

ذكرت جدول affectation بعد update لان هناك استخدام للعمود tarif_commission

في انتظار الرد..

عفوًا هكذا
PHP كود :
ABSQuery2.Close;
 
 ABSQuery2.SQL.Clear;
 
 ABSQuery2.SQL.Add('Update vente,affectation');
 
 ABSQuery2.SQL.Add('Set vente.commission = (affectation.tarif_commission * vente.quantite)');
 
 ABSQuery2.SQL.Add('Where ??'); 
 
 ABSQuery2.ExecSQL



RE: تحديث جدول بنتيجة استعلام - fouad - 22-02-2018

(20-02-2018, 03:53 PM)Ben.Ja كتب :
عليك كتابة الامر كله في ال Sql لا حاجة لل Parameter

PHP كود :
Update vente,affectation
Set vente
.commission = (affectation.tarif_commission vente.quantite)
Where ?? 



في مكان ?? اكتب ما كتبت بعد where التي في الـABSQuery3

ذكرت جدول affectation بعد update لان هناك استخدام للعمود tarif_commission

في انتظار الرد..

عفوًا هكذا
PHP كود :
ABSQuery2.Close;
 
 ABSQuery2.SQL.Clear;
 
 ABSQuery2.SQL.Add('Update vente,affectation');
 
 ABSQuery2.SQL.Add('Set vente.commission = (affectation.tarif_commission * vente.quantite)');
 
 ABSQuery2.SQL.Add('Where ??'); 
 
 ABSQuery2.ExecSQL

      اسف على التاخير في الرد


    هذا الكود لن يعمل يا اخي لانه لا بد من اخد الباراميتر من Query
    الكيري يحتوي على نتائج البحث التي قام بها وهذه النتائج هي التي اريد اعطائها لجدول المبيعات وبالضبط لحقل العمولات

   الكيري قام بمقارنة بين جدولين   جدول المبيعات وجدول القواعد (affectation) 
  وبعد المقارنة قام باستخلاص النتائج والتي اريد اعادة دمجها في جدول المبيعات


RE: تحديث جدول بنتيجة استعلام - Ben.Ja - 23-02-2018

اظن ان الاستعلام الثاني الذي تريد منه ان يأخذ النتائج من الاول ووضعها في جدول المبيعات لا فائدة منه, يمكنك اختصار الكل في استعلام واحد
هل جربت الكود؟ لان لدي نفس الجداول واشتغل معي الاستعلام