السلام عليكم ورحمة الله
كما قلت لكم انني بنهاية المنظومة سوف احتاج الى سؤالين او ثلاث في استعلامات معقدة
الاستعلامات المعقدة لا مشكلة فيها مرت بسلام و ضبطتها بدون اي مشاكل
المشكلة الان انني صممت اجراء مخزن بقاعدة البيانات لاضافة مرتبات الموظفين وعندما اشغله من قاعدة البيانات يعمل ويظيف كل الموظفين بجدول المرتبات ولكن عندما قمت يتنفيذه من البرنامج EXEProc يقوم فقط باظافة موظف واحد فقط بالاحرى الموظف الاول ويتوقف
ما الذي فاتني في هذا
بالنسبة الى الاجراء هاهو هنا .
كما قلت من قاعدة البيانات يعمل بشكل طبيعي ولكن لزيادة الشرح لعل فيه Bugs او ملاحظة
هنا اقوم بقراءة بعض الحقول المطلوبة ووضعها بمتغيرات Out
هنا احسب قيمة المرتب والخصميات والعلاوات والمكافأت في اجراءات فرعية واستقبالها بمتغيرات طبعا تعتمد على الاستعلام Select السابق
حتى الان مرحلة اعداد البيانات فقط
بعد الانتهاء من تحظير كل القيم المطلوبة يتم اضافتها بجدول المرتبات
كما قلت لكم انني بنهاية المنظومة سوف احتاج الى سؤالين او ثلاث في استعلامات معقدة
الاستعلامات المعقدة لا مشكلة فيها مرت بسلام و ضبطتها بدون اي مشاكل
المشكلة الان انني صممت اجراء مخزن بقاعدة البيانات لاضافة مرتبات الموظفين وعندما اشغله من قاعدة البيانات يعمل ويظيف كل الموظفين بجدول المرتبات ولكن عندما قمت يتنفيذه من البرنامج 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
) ;
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم

