אממ... בעיות אקסס

rmarko

New member
../images/Emo6.gif אם כן משימתי הוכתרה כמוצלחת

לדעתי אנשי התמיכה לא מודעים לעובדה שהצורה שבה את מעדכנת את המסד נתונים היא ידנית, אחרת הם לא היו אומרים לך שזו בעיה נפוצה באקסס. יתכן שזה בעיה נפוצה כשמעדכנים קובץ ידנית שלא תהיה אליו גישה במשך זמן מסוים - עד שהדרייברים בהגדרות ODBC של השרת יחד עם ה- cache הפנימי יתעדכנו; התפוצה של הבעיה מצטמצמת כשמדברים על עדכון המסד נתונים ידנית
כל פעם
הפורום הזה שאנחנו מדברים בו כרגע, אנחנו משתמשים בטפסים כדי להכניס את הנתונים למסד נתונים, וברגע שאנחנו לוחצים על שלח, המסד נתונים מתעדכן בעזרת מטודת Update שהיא חלק משפת ADO ממש כמו MoveNext. אין מישהו שכל הזמן יושב מול המחשב של תפוז עם קליינט FTP פתוח שמעלה את המסד בכל פעם שהוא מתעדכן (למרות שפה בטח משתמשים בכלל ב- SQL server אבל זאת לא הנקודה) - השימוש הנפוץ והטוב ביותר שיש ל- ASP על פני דפים סטטיים היא שאפשר לגשת למסד נתונים ישירות על השרת בלי עיכובים ובלי פרוטוקול FTP. אז איך לבצע שינויים במסד נתונים? באיזה שרת את, בתשלום או אחד חינמי? בד"כ כשאת מצטרפת לשרת קיים, תמיכה טכנית מציידת אותך בכל הדברים שאת צריכה לדעת כדי לעבוד עם המסד נתונים - בגדול מה שאת צריכה לעשות בכל קובץ asp שאיתו את רוצה לעדכן את המסד נתונים: 1. להתחבר לקובץ עם אובייקט מסוג connection; לדוגמא:
set objConn = Server.CreateObject("ADODB.Connection") objConn.Provider = "Microsoft.Jet.OLEDB.4.0" objConn.Open Server.MapPath("mydb.mdb")​
2. לפתוח רקורדסט של טבלה מסוימת - ממש select * from. 3. לעשות: objRecset.AddNew 4. אחד אחד, להשים ערכים בתוך הרשומה החדשה:
objRecset("strName") = Request.Form("name") objRecset("dteDate") = Now​
5. ליישם את השינויים לתוך המסד נתונים לגבי הרקורדסט הצפציפי שעליו את נמצאת: objRecset.Update . כמובן שלפני זה את צריכה באמת להעביר נתונים לעמוד הזה דרך טופס, כדי שב- request.form יהיה משהו. 6. לסגור את הרקורדסט ואת האובייקט חיבור - ולהציג פלט מסוים או להפנות לעמוד אחר. יש?
 
עכשיו, לעומת זאת, קצת השפלת אותי

שלא לצורך. רק בגלל שאתה לא מכיר אותי, זה לא יפה להניח שאני לא יודעת שום דבר...
ברור שבפורום, או בכל מקום שבו נותנים לגולשים להוסיף/לשנות מידע בדטהבייס, צריך לעדכן באמצעות דפי asp, עם טפסים ו-update וכו´. העניין הוא שאצלי, בינתיים (דגש על בינתיים), לגולשים אין שום זכות/צורך לגעת בדטהבייס. הם רק שולפים ממנו מידע להנאתם. האדם היחיד שמעדכן את הדטהבייס הוא אני, וזה נעשה בערך פעם בשבוע/שבועיים, ולכן נראה לי מיותר להשקיע בבניה של עמודי asp שישמשו עבורי ממשק לעדכון הדטהבייס, כשאני יכולה לעשות את זה ישירות באקסס. אלא אם, כמובן, אתה (או מישהו אחר שמאזין לשיחתנו) חושב שזה לא נכון לעבוד ככה. ובאשר לדרייבר (אגב - זה שאתה ציינת הוא של אקסס 2000, ואני עדיין באקסס 97): אני לא חושבת שאני יכולה להגדיר ככה חיבור ל-DB בשרת שלי (הוא בתשלום, לא חינמי), אבל את זה אני צריכה לברר איתם כנראה. השאלה היא למה חיבור כזה עדיף על ה-DSN שאני משתמשת בו?
 

קיפוש

New member
אמ...

את יכולה להשתמש בו גם בלי לשאול אותם, הם לא ישימו לב, וזה לא משנה אם את עובדת עם 97 או 2000 הוא עובד נהדר. והיתרון הבולט שלו זה המהירות...
 

rmarko

New member
לא להשפיל, ...לבזות ../images/Emo13.gif

למען האמת אני יוצא עם כל משתתף בפורום הזה מנקודת הנחה שהוא/היא מבינים טוב מאד asp; אבל כשהגעת ואמרת שאת מעלה את המסד נתונים כל פעם בעזרת ftp החלטתי לסגת אחורנית ולכתוב הסבר כמה שיותר ארוך, כדי ליישר קו למקרה שאת לא תביני משהו אחד או אחר, או למקרה שאפילו לא שמעת על addnew ו- update. זה לא בא להגיד שאני חושב שאת לא יודעת כלום, פשוט ככה אני
בכל מקרה - אני עובד בחלונות 98 עם PWS ואקסס 97 על המחשב שלי (בבחירתי, לא מכורך המציאות! אני בחרתי להיות מושפל !!) וה- jet engine עובד אצלי יופי טופי. למה הוא יותר טוב מה- DSN? דבר ראשון כי עם dsn-less בכל פעם שיש פעולה על המסד, אין את ה- dsn שיתווך בין ה- asp למסד נתונים. דבר שני, כי בגלל שלמרות שאיני יודע מדוע - שמתי לב שהדרייבר הזה עובד הכי מהר בגישה למסדות נתונים מכל דרייבר אחר. ולקביעתך: הרבה יותר טוב לעבוד עם טפסים מאשר עם אקסס ו- ftp, אם משמעות הדבר השבתת המערכת לחצי שעה - שעה פעמיים בחודש.
 
לא לבזות... לשפר.

ההבדל העיקרי בין DSN ל-DSNless הוא לא מהירות ולא נעליים... שניהם הם Connection String לכל דבר. אם תחליט להשקיע יום אחד ותחפש את הקובץ עצמו של ה-DSN, תסתכל לתוכו ותראה שהוא למעשה בדיוק (אבל בדיוק!) מה שאתה כותב ב-Connection String שלך בחיבור DSNless... פלוס עוד כמה פרמטרים מיותרים. ההבדל הוא אבטחה. למצוא פרצה ב-IIS שתחשוף קוד זה דבר שבא והולך במינון זמן של חודש חודשיים... ולחשוף קישור DSNless הרבה הרבה יותר קל מלגשת למערכת ההפעלה עצמה, לחטט בקבצים ולמצוא את הקובץ הנכסף. שניהם עובדים באותה מהירות, שניהם מציגים את אותם יתרונות וחסרונות ביצועיים... ההבדלים הם בסה"כ ש-DSN בטוח יותר ו-DSNless נוח יותר לתחזוק. זה הכל.
 

rmarko

New member
לא. גם מהירות.

מסכים איתך לנושא האבטחה, את האמת ממש לא חשבתי על זה - ובזה אתה צודק. אבל יש יתרון של מהירות בחיבור dsn-less על פני system dsn. בכל פעם שקוראים ל- system dsn connection יש גישה לרג´יסטרי לאחזור ערך מיקום הקובץ; זה לכשעצמו מאיט את התהליך ממש בשבריר של שניה, ועושה רושם שמדובר בהשהיה כל כך טריביאלי שזה לא משנה. לא כן הדבר כשמדובר בשרת שעובד עם 10 קליינטים בו-זמנית - אז לא מדובר ב- 10 שברירי שניה, אלא בהשהיה מצטברת שמאיטה את הקצב שליחת הנתונים לכל קליינט. במצב שבו האוסטרלית נמצאת (שרת בתשלום) זאת סיטואציה סבירה בהחלט, בכל שעה ביממה. זה אחד. שתיים: רוב הסיכויים שה- system dsn מוגדר ב- odbc כדרייבר microsoft access driver ולא כ- jet, ככה זה ברוב המקרים. ה- jet engine יותר מהיר מ- mad, זאת פשוט עובדה - והפרשי הביצועים בהחלט מוכיחים את עצמם כשיש עומס על השרת. שלוש, קראתי איפשהו ב- msdn שמיקרוסופט ביצעו ניסויים של הפרשי זמן-ביצועים בין dsn ו- dsn-less עם הדרייבר mad - והגיעו בתנאים של עומס על השרת לתוצאות יותר טובות עם dsnless. לא מדובר פה בהבדלים משמעותיים, מדובר על מקסימום שניה-שתיים בכל פעם במצבי לחץ על השרת. אבל אפילו אם יש מבקר אחד בדיוק על השרת - גם אז הוא יהנה ממהירות חישוב יותר טובה עם dsnless מאשר עם dsn.
 
אני לא אשבור לך את התדמית

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

ואכנס לויכוח מיותר. אבל כדאי שתבדוק את הנושא... תיאוריה לא מספיקה. אל תתן להגיון להשלים לך חורים של חוסר ידיעה. מה שאתה אומר הגיוני מאוד... ואם לא הייתי יודע טוב יותר, גם הייתי מסכים איתך. אבל תבדוק את זה. למען הדורות הבאים... שלך, לפחות.
 
../images/Emo45.gif

טוב, אני שמחה שהבהרנו את זה, ואני מתנצלת אם נשמע שנזפתי בך על השפלתי. גם אני עובדת עם 98 ו-PWS על המחשב המקומי, ושם גם אני משתמשת ב-jet (אבל ב-3.51, לא 4), אבל על השרת קיבלתי הוראות לעבוד עם ה-DSN. אז עכשיו באמת כדאי שאני אלך להציק לאנשי התמיכה שלי בשאלות הללו. ולגבי טפסים לעומת FTP - עכשיו יש לי חומר למחשבה.
וביי. (אני הולכת הביתה עכשיו)
 
למעלה