בולנט - דברים מיוחדים...

www.ASP.org.il

Israeli ASP Organization
ארגון ה-ASP הישראלי
מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP
מיקום: מאמרים ודוגמאות קוד > SQL

ADO

קצת היסטוריה...

ADO זוהי טכנולוגיה של מייקרוסופט והיא קומפוננטה של Active-X.
ראשי התיבות הן - ActiveX Data Objects
עם הקומפוננטה הזו יש אפשרות גישה למסד נתונים במינימום מאמץ, מתוך דפי הASP

מה מיוחד בADO?

1] ADO היא שפה קלה מאוד ופשוטה לביצוע, לעומת SQL ש_לפעמים_ קשה לעבוד איתה,
והיא נותנת _לפעמים_ הודעות שגיאה מעצבנות.
2] כתיבת סקריפט שיכניס רשומה לדאטאבייס בADO, קצרה בהרבה מאשר בSQL.

ותמיד יש חסרונות...

1] חסרון ראשי - מהירות. עם SQL העבודה על השרת יותר מהירה.
2] עם SQL לא צריך לפתוח אובייקט רקורדסט. אפשר לעשות פשוט conn.execute sql.

הוספת רשומה בADO

בואו ניצור דף, שבו אנו רוצים להכנס לדאטאבייס כלשהו, ולהוסיף רשומה.
זוהי הטבלה:

Heroes
id fname lname city Super Work
1 Clark Kent Metropolis Superman Daily Planet
2 Peter Venom New York Spiderman Daily Bugel

id = מספור אוטומטי.

עכשיו, ברצוני להוסיף רשומה חדשה של באטמן.
הנה היא:

fname lname city Super Work
Bruce Wayne Gotham City Batman Wayne Enterprises

אלו הפרטים שאני רוצה להכניס לטבלה Heros.

שם הקובץ הוא db.mdb.
בואו ניצור התחברות לקובץ:

<% set c=Server.CreateObject("adodb.connection") set r=Server.CreateObject("adodb.recordset") c.Open "DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" %>

כמובן ש c הוא החיבור ו r הוא הרקורדסט.

אחרי  החיבור, צריכים להתחבר לטבלה:
ישנן 2 אפשרויות לחיבור. אחת עם sql פשוט, והשניה עם הרקורדסט

חיבור רקורדסט:

r.Open "heros", conn,3,3

חיבור sql:

sql = "select * from heros" r.open sql,c,3,3

ה 3,3 בשביל אפשרות לשנוי.

בואו נוסיף רשומה חדשה

r.addnew

עכשיו, אמרנו שברצוננו להוסיף לרשומה את תאים הנ"ל:

r("fname") = "Bruce" r("lname") = "Wayne" r("city") = "Gotham City" r("Super") = "Batman" r("Work") = "Wayne Enterprises"

אנו רואים שהתחביר הוא r("the_cell") = "value"

ולבסוף - עדכון השורה:

r.update

OK, אז הוספנו את באטמן אבל מה אני רואה?
טעיתי בספיידרמן...
שם המשפחה אמור להיות Parker כמובן, ולא אויבו, Venom.
מה עושים?

עריכת רשומות

נשתמש בפתיחה של sql, והפעם עם האלמנט where:

sql = "select * from heros where id = 2" r.open sql,c,3,3

הכי כדאי לעבוד עם עוד טור ששמו id במספור אוטומטי, כדי למנוע שינוי כפול, במידה ואנו רוצים לעשות שינוי יחיד.
נבצע את השינויים, ונסגור את הקשר:

r("lname") = "Parker" r.update r.close

אין צורך לשנות את כל התאים, רק את הבעייתית.

עכשיו, החלטתי שסופרמן הוא הכי קיץ שעבר, אז ממש בא לי למחוק אותו.
מה אני עושה?

מחיקת רשומות

כרגיל, בוחרים את הרשומה הספציפית מהטבלה:

sql = "select * from heros where id = 1" r.open sql,c,3,3

מוחקים, וסוגרים קשר:

r.Delete r.close

תוספות והערות אחרונות

בכל פעם שאתם רושמים ***.r אתם משתמשים ב ado.
הנה המטודות של ado:

המטודה

מה היא עושה?

Open פותחת חיבור ומשפט SQL.
Close סוגרת חיבור.
Fields למרות שלא צריך ממש להשתמש במטודה זו, ע"מ לקבל מהירות מקסימלית כאפשר, משתמשים בה
להוצאת שדה מהדאטאבייס, כך: r.fields("the_field"). במקום שהרקורדסט יחפש אחת אחרי השניה
באיזו מטודה מדובר, הוא פשוט מקבל את המטודה. אם Fields לא נרשמת, הוא עובר אחת אחת, בדיוק כמו ב
Request.
Update מעדכנת טבלה / רשומה / רשומות עפ"י תדרוך קודם.
Delete מוחקת את מה שנבחר במשפט הSQL.
Recordcount אם עושים למטודה זו response.write, מקבלים את מספר הרשומות בבחירה.
MoveFirst מעבירה לרשומה הראשונה בבחירה.
MoveLast מעבירה לרשומה האחרונה בבחירה.
Movenext מעבירה רשומה פיסית (ללא תלות במשתנה זה או אחר, אלא אם כן משתמשים בWHERE) אחת קדימה מהרשומה הנוכחית
(ואם לא נבחרה רשומה נוכחית, אז לשניה).
MovePrevious מעבירה רשומה אחת אחורה מהרשומה הנוכחית.
Move(n) מעבירה n רשומות מהרשומה הנוכחית.
Eof סוף האובייקט (כלומר הרשומה האחרונה מתוך הבחירה).
Bof תחילת האובייקט  (כלומר הרשומה הראשונה מתוך הבחירה).

לסיכום -

עדיף בהרבה להשתמש בado למרות חסרונותיו.
היתרונות של הפשטות עולים בהרבה על החסרונות של המהירות.
יותר לא תראו שורות קוד מעצבנות ומסורבלות שתמיד יש בהן הודעות שגיאה מעצבנות, ולוקח 15 דקות לדבג אותן...



התגובות שלכם

         
01. 14/07/2005  D
יש מה להרחיב בנושא...

02. 18/05/2006  יאיר
עדיף להשתמש בSql כך
sql="שם השאילתא" אנחנו יוצרים את השאילתא בבסיס נתונים של הטבלה באקסס ואז רושמים r.open sql, c
לפני זה אנחנו מגדירים את r כאוביקיט של command כך:
set r=Server.CreateObject("adodb.command") זה עדיף על כל הדרכים האחרות מקווה שעזרתי

         

מחבר: eLadרמת קושי: 1  ||  ציון: (6.72727272727273)כל הזכויות שמורות ל-IAO ©

© כל הזכויות שמורות ל-IAO
Lamparas y Mobiles  |   בולנט - Bolenat סטלן  |   מתכונים  |   הומו גאה  |   שמות  |   מיסטיקה וקבלה  |   Fisherman Pants סדרות טלויזיה טיסות זולות הודו נפאל תאילנד ביקורות משחקי מחשב Engineering Solutions עיצוב גרפי בפלאש לימוד צילומים תמונות ופיתוח קנוורט משאיות ישראל islands & beaches TV Series Guide חגי ישראל play online game clothes wear בניית אתר חנויות מחשבים ו-ציוד הקפי jewish holidays israeli games ישראל אופנה חולצות טישירט מעוצבות הריון לידה תינוק כוסיות ערומות קורס אימון אישי מידע על חברות רשתות ikesound car audio wholesale recetas comidas family and woman magic trip T Shirt mania Bolenat Searches Bolenat UK online video clips חיפושים מגזין מסטול ל-סטלן המצוי Hebrew learning online תכשיטים טבעות שרשראות קליפרים מצתים התפתחות הילד comparte light lamps תרופות / מחלות הדפסה על חולצות למכירה מוזיקה ישראלית תמונות סרטונים מצחיקים גידול צמחים פרחים ישראלים בעולם מתפנקים - ספא פינוק מושלם ייעוץ עסקים משפחתיים סרט קולנוע - קומדיה סאטירה כסף / שוק ההון לימוד שחיה בריכה מפסיקים לעשן סיגריות נשים אישה בחורה בחורות Bongs and Pipes Music Festivals Coca-Cola קססונית