הוספת טבלה

  • Post
    ahmed
    משתתף
    היי אני צריך להוסיף טבלה חדשה שנקראת סקר חוזה הטבלה מורכבת מהשדות הבאים

    CURDATE שזה התאריך
    SEKNAME שזה מס סקר חוזה שיהיה נומירטור מס רץ
    SEK סקר חוזה (ID)
    CUSTNAME לקוח
    ORDNAME מס הזמנה לקוח
    STATUS לפי טבלת סטאטוסים של סקר חוזה
    DETAL פרטים

    הבעיה איך לעשות את ה SEKNAME מס רץ נומירטור

    תודה ,על העזרה

מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • Replies
    מארק
    משתתף
    none
    או – להגריר לשדה מפתח מסוג A
    או – לעדכן שדה מטריגרים
    (POST-INSERT, POST-UPDATE, POST-DELETE)
    ahmed
    משתתף
    הגדרתי את SEKNAME מפתח מסוג A וזה לא עובד
    מצ"ב צילום מסך של הטבלה ושל המפתחות שעשיתי
    תודה על העזרה
    ahmed
    משתתף
    מצ"ב
    Lior
    מנהל בפורום
    הי,
    כל טבלה חייבת שיהיה לה מפתח U. מפתח A אינו חובה.
    הכי פשוט במבחינתך הוא להשאיר את מבנה העמודות כמו שהוא, להגדיר את SEKNAME מפתח U, את SEK מפתח A.

    עד כאן הטבלה.

    באשר למסך –

    על אחת מהעמודות שתמיד יהיה בהן ערך (אם מחמת שהן חובה או אם מחמת שיהיה טריגר שימלא אותן) תכניס POST-FIELD. תפקידו של טריגר זה יהיה למלא את :$.SEKNAME במספר הרץ. כדי לחשב אותו, מצא את הערך המקסימלי הקיים והוסף לו 1.

    זה עדיין לא הכל – ב PRE-INSERT עליך לבדוק שוב שהערך אינו קיים בטבלה (הוא יכול להיות קיים כי שני משתמשים פותחים שורה חדשה, מקבלים את אותו מקסימלי + 1, הראשון הצליח להכנס, כשהשני יורד מהשורה, הוא מנסה להכניס נתון קיים למפתח U וההכנסה נכשלת). אם מצאת שהוא קיים, קדם אותו באחד עד אשר לא תמצא ערך זהה בטבלה.

    מארק
    משתתף
    none
    לא רואים מצ"ב
    ahmed
    משתתף
    מבחינת הטבלה אין בעיה אבל יש לי בעיה עם המסך
    לא מצליח אשמח אם תרשום הקוד מה אני צריך לרשום בטריגר
    POST-FIELD,PRE-INSERT
    שדה החובה הוא התאריך CURDATE
    ahmed
    משתתף
    קח בחשבון שיהיה לזה מסכי בן גם אם זה קשור איך ואיך צריך לקשור או זה משהו רגיל
    Lior
    מנהל בפורום
    [code:1]/* Replace YOURTABLENAME with the real table name */

    /* CURDATE/POST-FIELD */
    :$.SEKNAME = '1000' ;
    /* this is the number of the first record change it to whatever you like*/
    SELECT ITOA(MAX(ATOI(SEKNAME)) + 1) INTO :$.SEKNAME
    FROM YOURTABLENAME ;

    /* PRE-INSERT */
    :«»SEKNAME = :$.SEKNAME ;
    LABEL 10 ;
    GOTO 20 WHERE NOT EXISTS
    (SELECT 'X'
    FROM YOURTABLENAME
    WHERE SEKNAME = :«»SEKNAME)
    ;
    :«»SEKNAME = ITOA(ATOI(:«»SEKNAME) + 1);
    LOOP 10 ;
    LABEL 20 ;

    :$.SEKNAME =:«»SEKNAME ;
    [/code:1]

    Lior
    מנהל בפורום
    שים לב. הוספתי שורה לקוד.
    ahmed
    משתתף
    היי
    רציתי להוסיף מסך בן לטבלה מוצרים בסקר חוזה
    בניתי את הטבלה ואז קישרתי אותה למסך אב
    אני מכין את המסך ואז נות הודעת שגיאה
    מצ"ב קובץ ה PREP [file name=prep.txt size=515]https://www.priority-forums.com/he/images/fbfiles/files/prep.txt[/file]

    נה AHME_SEKER.$: בהפעלה AHME_SEKER/DELETE אינו קיים כעמודה במסך.

    Lior
    מנהל בפורום
    לא הבנתי.
    שלח בבקשה dump של מסך האב ומסך הבן ו dump של טבלאות היסוד שלהם
מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.