السلام عليكم ورحمة الله تعالى وبركاته
لقد قمت بمحاولة تحديث جدول من قاعدة بيانات وذلك بمحاولة تحديثه بنيجة استعلام 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;
اما الطريقة الاولى التي استعملتها ولم تنجح حيث ان هذه الطريقة تحدث الجدول ولكن السجل الاول فقط وليس جميع السجلات
قم بحذف هذا السطر لتحديث كل البيانات وليس سجل معين
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
(17-02-2018, 01:23 PM)S.FATEH كتب : السلام عليكم وضح العملية التي تود القيام بها
وعليكم السلام ورحمة الله وبركاته
ارسلت استعلاما الى قاعدة البيانات ABSOLUTE DATABASE وحصلت على جواب هذا الاستعلام في مكون ABSQUERY
والذي يحتوي الان عن جدول فيه عدة سجلات وعدة حقول من بينها حقل مهم والذي احتاجه وهو حقل العمولات
واريد ان اقوم الان بتحديث الحقل الخاص بالعمولات في جدول ABSTABLE داخل قاعدة البيانات وذلك باستعمال حقل عمولات ABSQUERY
يعني انني اريد نقل العمولات التي قمت بحسابها باستعمال ABSQUERY وادراج هذه القيم في جدول ABSTABLE ولكن بشرط ان يقوم
باعطاء العمولة لكل بائع
والحل الوحيد الذي وجدته هو هذا الكود
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
وقد سبق لي ان جربت ولكن لم يعمل الاستعلام الذي استعملته
فكل ما يفعله وهو نقل قيمة واحدة فقط
PHP كود :
ABSQuery2.SQL.Add('update vente set vente.commission = :commission where vente.numero =:numero');
هذا الكود لن يعمل يا اخي لانه لا بد من اخد الباراميتر من Query
الكيري يحتوي على نتائج البحث التي قام بها وهذه النتائج هي التي اريد اعطائها لجدول المبيعات وبالضبط لحقل العمولات
الكيري قام بمقارنة بين جدولين جدول المبيعات وجدول القواعد (affectation)
وبعد المقارنة قام باستخلاص النتائج والتي اريد اعادة دمجها في جدول المبيعات
اظن ان الاستعلام الثاني الذي تريد منه ان يأخذ النتائج من الاول ووضعها في جدول المبيعات لا فائدة منه, يمكنك اختصار الكل في استعلام واحد
هل جربت الكود؟ لان لدي نفس الجداول واشتغل معي الاستعلام