יש לי ממשק למסך פרטי שמכניס נתונים מקובץ למסך אב ולמסך בן.
במסך האב יש טריגר CHECK-FIELD שבודק שלא הוכנסה שורה כפולה לפי כמה פרמטרים (בנוסף לזה קיים שדה הID הוא unique).
כאשר יש שורה אחת בממשק שכבר נמצאת בטבלה הממשק מוציא דוח שגיאות על כל שאר השורות למרות שאינם נמצאים במערכת – ולא כל הנתונים נקלטים.
כאשר ביטלתי את הטריגר הCHECK-FIELD והשארתי רק את השדה ID כunique השורות נכנסות דרך הממשק בשלמות אך הבעיה היא שהממשק מכניס שורות כפולות במסך הבן (כל טעינה מכפיל את שורות מסך הבן).
האם יש למישהו רעיון כיצד ניתן לתקן את זה?
הרעיון היחיד הוא לשנות במסך הבן את שדות הU ולמנוע כפילויות אך זה ייפגע בכל המידע שנמצא שם.
נשמע שיש בעיה עם המפתחות של הטבלה עליה מבוסס מסך הבן. המפתחות אמורים למנוע הכנסת שורה כפולה לכן קודם הייתי מטפל בזה, בלי CHECK-FIELD באב (שזה לא רעיון כל כך טוב בכל מקרה).
ה-check field שלך מונע עדכון ומפיל את שאר העדכונים בממשק.
אם ה-check field לא פועל אז שולפים את הרשומה במסך העל ואז מוסיפים שורות למסך בן. אילו היה בקובץ מפתח יחודי של שורה במסך בן היה גורם לשליפה של השורה ועדכון שלו. בלי זה, ממשק מוסיף שורה.
אפשר להגדיר שמבסך הבן יש מחיקה והכנסה מחדש.
אבל נשמע לי שמניעת העדכון זה מה שצריך, ואתה רוצה להמשיך ברשומה הבאה במסך האב, זאת אומרת שכשלון במסך הבן יביא לדילוג של כל החבילה של השורה למסך האב והשורות למסך הבן.
תסתכל בהגדרות בכותרת הממשק. יש דגל או שדה (זה לא מולי כרגע אבל כזכור לי השם מזכיר דילוג) שקובע מה קורה במצב כזה, האם ממשיכים או האם זורקים את כל השאר שזה מה שאתה מזכיר עכשיו.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]