تحليل قاعدة بيانات موظفين ورواتب
#29
السلام عليكم ورحمة الله

كما قلت لكم انني بنهاية المنظومة سوف احتاج الى سؤالين او ثلاث في استعلامات معقدة
الاستعلامات المعقدة لا مشكلة فيها مرت بسلام و ضبطتها بدون اي مشاكل
المشكلة الان انني صممت اجراء مخزن بقاعدة البيانات لاضافة مرتبات الموظفين وعندما اشغله من قاعدة البيانات يعمل ويظيف كل الموظفين بجدول المرتبات ولكن عندما قمت يتنفيذه من البرنامج EXEProc يقوم فقط باظافة موظف واحد فقط بالاحرى الموظف الاول ويتوقف
ما الذي فاتني في هذا
بالنسبة الى الاجراء هاهو هنا .

PHP كود :
begin
 
   
      
  for select
  morateb
.id,  morateb.alawanaw, morateb.degernaw, morateb.tameez,
 
 morateb.fmkafa2, morateb.absent,  morateb.mcase, morateb.kanon,
 
 coalesce(morateb.ohter_alawa,0),  coalesce(morateb.other_kasm,0)
 
 from morateb
   into
    
:ID, :ALAWANAW, :DEGERNAW, :TAMEEZ, :FMKAFA2, :absent, :MCASE,
 
   :kanon, :ohter_alawa,  :other_kasm 
   
     
do
 
   begin
    EXECUTE PROCEDURE PROC_GETASASY
(DEGERNAW,kanon,ALAWANAW) returning_values (:ASASY);
 
   EXECUTE PROCEDURE PROC_MKAFA (ID) returning_values (:Getmkafa);
 
   EXECUTE PROCEDURE PROC_GETDAMAN (ASASY) returning_values (:DAMAN,:TADAMN,:JHAD);
 
   insert into fcheck
      
(
 
   fcheck.chahr, fcheck.darga, fcheck.alawa,  fcheck.asasy,
 
   fcheck.tameez, fcheck.fmkafa, fcheck.fmkafa2,  fcheck.absent,
 
   fcheck.daman, fcheck.tadamn, fcheck.jhad, fcheck.ohter_alawa,
 
   fcheck.other_kasm,  fcheck.mcase,  fcheck.TARHEL, fcheck.mindex
      
)
 
     values 
      
(
 
      cast(:SENDDATE as date), :DEGERNAW,coalesce(:ALAWANAW,0),
 
      :ASASY , coalesce(:TAMEEZ,0), coalesce(:Getmkafa,0),
 
      coalesce(:FMKAFA2,0), coalesce(:absent,0), :DAMAN, :TADAMN,
 
      :JHAD, coalesce(:OHTER_ALAWA,0), coalesce(:other_kasm,0), :MCASE,
 
      0, :ID
      
) ;

 
   
      suspend
;

 
   end

  
  
end 


كما قلت من قاعدة البيانات يعمل بشكل طبيعي ولكن لزيادة الشرح لعل فيه Bugs او ملاحظة
هنا اقوم بقراءة بعض الحقول المطلوبة ووضعها بمتغيرات Out
PHP كود :
 
  for select
  morateb
.id,  morateb.alawanaw, morateb.degernaw, morateb.tameez,
 
 morateb.fmkafa2, morateb.absent,  morateb.mcase, morateb.kanon,
 
 coalesce(morateb.ohter_alawa,0),  coalesce(morateb.other_kasm,0)
 
 from morateb
   into
    
:ID, :ALAWANAW, :DEGERNAW, :TAMEEZ, :FMKAFA2, :absent, :MCASE,
 
   :kanon, :ohter_alawa,  :other_kasm 


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

PHP كود :
EXECUTE PROCEDURE PROC_GETASASY(DEGERNAW,kanon,ALAWANAW) returning_values (:ASASY);
 
   EXECUTE PROCEDURE PROC_MKAFA (ID) returning_values (:Getmkafa);
 
   EXECUTE PROCEDURE PROC_GETDAMAN (ASASY) returning_values (:DAMAN,:TADAMN,:JHAD); 

بعد الانتهاء من تحظير كل القيم المطلوبة يتم اضافتها بجدول المرتبات

PHP كود :
insert into fcheck
      
(
 
   fcheck.chahr, fcheck.darga, fcheck.alawa,  fcheck.asasy,
 
   fcheck.tameez, fcheck.fmkafa, fcheck.fmkafa2,  fcheck.absent,
 
   fcheck.daman, fcheck.tadamn, fcheck.jhad, fcheck.ohter_alawa,
 
   fcheck.other_kasm,  fcheck.mcase,  fcheck.TARHEL, fcheck.mindex
      
)
 
     values 
      
(
 
      cast(:SENDDATE as date), :DEGERNAW,coalesce(:ALAWANAW,0),
 
      :ASASY , coalesce(:TAMEEZ,0), coalesce(:Getmkafa,0),
 
      coalesce(:FMKAFA2,0), coalesce(:absent,0), :DAMAN, :TADAMN,
 
      :JHAD, coalesce(:OHTER_ALAWA,0), coalesce(:other_kasm,0), :MCASE,
 
      0, :ID
      
) ; 
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد


الردود في هذا الموضوع
RE: تحليل قاعدة بيانات موظفين ورواتب - بواسطة Delphi4Us - 19-06-2018, 10:10 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم