22-04-2005, 23:32
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
ASP ומסדי נתונים - מדריך
לאור בקשות חוזרות ונשנות, וכן שאלות ותהיות - הנה מדריך להתחברות למסד נתונים בעזרת ASP.
אני לא!!! הולך להסביר איך להתחבר/לעבוד עם access למרות שזה מה שכולם לומדים, מאחר ו-access הוא לא מסד נתונים שנועד לאינטרנט, אין ביכולתו לתמוך בריבוי משתמשים ועוד בעיות.
אני הולך להדגים חיבור למסד נתונים בעזרת מסד הנתונים MySql, מסד נתונים קוד פתוח הניתן להורדה בחינם!!!
מהיכן אני מוריד מסד נתונים MySql?
מכאן: http://dev.mysql.com/get/Downloads/...om/pick#mirrors
(רק לבחור אתר ממנו רוצים להוריד)
מהיכן אני מוריד ממשק לניהול מסד הנתונים?
MySQL Administrator - http://dev.mysql.com/get/Downloads/...l.zip/from/pick
MySQL Control Center - http://dev.mysql.com/downloads/other/mysqlcc.html
וכן ניתן למצא ממשקים web'ים מעולים כמו PhpMyAdmin.
לאחר שהתקנתם את מסד הנתונים (תמיכה לזה לא תינתן במסגרת פורום זה) - והצלחתם לבצע פעולות כמו יצירת מסד נתונים, יצירת טבלה והזנת נתונים (מתוך אחת מתוכנות הניהול כמובן) והגדרתם שם משתמש וסיסמה לגישה למסד הנתונים, ניתן לעבור להתקנת רכיב נוסף.
מהיכן אני מוריד MyODBC ?
רכיב זה הוא ה"דרייבר" (מנהל התקן) בעזרתו יודע windows לדבר עם מסד הנתונים.
לרכיב זה אין הגדרות, אין תהליך התקנה מסובך, אלא פשוט פעמיים next והתסתיים התהליך, להורדה: http://dev.mysql.com/get/Downloads/...n.msi/from/pick
עד כאן כל מה שהיינו צריכים למסד הנתונים.
נעבור לקוד ASP.
נעבור על הקוד הבא:
קוד:
dim sCn
dim oCn
dim oRs
sCn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=dbname; _
USER=username;PASSWORD=password;OPTION=3;"
Set oCn = Server.CreateObject ("ADODB.Connection")
Set oRS = Server.CreateObject ("ADODB.RecordSet")
בשלושת השורות הראשונות אנו מצהירים על משתנים.
sCn היא מחרוזת החיבור שלנו (connection string), תפקידה של מחרוזת זו, לומר לאובייקט המשמש לנו לחיבור מסד הנתונים (ADODB) באיזה מסד נתונים אנו משתמשים ופרטים עליו.
מחרוזת החיבור
דרייבר
קוד:
DRIVER={MySQL ODBC 3.51 Driver};
בשורה זו אנו מודיעים כי אנו עובדים עם מסד נתונים MySql עם דרייבר ODBC גרסה 3.51
עבור גרסאות ישנות יותר של MyODBC, אין צורך לציין את הגרסה, ניתן לכתוב כך:
שרת
אם מסד הנתונים מותקן על המחשב שלנו, מדובר על שרת מקומי והתחביר יהיה:
אם שרת הנתונים ממוקם על שרת מרוחק כל מקום ברחבי האינטרנט), התחביר יהיה:
קוד:
SERVER=data.domain.com;PORT=3306;
כש-data.domain.com היא כתובת מסד הנתונים, כמובן שניתן לכתוב אותה גם ככתובת IP.
פורט ברירת המחדל לעבודה עם MySql הוא 3306, אלא אם הוגדר וצויין אחרת.
זיהוי
פרטים על שם מסד הנתונים (שרת מסד נתונים מכיל יותר ממסד נתונים אחד), על שם המשתמש והסיסמה לחיבור למסד הנתונים:
קוד:
DATABASE=myDatabase;
USER=myUsername;
PASSWORD=myPassword;
אפשרויות
אפשרות 3 היא אופטימלית מבחינתנו ולא נדון באופציה זו. בעקרון, אופציה זו נועדה לומר ל-MyODBC שהלקוח המתקשר איתה הוא לא 100% תואם ODBC ולכן יש התאמות לבצע.
--- דוגמה למחרוזת חיבור לקובץ access ---
(למרות שאמרתי שלא, הנה הסבר גם בנושא זה)
קוד:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\path\to'database.mdb;
User Id=admin;Password=;"
בחיבור זה אנו משתמשים ב-OLEDB ולא ב-ODBC.
הנה דוגמה לחיבור ODBC (לא מומלץ):
קוד:
Driver={Microsoft Access Driver (*.mdb)};
Dbq=\path\to'database.mdb;Uid=Admin;Pwd=;"
מאחר וקובץ access הוא לא שרת של מסד נתונים, אנו צריכים להגדיר בפרוש היכן הוא נמצא פיזית על המחשב. ניתן להגדיר כתובת פיזית:
אך מאחר ובשרת המאוחסן אצל ספקית איחסון, אין אנו יודעים היכן פיזית ממוקם הדף שלנו, אך אנו יודעים את מיקום הקובץ יחסית לקוד שלנו, נוכל להשתמש באובייקט server עם המאפיין MapPath שמחזיר את הכתובת הפיזית המלאה אל הקוד שלנו.
דוגמה:
נניח שמיקום השרת שלנו אצל הספק הוא בכונן x תחת ספרייה שנקראת webserver תחת ספרייה שנקראת בשם הדומיין שלנו.
קוד:
x:\webserver\fresh_co_il\
בתוך תקייה זו של האתר שלנו יש את התקיות הבאות:
httpdocs - המכילה את קבצי האתר שלנו
db - המכילה את מסד הנתונים כקובץ access
cgi-bin - תקיית cgi
ועוד תקייות במבנה זה:
קוד:
webserver
|
+--fresh_co_il
|
+--httpdocs
|
+--db
|
+--cgi
|
....
כמובן שהקובץ (מסד הנתונים) לא נמצא תחת אותה תקייה כמו שאר האתר מחמת אבטחה! אם הוא היה נמצא תחת התקייה httpdocs, ומישהו היה יודע את הנתיב אליו, הוא היה יכול להוריד אותו כמו כל קובץ אחר.
אם שם הקובץ הוא data.mdb, אזי ההוראה:
קוד:
Server.MapPath("../db/data.mdb")
תחזיר את המחרוזת הבאה:
קוד:
x:\webserver\fresh_co_il\db\data.mdb
לכל בתוך מחרוזת החיבור נוסיף את הקריאה הזו וזה יראה כך:
קוד:
...Data Source=" & Server.MapPath("../db/data.mdb") & ";User...
--- כאן מסתיים ההסבר על מחרוזת החיבור לקובץ access ---
אובייקטים
קוד:
Set oCn = Server.CreateObject ("ADODB.Connection")
בשורה זו אנו מגדירים מופע של אובייקט ADODB מסוג חיבור (connection) למסד נתונים. באמצעות אובייקט זה אנו נתחבר למסד הנתונים
קוד:
Set oCn = Server.CreateObject ("ADODB.RecordSet")
בשורה זו מוגדר אובייקט מסוג "רשומה", אובייקט זה יחזיק את התוצאות לשאילתות שלנו.
המשך בקרוב.....
נערך לאחרונה ע"י fat fish בתאריך 26-04-2005 בשעה 11:52.
|