גם לדעתי השיטה הראשונה עדיפה ותקני אותי אם אני טועה אבל היא גם יותר מהירה ז"א משתמשים בשיטה של ADO לפתיחת טראנזיקציה עובדים ישירות מול המסד דרך SQL (בלי שילוב נוסף של ADO) ומשתמשים בעוד שיטה של ADO לסגירת טראנזיקציה.. (3 פעולות)
לעומת השיטה השנייה פותחים שורה וטראנזיקציה מכניסים נתונים שרוצים מבצעים UPDATE וסוגרים טראנזיקציה (5 פעולות)
ואיך אני בודק שזה אכן עובד? הכנסתי לקוד שלי את הטראנזיקציה הכל עובד נכון אבל איך אני יודע שבזמן אמת זה יעבוד כמו שצריך (כשאנשים באמת מכניסים הודעה באותו זמן)?
אני פשוט מצטער… זה בגלל שאני ו-VBS לא מסתדרים הכי הרבה… אני אוהב לעבוד בפונקציות ו-VBS אני לא מצליח אני גם לא אוהב את הדרך של VBS להחזיר נתונים (return ב-JS)
kפי ה-MSDN זה כן :- אני מצטט RollbackTrans — Cancels any changes made during the current transaction and ends the transaction. It may also start a new transaction.
מבטל כל פעולה שנעשתה במהלך הטראנזיקציה. וגם מתחיל טראנזיקציה חדשה
The provider will automatically start a new transaction after a RollbackTrans call, if the Attributes property of the Connection object is set to adXactCommitAbort.
25 תשובות
זה חשוב למאמר שיעלה בקרוב
אל תאירו לי על הפרשי הזמן זה לא היה להאצתכם לענות —> זה הארה
לא באקסס, אבל ב-ADO
oCon.beginTrans
//code
oCon.CommitTrans // or RolbackTrans
ומה הבדל בין commit ל-roolback ?
commit מבצע את הטרנזקציה
rollback מבטל אותה
בדיוק הסתכלתי שם
ומה יוצא יותר מהיר?
טראנזיקציה SQLית או ADOית?
SQLית, כמובן
אבל באקסס אין לך את זה
שתי האפשרויות של הן
1. להשתמש בטראנזקצית ADO
2. להשתמש ב-rs.AddNew שפותחת בעצמו טראנזקציה
אישית אני מעדיפה את השיטה הראשונה.
גם לדעתי השיטה הראשונה
עדיפה
ותקני אותי אם אני טועה אבל היא גם יותר מהירה ז"א
משתמשים בשיטה של ADO לפתיחת טראנזיקציה
עובדים ישירות מול המסד דרך SQL (בלי שילוב נוסף של ADO)
ומשתמשים בעוד שיטה של ADO לסגירת טראנזיקציה..
(3 פעולות)
לעומת השיטה השנייה
פותחים שורה וטראנזיקציה
מכניסים נתונים שרוצים
מבצעים UPDATE וסוגרים טראנזיקציה
(5 פעולות)
השיטה השניה
פותחת בעצמה את הטראנזקציה, אין צורך לפתוח אותה לבד
אז במאמר…
להכניס את זה דרך ה-SQL או דרך ה-ADO (שיטה ראשונה)
אם ב-SQL אז אני מתייחס רק ל-MSSQL (אין לי מסדי נתונים אחרים חוץ מהאקסס ו-MSSQL)
כן אני יודע אני מתכוון
מבחינת הפעולות שהשרת עצמו עושה… (לא מה רק מה שאנו כותבים לו)
המאמר מדבר על אקסס
אז אתה לא יכול לעשות את זה ב-SQL נטו.
[ותפריד, SQL זו השפה, לא השרת, אם אתה רוצה לדבר על MSSQL אז תגיד MSSQL]
אז כמו שאמרנו – יש לך 2 אפשרויות
1. טראנזקציה ב-ADO
2. addNew
תעשה את זה איך שבא לך
טוב אפשרות ראשונה
)
(לא בא לי לשנות את השאילתא שלי
העמוד של הוספת ההודעה
הוא ב-JS נכון ? (במאמר שהבאתי לכם)
זה לא משנה
אני ממילא מתרגמת ל-VBS.
חצי JS וחצי VBS זה לא רציני
ואיך אני בודק שזה אכן עובד?
הכנסתי לקוד שלי את הטראנזיקציה הכל עובד נכון אבל איך אני יודע שבזמן אמת זה יעבוד כמו שצריך (כשאנשים באמת מכניסים הודעה באותו זמן)?
אני פשוט מצטער…
זה בגלל שאני ו-VBS לא מסתדרים הכי הרבה…
אני אוהב לעבוד בפונקציות ו-VBS אני לא מצליח אני גם לא אוהב את הדרך של VBS להחזיר נתונים (return ב-JS)
זה בדיוק העניין בטרנזאקציה
או שהכל מתבצע או שזה לא מתבצע בכלל.
אם אתם אומרים

אח"כ שלא יאשימו אותי שיש בעייה כזאת
ילדה אני שולח לך את השינוי
יש גם את זה
<%@ Transaction=required%>
אם זכרוני איננו מטעני.
האם rollBack יכול לתקוע לי את השרת
במקרה שיש בעייה שחוזרת על עצמה?
כי כביכול rollBack מבטל ומתחיל את הטראנזיקציה מחדש
הוא לא מתחיל אותה מחדש
הוא מבטל הכל
kפי ה-MSDN זה כן :-
אני מצטט
RollbackTrans — Cancels any changes made during the current transaction and ends the transaction. It may also start a new transaction.
מבטל כל פעולה שנעשתה במהלך הטראנזיקציה. וגם מתחיל טראנזיקציה חדשה
"It may " – רק אם אומרים לו
The provider will automatically start a new transaction after a RollbackTrans call, if the Attributes property of the Connection object is set to adXactCommitAbort.
וזה לא שניסיתי לקטול או משהו פשוט לא ידעתי מה נכון