1 / 31

ActiveX Data Objects

ActiveX Data Objects. מכיל את כל הרשומות המהוות תוצאה של שאילתה מאפשר שליטה על החיבור למסד הנתונים מבצע פקודות ושאילתות על מסד הנתונים מאחזר שגיאות של ADO מייצג מידע ממערך הרשומות פועל בשילוב עם אובייקט command כדי להגדיר פרמטר שאילתה או פרוצדורה מאפשר גישה למאפייני אובייקט ADO.

trista
Download Presentation

ActiveX Data Objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ActiveX Data Objects • מכיל את כל הרשומות המהוות תוצאה של שאילתה • מאפשר שליטה על החיבור למסד הנתונים • מבצע פקודות ושאילתות על מסד הנתונים • מאחזר שגיאות של ADO • מייצג מידע ממערך הרשומות • פועל בשילוב עם אובייקט command כדי להגדיר פרמטר שאילתה או פרוצדורה • מאפשר גישה למאפייני אובייקט ADO RecordSet Connection Command Error Field Parameter Property

  2. אובייקטConnection • Dim cn As New ADODB.Connection • cn.ConnectionString =“DSN=BIBLIO” • התחברות למסד נתונים ללא שימוש ב- DSN • "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb“ • “Driver=Microsoft Access Driver (*.mdb); DBQ=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb“ • “Provider=SQLOLEDB.1;USERID=judith;password=123: InitialCatalog=DB;DataSource=Server1” • cn.Open • cn.Close • Set cn = Nothing

  3. אובייקטConnection – השיטה Execute • cn.Execute("select * from authors where [year born]>1943") • cn.Execute("select * from authors where [author] like ‘k*’") • cn.Execute(“Delete from authors where Author=‘Peter, Shvartz’”) • cn.Execute(“Insert into authors ([author],[year born]) select ‘Peter, Shvartz’,1978")

  4. אובייקטRecordSet • Dim rs As ADODB.Recordset • Set rs = cn.Execute("select * from authors where [year born]>1943") • Do While Not rs.EOF • List1.AddItem "Year Born: " & rs.Fields("year born") & vbTab & "Name: " & rs.Fields("author") • rs.MoveNext • Loop • rs.Close • Set rs = Nothing

  5. אובייקטRecordSet • Dim rs As ADODB.Recordset • Set rs = cn.Execute("select * from authors where [year born]>1943") • Do While Not rs.EOF • List1.AddItem "Year Born: " & rs.Fields("year born") & vbTab & "Name: " & rs.Fields("author") • rs.MoveNext • Loop • rs.Close • Set rs = Nothing

  6. מערכי רשומות • Set rs = New ADODB.Recordset • rs.ActiveConnection = cn • sSql = "select * from publishers where[Name]between 'v' and 'w' order by name" • rs.Source = sSql • rs.Open

  7. מערכי רשומות • rs.MoveFirst • Do While Not rs.EOF • List1.AddItem rs.Fields("name") • List2.AddItem "city: " & rs.Fields("city") • rs.MoveNext • Loop

  8. הוספת רשומה • Set rs = New ADODB.Recordset • rs.ActiveConnection = cn • rs.CursorType = adOpenKeyset • rs.LockType = adLockOptimistic • rs.Source = "publishers" • rs.Open • rs.AddNew • rs.Fields("name") = "Judith, Kabeli" • rs.Update

  9. אובייקטCommand • ב- Access נגדיר שאילתה בשם “LookUP” • ב- VB נקרא לשאילתה זו כך: • Dim cmd As New ADODB.Command • Dim parm As New ADODB.Parameter • Set cmd.ActiveConnection = cn • cmd.CommandText = "Lockup" • cmd.CommandType = adCmdStoredProc • Set parm = cmd.CreateParameter("Letter", adChar, adParamInput, 1) • cmd.Parameters.Append parm • cmd("Letter") = "y" • Set rs = cmd.Execute

  10. מחלקות - Classes • יצירת מחלקה - Project | add Class Module • הגדרת מאפיינים - ציבוריים או פרטיים • הגדרת שיטות - בדומה להגדרת פרוצדורות/פונקציות • הגדרת אירועים

  11. הגדרת מאפיינים למחלקה • משתנים ציבוריים -public name As Integer • משתנים פרטיים – Private/Dim name As Integer • עמ"נ שיהיה אפשר לשלוף פרטים של מאפיינים פרטיים יש צורך להגדיר שגרות מאפיינים ציבוריותPublic Property Get/ Let /Set name

  12. הגדרת שיטות • מגדירים פונקציות ופרוצדורות באזור • ה- Class Module. והן נחשבות שיטות המחלקה.

  13. הגדרת אירוע • הצהרת האירוע במודול המחלקה: • Public Event name (parameter/s) • 2. הפעלת האירוע כאשר תנאי מסוים התרחש. (לרוב בתוך שיטה) RaiseEvent EventName (parameter/s) - • 3. כדי לגשת לאירוע מקוד הקורא, יש להצהיר על אובייקט • Dim WithEvents ObjectName as ClassName • ולהגדיר שגרת אירוע • Private Sub ObjectName_EventName (parameter/s) • End Sub

  14. יצירת אובייקט מחלקה • Dim ObjName as New ClsName • Dim ObjName as ClsName • Set ObjName = New ClsName • Dim ObjName as Object קישור מאוחר • Set ObjName = CreateObject(“MyProj.ClsName”) • חסרון – object browser לא זמין • 4. Dim ObjName as Object • Set ObjName = New MyProj.ClsName

  15. השמדת אובייקט Set ObjName = Nothing

  16. יצירת ActiveX DLL • מרכיבי EXE/ActiveX DLL שימושיים ביותר מכיוון שהם משמשים כקופסאות שחורות לבניית אובייקטים לפרויקטים אחרים במיוחד לשרתי WEB, שכן פעולתם נוחה מהירה ובטוחה. • יוצרים פרוייקט ActiveX DLL • מגדירים את המחלקה: מאפיינים, שיטות ואירועים. • שומרים את הפרוייקט ויוצרים DLL ע"י בחירת • File| Make DLL • יוצרים פרוייקט EXE ובוחרים את ה- DLL שיצרנו ע"י הוספתו מ- Project|References • יוצרים אובייקט של המחלקה ע"י objname As New NameDLL.ClassNameDim

  17. אוסף - Collection אוסף הוא סוג אובייקט הכולל קבוצת פריטים (אובייקטים). ב- VB יש מספר אובייקטי-אוספים, כמו Forms ו- Controls יתרון – ניתן לבצע פעולות על כל האובייקטים הכלולים באוסף Private Sub MinAll() Dim frmelm as Form For each frmelm in Forms frmelm.WindowState = vbMinimized Next frmelm End Sub

  18. אוסף - Collection הגדרת אוסף: Dim ColName as New Collection אוסף המוגדר ע"י המשתמש חולק קבוצה זהה של מאפיינים ושיטות. המאפיין Count – מחזיר את מספר האובייקטים באוסף המאפיין Item - מספק גישה לאובייקט יחיד מהאוסף השיטה Add - מוסיפה אובייקט לאוסף השיטה Remove – מוחקת אובייקט מהאוסף

  19. אוסף - Collection Dim ColTxt as New Collection Private Sub Form_Initialize() Dim CtrlItm as Control For each CtrlItm in Me.Controls If TypeOf(CtrlItm ) = “TextBox” then ColTxt.Add CtrlItm End If Next CtrlItm End Sub

  20. פקדי ActiveX • ב V.B ישנם שלוש דרכים לבנות פקדי ActiveX: • ע"י בנית פקד חדש . • ע"י הסתמכות על פקד אחד (כגון Text ). • ע"י הכנסת מספר פקדים לתוכו (אוסף פקדים קיימים).

  21. יצירת פקדי ActiveX התחלה:התחל פרוייקט חדש אך הפעם בחר פרוייקט ActiveX Control ולא פרויקט Exe . עיצוב:ניתן לעצב את הפקד בדיוק כמו כל Form שעיצבנו עד היום כגון הוספת פקדים ותכונות. הגדרת מאפיינים:ע"י פרוצדורות property בלבד ולא ע"י מאפיינים ציבוריים (אחרת הפקד לא יעבוד כראוי) Public Property Get/Set propertyName (…) As ???

  22. הגדרת מאפייני פקד ActiveX Property procedures are required because you must notify Visual Basic whenever a property value changes. You do this by invoking thePropertyChangedmethod of the UserControl object at the end of everysuccessfulProperty LetorProperty Set, as shown in the following code fragment.

  23. הגדרת מאפייני פקד ActiveX Private mblnMasked As Boolean Public Property Get Masked() As Boolean Masked = mblnMasked End Property Public Property Let Masked(ByVal NewValue As Boolean) mblnMasked = NewValue PropertyChanged "Masked“ End Property

  24. הגדרת אירוע Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) bMouseDown = True UserControl_Paint RaiseEvent MouseDown(Button, Shift, X, Y) End Sub Public Event Click() Private Sub UserControl_Click() MsgBox "You clicked the control" RaiseEvent Click End Sub

  25. שימוש באובייקט PropertyBag • הקוד השייך לפקד ActiveX מתחיל לפעול ברגע שמשרטטים אותו על גבי הטופס. ניתן לקבוע ערך של מאפיין בזמן עיצוב, ניתן לשנות אותו בזמן התחלת התוכנית ובזמן סיום התוכנית, ערכי הפקד חוזרים למצב שבו הם היו בסביבת העבודה • ולכן יש צורך לטפל בשני המצבים שהמאפיין יכול להיות בהם • כשמשנים ערך מאפיין בזמן עיצוב, יש לדאוג שהפקד ידע להחזיר לעצמו את הערך בזמן פעולת התוכנית וכן שידע גם לחזור בחזרה לערך זה (אם השתנה) כאשר חוזרים לזמן עיצוב

  26. שימוש באובייקט PropertyBag • אובייקט PropertyBag מאפשר לפקד ActiveX לשמור על ערכי המאפיינים שלו על ידי השגרות ReadProperties ו- WriteProperties • Private Sub UserControl_WriteProperties(PropBag As PropertyBag) • Call PropBag.WriteProperty("BackColor", m_BackColor, m_def_BackColor) • Call PropBag.WriteProperty("Caption", m_caption, m_def_Caption) • End Sub • Private Sub UserControl_ReadProperties(PropBag As PropertyBag) • m_BackColor = PropBag.ReadProperty("BackColor", m_def_BackColor) • m_caption = PropBag.ReadProperty("Caption", m_def_Caption) • End Sub

  27. אובייקט Ambient ו- Extender • אובייקטים המספקים מידע על הפקד ביחס למכולה שלו • אובייקט Extender זמין רק כאשר הפקד ממוקם על המכולה לכן ניתן לגשת לאובייקט זה באירועים InitProperties ו- ReadProperties • UserControl.Extender.ToolTipText = "Test the extender object" • אובייקט Ambient • Private Sub UserControl_ReadProperties(PropBag As PropertyBag) • UserControl.BackColor = Ambient.BackColor • End Sub • Private Sub UserControl_AmbientChanged(PropertyName As String) • UserControl.BackColor = Ambient.BackColor • End Sub

  28. בדיקת הפקד • ניתן לנסות את הפקד באמצעות ה- Explorer בחר באפשרות Run|Start • ניתן לנסות את הפקד גם ע"י הוספת פרויקט רגיל והוספת הפקד אליו. הוסף פרויקט exe רגיל, סגור את חלון הפקד (כלומר את חלון העיצוב שבו עיצבת את הפקד ), פעולה זו גורמת לפקד להיות זמין בפרויקט השני(ראה פקד חדש בארגז הכלים), הוסף את הפקד לפרויקט ה-exe והשתמש בו.

  29. מסמך ActiveX • יישום הפועל בתוך יישום (container) , כגון Internet Explorer, במקום לפעול כתוכנית עצמאית. • יתרונות • יצירת יישומים בעלי יכולת עבודה ב- Web • אין צורך ללמוד שפה נוספת ליצירת מסמכים אלה, ניתן לעצב את המסמכים וכן לנפות שגיאות • אובייקט Hyperlink מאפשר לנווט בדפי Web. הדפים יכולים להיות מסמכי ActiveX או כל סוג אחר של דפי Web • ניתן לאחסן עותקים של קבצי ההפצה על ה- Web, באופן שיאפשר למשתמשים להורידם מיד בכניסתם לאתר. (יורה לשרת להוריד קבצי cabinet - *.CAB- קובץ דחוס) - זוהי שיטת הפצה המבוססת ע"י שימוש ב- Web, מקלה על תחזוקת הקוד ומוודאת אחידות בין הגרסאות שהופצו

  30. מסמך ActiveX • חסרונות • המשתמש יצטרך להתקין כל גרסה של מסמך ActiveX • רק Explorer תומך ב- ActiveX

  31. יצירת מסמך ActiveX • התחל פרוייקט מסוג ActiveX Doc • צור את ממשק המשתמש של היישום • כתוב את הקוד שיבצע את הפעולות הנדרשות • נסה את היישום ונפה שגיאות • העזר ב- Package & Deployment כדי ליצור גרסת התקנה שתופץ ב- Web • תיאור האובייקט UserDocument והפקדים המאוחסנים בו – קובץ DOB • אם הממשק מכיל אלמנטים גרפיים כלשהם – קובץ DOX • לאחר הידור המסמך, ניצור קובץ EXE או DLL שילווה בקובץ VBD • קובץ VBD הוא קובץ שאליו נכנס Internet Explorer

More Related