לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #5  
ישן 10-08-2005, 21:24
צלמית המשתמש של Ctzvi
  Ctzvi Ctzvi אינו מחובר  
 
חבר מתאריך: 13.12.02
הודעות: 147
PL\SQL
בתגובה להודעה מספר 1 שנכתבה על ידי DRagonRage שמתחילה ב "SQL "מתקדם""

מרבית הסיכויים שמדובר ב PL\SQL
PL\SQL היא שפה פרוצדוראלית (ניתן לחלק את הקוד לפרוצדורות ופונקציות) ויש בה אלמנטים אשר משותפים לרוב שפות התכנות (לולאות, תנאים וכו') ולכן מאפשרת כתיבת bussiness logic ממש ולא סתם שליפות.
הקוד עצמו לא מקומפל לקובץ ריצה אלא נשמר בתוך טבלאות ומורץ על השרת עצמו.
בצורה כזו ניתן לקבל יעילות מקסימאלית בעיבודי מידע - העיבוד מבוצע במקום שבו נמצא המידע ואין צורך בגישה מבחוץ לבסיס הנתונים (למעשה הגישה היחידה תהיה כדי לקרוא לפונקציה).
כמובן שהשפה מכילה חוץ מפקודות if,loop וכו' גם פקודות לשליפת ושינוי המידע בבסיס הנתונים אשר רובן נלקחות מ sql.
דוגמא לשימוש-
יש לי אפליקציה שבה יש רשומות של לקוחות.
ישנו כפתור 'שכפל לקוח' אשר אמור ליצור עותק מושלם של הלקוח (כולל מידע בכל מיני טבלאות).
אני אצור בבסיס הנתונים פרוצדורה (נקרא stored procedure - פרוצדורה אשר מאוכסנת בבסיס הנתונים) אשר מקבלת מספר לקוח ומשכפלת את כל המידע הרלוונטי בכל הטבלאות הרלוונטיות (כולל תוספת 'עותק של ' לכל השמות בטבלאות).
באפליקציה עצמה לחיצה על הכפתור תיקרא לפרוצדורה שיצרתי ותעביר לה את מספר הלקוח.
כל העיבודים על המידע יבוצעו בבסיס הנתונים - ללא צורך בכתיבת הקוד בצד האפליקציה וללא קריאות מיותרות לבסיס הנתונים.
אם אני רוצה אני יכול ליצור במקום הפרוצדורה פונקציה שתבצע את התהליך ותחזיר בסופו את מספר הלקוח החדש שנוצר.

דוגמת קוד קטנה -
ב sql ניתן לשלוף מידע אבל לא ניתן להשתמש בו אח"כ:
קוד:
SELECT emp_name FROM emp WHERE emp_id = 1;

חייבים להכניס את הערך המוחזר למשתנה ואח"כ ניתן להשתמש בו בקוד PL\SQL לעומת זאת ב
קוד:
DECLARE v_emp_name emp.emp_name%type; BEGIN SELECT emp_name INTO v_emp_name FROM emp WHERE emp_id = 1; ... ... IF (v_emp_name = 'Michael') THEN ... ... END IF; END;

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 20:34

הדף נוצר ב 0.06 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר