@ClickOne
אני מבין שיש לך בכל זאת עמודה של מס אוטו'.
תעשה אינסרט לטבלה, (אתה יכול לקבל באינסרט את התוצאה של המס' האוטו) או שאתה מקבל את המס' האוטו' בטופס
ואח"כ תעשה משפט UPDATE שנראה בערך ככה
update tbl set DocNum=nz(DMax("DocNum","tbl","DocType=305"),0)+1 where id=1
בגלל שהעידכון מתבצע בתוך הUPDATE הוא מנטר את השאילתות וזה לא אמור לקרות גם בבו זמנית.
חוצמזה, אתה יכול לעשות אינדקס או כלל אימות על 2 שדות, ואז אם השאילתא השנייה תשים את אותו מספר אתה תקבל שגיאה,
תפוס אותה עם משפט שגיאה, ואז תחזיר את הקוד פעם נוספת (או עד בלופ עד שתעבור בלי שגיאה - אני מציע אם אתה שם לופ, שתשים לימיט כדי שלא תיכנס ללופ אינסופי אם תהיה בעייה)
מעניין מאוד. למה נראה לך ששאילתות INSERT הוא נותן להפעיל בו זמנית, ושאילתות UPDATE לא?
מקור הבעיה היא שהמחשב העיקרי פונה אל הDB שבו לוקאלית, והמחשב השני מחובר בWIFI.
למעשה, אתה צודק שאם אני יפעיל שני שאילתות (אחת להוספה, והשניה לעדכון) ממילא יווצר פרק זמן קטנטן שבו יוכל להתבצע בדיקה ולגלות את השורה הנוספת.
פורסם במקור בפורום CODE613 ב18/09/2017 12:49 (+03:00)