עזרה עם פרוצדורה

פורומים אפיון ופיתוח פריוריטי עזרה עם פרוצדורה

  • Post
    ESTER LOI
    משתתף
    שלום
    יש לי פרוצדורה ששלב הראשון שלה הוא INPUT שמקבל שתי ערכים מסוג CHAR משתי טבלאות
    אני צריכה שיכניס את הערכים לטבלה אחרת בשם ESKA_CUSTFORMOV
    שלב שני בפרוצדורה הוא SQLI
    הוא נופל לי על הLINK בהתחלה
    מה לא הגדרתי נכון??
    LINK ESKA_SCREENINGS TO :SCRN;
    ERRMSG 502 WHERE :RETVAL <= 0 ;
    SELECT ESKA_SCREENING_ID
    INTO :SCL FROM ESKA_SCREENINGS
    WHERE ESKA_SCREENING_CODE = :$.SCR ;
    ERRMSG 500 WHERE :RETVAL <= 0 ;
    UNLINK ESKA_SCREENINGS ;
    /*LINK ESKA_CUSTFORMOV TO :CUS;
    ERRMSG 100 WHERE :RETVAL <= 0 ;*/
    LINK CUSTOMERS TO :CUSTOMERS ;
    ERRMSG 1000 WHERE :RETVAL <= 0 ;
    SELECT CUST INTO :SCD FROM CUSTOMERS
    WHERE CUSTNAME=:$.CST;
    INSERT INTO ESKA_CUSTFORMOV (SCREENING_ID, CUST)
    VALUES (
    :SCL ,
    :SCD);
    ERRMSG 1050 WHERE :RETVAL <= 0 ;
    /*UNLINK ESKA_CUSTFORMOV;*/
    UNLINK CUSTOMERS ;
    ERRMSG 0 ;

מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • Replies
    PRIORITY-DEVELOPER
    משתתף
    LINK עושים לפרמטר מסוג FILE או LINE,לא CHAR.

    חוץ מזה את צריכה לשים :$. לפני שם הפרמטר בשלב ה SQLI – כדי שיזהה שזה פרמטר מהפרוצדורה ולא סתם משתנה.

    אחרי שלינקקת נכון לפרמטר,בטבלה המלונקקת שלך יהיו רק ערכים מהקלט.

    לכן אין צורך לעשות WHERE ESKA_SCREENING_CODE = :$.SCR וכדומה

    ESTER LOI
    משתתף
    ESKA_SCREENINGS זה טבלה
    אני צריכה לעשות LINK לטבלה כדי שלא ישתנה משם הערכים
    אני צריכה להגדיר לפני את הפרמטרים ?

    NoamN
    משתתף
    none
    LINK יוצר העתק של הטבלה המקורית. ה-LINK נעשה בין טבלה קיימת לבין אחת משתי אפשרויות: או פרמטר לשלב עם טיפוס N/FILE, או באמצעות SQL.TMPFILE. שתי השיטות אפשריות כאשר מתכנתים פרוצדורה אבל במסך ניתן להשתמש רק ב-SQL.TMPFILE כי אין פרמטרים. צריך לכתוב משהו כמו

    <p dir="ltr">LINK CUSTOMERS TO :$.CST;</p>
    <p dir="ltr">ERRMSG 1 WHERE :RETVAL <= 0;</p>
    <p dir="ltr">SELECT SQL.TMPFILE INTO :ORDERS FROM DUMMY;</p>
    <p dir="ltr">LINK ORDERS TO :ORDERS;</p>
    <p dir="ltr">ERRMSG 1 WHERE :RETVAL <= 0;</p>
    מאותו רגע, עד לפקודה UNLINK, התיחסות אל טבלת CUSTOMERS תהיה לטבלה ה"מלונקקת". לפעמים זה יוצר בעיות כאשר רוצים לעדכן ערך בטבלה המקורית אז צריך לשים לב. כדי להתיחס לטבלה האמיתית, משתמשים ב-ALIAS, לדוגמא CUSTOMERS ORIG.

מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)

תגיות: ,

  • יש להתחבר למערכת על מנת להגיב.