delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف يمكن تنفيد أكثر من جملة في الاجراءات المخزنه؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
هل من الممكن كيفيه تنفيد أكثر من جمله في إجراء مخزن واحد SP
بمعنى تنفيذ أكثر من أمر Select مربوط أحيانا بالجملة التي قبله في إجراء واحد 
أو  كل جمله نضعها في إجراء ونقوم بإستدعاء كل إجراء لوحده متتاليه
(22-07-2018, 09:13 PM)ALG2009 كتب : [ -> ]السلام عليكم 
هل من الممكن كيفيه تنفيد أكثر من جمله في إجراء مخزن واحد SP
بمعنى تنفيذ أكثر من أمر Select مربوط أحيانا بالجملة التي قبله في إجراء واحد 
أو  كل جمله نضعها في إجراء ونقوم بإستدعاء كل إجراء لوحده متتاليه

مثال بسيط

كود :
SELECT * FROM Table1, Table2, Table3 WHERE Table1.Id_Nom1 = :Nom1 AND Table2.Id_Nom2 = :Nom2 AND Table3.Id_Nom3 = Table1.Id_Nom1
الـ AND لا تنفع فالاستخدام كان في جملة الشرط فلو كان كل جمله مستقله عن الأخرى
حيث الأولى تكون
SELECT *
FROM Table1
والثانيه
Update UPDATE table_name. SET column1 = value1
من الأفضل إرفاق الأسئلة بأمثلة أو صور توضيحية من صاحب السؤال.

حسب ما فهمت -

في SQL يمكن تنفيذ استعلامات متداخلة منها:

كود :
Select * from  Table1 where id = (select id from Table2) ;

مثال آخر من الأنترنت:


كود :
SELECT SalesOrderID, LineTotal, (SELECT AVG(LineTotal) FROM Sales.SalesOrderDetail) AS AverageLineTotal FROM   Sales.SalesOrderDetail ;


إذا كان هذا هو المطلوب ابحث عن subquery in select statement
أو إقرأ : https://www.w3resource.com/sql/subquerie...ueries.php
لا أقصد  الإستعلامات المتداخله ما أقصده وهو عندك إجراء مخزن SP في قاعده البيانات من نوع FireBird

يعني عندك إستعلام يظهر قائمه الطلاب + النقاط
وإستعلام يقوم بالتحدث النقاط على سبيل المثال
كود :
STELEC Names,Grades FROM Students UPDATE students SET grades =18 WHERE grades=17


كما نلاحظ هناك أكثر من إستعلام في الاجراء المخزن كيف يتم تنفيذ هذا الاجراء بدون أخطأ


السؤال بطريقه أخرى كيف يمكن تنفيذ أكثر من إستعلام في الاجراءات المخزنه(SP) ؟
السلام عليكم في حالة كان تحديث البيانات يعتمد على الاستعلام يمكنك استخدام FOR SELECT ... INTO ... DO
https://firebirdsql.org/refdocs/langrefu...elect.html

http://delphi4arab.net/forum/showthread....5#pid45925
نفدهم كل على حدة
ثلاث اجراءات مثلا
واحد تحديد والثاني تحديث والثالث اضافة
يمكنك استدعائهم بالتوالي في اجراء رابع
او من برنامجك
عذرا على التأخر
بارك الله فيكم