إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ما معنى Send By Value?


6 رد (ردود) على هذا الموضوع

#1 hearthouse

hearthouse

    مشترك

  • الأعضــاء
  • 121 مشاركة

تاريخ المشاركة 20 January 2007 - 03:58 PM

السلام عليكم

ما معنى ان المتغيرات ترسل الي Procedure بطريقتين :

1 - send by balue

2- send by reference

?????

تم التعديل بواسطة hearthouse, 20 January 2007 - 03:59 PM.


#2 hassan978hmk

hassan978hmk

    مشترك

  • الأعضــاء
  • 90 مشاركة

تاريخ المشاركة 21 January 2007 - 05:06 PM

SEND BY VALUE
يتم استدعاء الإجرائية بواسطة برنامج(تابع أو اجرائية) وتكون معاملات الإجرائية قيم ثابتة مثل:
PROC1(3,'XX',4.....)

SEND BY REFERENC
تكون معاملات الإجرائية متغيرات تابعة للبرنامج المستدعي مثل
DECLARE
SS NUMBER;
BEGIN
PROC1(3,SS,4,....)
END;
حيث SS متغير تابع للبرنامج المستدعي.

والله أعلم

تم التعديل بواسطة hassan978hmk, 21 January 2007 - 05:07 PM.

طوبىّ لِمن إذا أُنعمَ عليه شكَر , وإذا ابتليَ صبَر , وإذا أذنَبَ استغفر , وإذا غضبَ حَلِم , وإذا حكَمَ عدَل

صورة

#3 hearthouse

hearthouse

    مشترك

  • الأعضــاء
  • 121 مشاركة

تاريخ المشاركة 22 January 2007 - 12:01 AM

لكن ما معنى هذا الكود






create or replace procedure format_tel(p_phone_no in out varchar2)
is 
BEGIN
p_phone_no:='('||substr(p_phone_no,1,3)||')'||substr(p_phone_no,4,3)||' - '||substr(p_phone_no,7);
DBMS_OUTPUT.PUT_LINE(p_phone_no);
end format_tel;


declare
show_tel varchar2(20):='800633123';
begin
format_tel(show_tel);
dbms_output.put_line(show_tel);
END;






المفروض ان المتغيرات يتم ارسالها بالقيم send by value في حالة IN OUT PARAMATERS

و ان هنا قد مررت متغير اسمه show_tel الى الاجراء format_tel , اذن ما معنى هذا؟؟؟

#4 hassan978hmk

hassan978hmk

    مشترك

  • الأعضــاء
  • 90 مشاركة

تاريخ المشاركة 22 January 2007 - 11:21 AM

أولاً الــ PARAMETER الخاص بالإجرائية يسمى FORMAL أو ACTUAL
format_tel(p_phone_no in out varchar2)
هنا يسمى FORMAL
أما عند الاستدعاء يسمى ACTUAL
format_tel(show_tel);

الــ PASS BY REFERENCE , PASS BY VALUE تطبق على ACTUAL
------------------
في حالة IN
Actual parameter is passed by reference (a pointer to the value is passed in)
------------------
في حالة OUT ,INOUT
Actual parameter is passed by value (a copy of the value is passed out)

هذا ما هو مكتوب في PL/SQL REFERENCE

في الرد الأول كنت مخطأً

وهذه الأفكار موجودة في منهاج PL/SQL المتقدم إذا أحببت التعمق بها ادرسه.

والله الموفق
طوبىّ لِمن إذا أُنعمَ عليه شكَر , وإذا ابتليَ صبَر , وإذا أذنَبَ استغفر , وإذا غضبَ حَلِم , وإذا حكَمَ عدَل

صورة

#5 hearthouse

hearthouse

    مشترك

  • الأعضــاء
  • 121 مشاركة

تاريخ المشاركة 23 January 2007 - 01:17 PM

هل يمكنك رفع كتاب PL/SQL reference و SQL reference؟؟؟؟

#6 hassan978hmk

hassan978hmk

    مشترك

  • الأعضــاء
  • 90 مشاركة

تاريخ المشاركة 23 January 2007 - 02:54 PM

الكتاب موجود في مكتبة أوراكل مع تشكيلة واسعة من الكتب الرائعة الأخرى ولكن لاحظ أن معظمها كبير الحجم , مثلا sql reference حجمه 21M ,الرابط هو التالي

http://www.oracle.co...emo3?selected=1
بالتوفيق
طوبىّ لِمن إذا أُنعمَ عليه شكَر , وإذا ابتليَ صبَر , وإذا أذنَبَ استغفر , وإذا غضبَ حَلِم , وإذا حكَمَ عدَل

صورة

#7 hearthouse

hearthouse

    مشترك

  • الأعضــاء
  • 121 مشاركة

تاريخ المشاركة 27 January 2007 - 02:35 AM

مشكور على متابعتك للموضوع و المساعدة