PHP كود :
try
IBCStoredProc1.Close;
IBCStoredProc1.ParamByName('SENDDATE').Value:= WheelPicker3.DateTime ;
ShowMessage('ok');
IBCStoredProc1.ExecProc;
except on E: Exception do
ShowMessage(e.Message);
end;
IBCStoredProc1.Close;
السلام عليكم اخ Delphi4Us فكرتني بايام زمان مع الفيربيرد قم بحذف suspend و ان شاء تنحل المشكلة
اعتقد انك لا ترغب في اعادة سجلات للبرنامج لذلك لا داعي لاستخدام suspend في حالة اردت اعادة سجلات للبرنامج استخدم suspend
في حالة اردت اعادة سجلات يمكنك استخدام Query مع استخدام Open
جزاك الله كل خير
اجل تم حل المشكلة ، انا جديد على هذا النوع من البرمجة والاجراءات المخزنة ، وعلى الفايربيرد عموما .
شكرا اخ فتح
حتى انا جديد على الفيربيرد

في الكود الذي ارفقته رأيت اشياء جديدة لاول مرة اراها مثل returning_values مع الـ Execute procedure
بالمناسبة فاتح

و ليس حركة فتح
هههههههه الله يجعلك فاتح لابواب الخير مغلاق لابواب الشر .
هذه الفايربيرد كل يوم اكتشف فيها شيئا جديدا .
يمكن بها عمل اشياء كثيرة في اجراء واحد ، تصور الاجراء السابق يجهز مرتبات الموظفين بنقرة زر واحدة .
يجلب بيانات تم يرسلها الى اجراءات فرعية ويعود بقيم يضمها مع البيانات الاولى ويخزنها في جدول الموظفين .
لو اردت ان ابرمج هذا في الدلفي لامتلاء النموذج بالادوات والاجراءات .
وهذه الطريقة لا اعرف هل هي المتبعة ام لا لانني فكرت فيها وبرمجتها من العقيد فكري .
نقول هنا العقيد فكري في اشارة الى ان العقل اوحى لي
نعم الـ Stored Procedures قوية للغاية كما يمكنك استخدام Views بالنسبة لي طالما نفذة العملية بنجاح اتركها كما هي الا في حالة تأكدت ان التقنية التي تليها احسن
يقولون في الكتب ان الاجراءات المخزنة اسرع من الاستعلامات لهذا تركت كل شئ عبارة عن اجراءات مخزنة
(19-06-2018, 11:31 PM)Delphi4Us كتب : [ -> ]يقولون في الكتب ان الاجراءات المخزنة اسرع من الاستعلامات لهذا تركت كل شئ عبارة عن اجراءات مخزنة
السلام عليكم ،
هل من الممكن استعمال ال Transaction مع توابعها commit و rollback داخل الإجراءات المخزنة Stored procedure ؟
(20-06-2018, 05:16 PM)أبو معاذ كتب : [ -> ]هل من الممكن استعمال ال Transaction مع توابعها commit و rollback داخل الإجراءات المخزنة Stored procedure ؟
لا
يمكنك استخدام ذلك من الدلفي نفسها
PHP كود :
begin
dm.q_genel.Close;
dm.q_genel.SQL.Clear;
dm.q_genel.SQL.Add('EXECUTE PROCEDURE EDIT_FATURA(:p1,:p2)');
dm.q_genel.ParamByName('p1').AsInteger := fid;
dm.q_genel.ParamByName('p1').AsInteger := sayi;
try
dm.<Database>.StartTransaction;
dm.q_genel.execute;
dm.<Database>.Commit;
except
dm.<Database>.Rollback;
raise;
end;
end;
اذا كان هناك عمليتان للاضافة او التعديل او عملية اضافة وتعديل في نفس الاجراء المخزن بقاعدة البيانات
انا اقول حسب العقيد فكري انه يجب ان يتم تجزئتهم في اجرائين وتنفيدهم من الدلفي باستخدام الـ Transaction اما ان يتم تنفيدهم الاثنين او فلا
اليوم كنت اقوم بانشاء استعلام من الصباح حتى المساء وانا احاول لتحويل معاملة مالية الى المصرف ، لدرجة ان الفايربيرد كان يقول لي احيانا في رسالة ، عمليات كثيرة توقف الاجراء عن العمل .
كانت خربطة لا حدود لها ، والان فقط نجح الاستعلام بتقليل العمليات وتجزئتها مع حذف بعض الحقول الغير ضرورية والتي كانت تخرج نتائج غير منطقية
لوهلة كاد اليأس يصيبني واترك المنظومة بعد ان صرت قاب قوسين او أدنى من اكمالها