ActiveX Data Control BICS 546. Intrinsic and ActiveX Controls VB supports two types of controls: –Intrinsic controls (command button, listbox, etc): When.

Slides:



Advertisements
Similar presentations
Basics of Database Programming with VB6
Advertisements

ADO DB in Access VBA © Walter Milner 2005 Slide: 1 ADO VBA Programming in Access.
Irwin/McGraw-Hill Copyright© 2000 by the McGraw-Hill Companies, Inc. PowerPoint® Presentation to accompany prepared by James T. Perry University of San.
Mark Dixon, SoCCE SOFT 131Page 1 16 – Persistent data storage: relational databases and ADO.
CIS 338: Using ADO (ActiveX Data Objects) [largely replaced by adonet.vb] Dr. Ralph D. Westfall April, 2003.
VB.NET Database Access ISYS546. Microsoft Universal Data Access ODBC: Open Database Connectivity –A driver manager –Used for relational databases OLE.
The ADO Data Control. Universal Data Access Open Database Connectivity (ODBC) –standard for accessing data in databases OLE-DB –allows access to data.
ActiveX Data Object ISYS 562. ADO An ActiveX control ActiveX is build upon COM, a contract that defines a standard interface by which objects communicate.
Using Visual Basic 6.0 to Create Web-Based Database Applications
VBA Data Access Object. Data Access Objects DAO With DAO we can: –Run queries –Update values in database tables –Create structure of databases Tables,
Introduction to ADO.Net, VB.Net Database Tools and Data Binding ISYS 512.
Programming the RecordSet Object
Using ADO Programmatically The Connection Object and the Command Object.
Database Connectivity Session 2. Topics Covered ADO Object Model Database Connection Retrieving Records Creating HTML Documents on-the-fly.
VB.NET Database Access ISYS 812. Microsoft Universal Data Access ODBC: Open Database Connectivity –A driver manager –Used for relational databases OLE.
Visual Basic Database Access BICS546. Microsoft Universal Data Access OLE DB: The OLE database protocol –Allows a program to access information in any.
Copyright 2003 : Ismail M.Romi, PPU. All Rights Reserved 1 Lab10 Interacting with Data (Database Management)
Database Programming (using ADO) Universal Data Access – Microsoft strategy for providing access to information across the enterprise. – UDA provides high-performance.
CIS 451: ASP Recordsets Dr. Ralph D. Westfall May, 2002.
Introduction to ADO.Net, VB.Net Database Tools and Data Binding ISYS 512.
1 Chapter 8 Object-Based Programming in VBA. 8 Chapter Objectives Declare and use object variables Create procedures that use built-in form methods Find.
Component 8, Slide 1 CP2030 Visual basic for C++ Programmers, ‘The VB Team’ Copyright © University of Wolverhampton CP2030 Visual Basic For C++ Programmers.
ASP & ADO. Connection Object An implicit connection is created when we open a recordset without a connection object. –rs.open “Customer”, "DSN = Sales”
Overview of Database Access in.Net Josh Bowen CIS 764-FS2008.
Chapter 8 Relational Databases ActiveX Database Controls 8 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
CHAPTER 9 DATABASE MANAGEMENT © Prepared By: Razif Razali.
ADO Recordsets. Recordset Objects Similar to Tables and Queries: data Using VBA/VBScript you… –Open a recordset, –Locate a record –Update or add a record.
Introduction to ADO.Net and Visual Studio Database Tools ISYS 512.
ActiveX Data Object (ADO) in JavaScript J.L.Wang, Yen-Cheng Chen Dept. of Infomation Management Ming-Chuan University Jan
1 VBScript Session What we learn last session?
Introduction to ADO By David R. Stevenson Consulting Software Engineer ABB Automation.
Database 20/2/12 Connection. 
Irwin/McGraw-Hill Copyright© 2000 by the McGraw-Hill Companies, Inc. PowerPoint® Presentation to accompany prepared by James T. Perry University of San.
Using Visual Basic 6.0 to Create Web-Based Database Applications
McGraw-Hill/Irwin Programming in Visual Basic 6.0 © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Update Edition Chapter 11 Accessing Database.
Mark Dixon Page 1 23 – Web applications: Writing data to Databases using ASP.
ADO 2.5 Kamaljit Bath, Program Manager Data Access Group.
EM412 Using Adaptive Server Anywhere with Visual Basic Ali Chalhoub Technical Support Consultant iAnywhere Solutions
Lecture Note 10: Simple Database Techniques. Introduction –Database System –Access, SQL Server and others. –Microsoft Access - Interacting with this databases.
Visual Basic ADO Programming 56:150 Information System Design.
What is database?  Any Method for access info into Application from DataBase?  ODBC is standard for Accessing Data.  Problem with ODBC:  Information.
ActiveX Data Objects (ADO) is Microsoft’s latest database object model. The goal of ADO is to allow VB developers to use a standard set of objects to refer.
Tutorial 91 Databases A database is an organized collection of related information stored in a file on a disk A database allows companies to store information.
Introduction to ADO.Net and VS Database Tools and Data Binding ISYS 350.
INSERT BOOK COVER 1Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall. Exploring Getting Started with VBA for Microsoft Office 2010 by.
Lab 8 Data Access Using Microsoft ActiveX Data Object (ADO)
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
ADO ActiveX Data Object. ActiveX Data Objects (ADO) is Microsoft’s latest database object model. The goal of ADO is to allow VB developers to use a standard.
What’s new in ADO 2.5 Greg Hinkel Program Manager Data Access Group
Source = Table rsObject.Open tablename, Connection Object, CursorType, LockType, adCmdTable Source = Stored Procedure rsObject.Open stored procedure name,
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 6: Accessing a database with PHP Rob Gleasure robgleasure.com.
7-1 Active Server and ADO Colorado Technical University IT420 Tim Peterson.
ASP-13-1 Recordsets Colorado Technical University IT420 Tim Peterson.
1 ADO Activex Data Objects. 2 ADO ADO allows users to access data easily from many existing databases (such as Access or Paradox) From ODBC compliant.
ADO & Recordsets. ADO Description & History  ActiveX Data Objects  History  1991 ODBC  Data Access Objects (DAO) for VB developers (JET)  Remote.
Using databases ActiveX Data Objects (ADO) Connecting to a database Reading data from a database Inserting, updating and deleting records Using databases.
Lecture 4 Manipulating Form Data using methods of Recordset and RecordsetClone in VBA Restrict data with filter 1 Rapid Application Development.
 2 Data Object Library approaches ◦ DAO (Data Access Objects)  Original access strategy (up to VB6)  Closely linked to MS Access ◦ ADO (ActiveX Data.
Visual Basic Database Access
Visual Basic Database Programming.
Data Access Objects .
ADO VBA Programming in Access
Find, filter etc with connection to Access code internally
ActiveX Data Objects (ADO)
The Recordset Object.
INT213 Updating the Database.
ربط الفيجوال بيسك VB مع قواعد البيانات
VISUAL BASIC INTRODUCTION TO DATA CONNECTIVITY.
Chapter 10 ASP and Data Store Access
Working With Databases
Presentation transcript:

ActiveX Data Control BICS 546

Intrinsic and ActiveX Controls VB supports two types of controls: –Intrinsic controls (command button, listbox, etc): When compile a program the code to call the intrinsic controls becomes embedded in the executable file. –ActiveX controls: the code containing the methods and events for an ActiveX control is stored in a.OCX file and not stored in the executable.

Intrinsic and ActiveX Controls VB Program Executable.EXE Intrinsic Controls ActiveX Controls Windows Library ActiveX.OCX

ActiveX Controls ActiveX is build upon COM, a contract that defines a standard interface by which objects communicate. ActiveX controls support Property Pages. You set properties by using either property page or property window.

ADO Data Control An ActiveX control

ADO Object Model There are three main objects on which the ADO object models is built: –Connection object: make connection to the database. –Command object: run SQL against the database. –Recordset object: holds some or all of the records in database. Note: Command and recordset object can make connections independently.

Three Ways of Connecting to Databases Using ADO Data Environment ADO Data Control Connecting in code using ADO Connection object.

ADO Data Control Project/Components/Microsoft ADO 6.0 Double Click ADO to insert ADO Right Click and select ADODC Properties –General : Source of Connection For connection String, data providers’ property dialog are different –RecordSource: 1 – adCmdText: SQL statement 2 – adCmdTable: Table in the database 4 - adCmdStoredProc

ADO Properties BOF Action, EOF Action Command TimeOut: Amount of time in seconds the ADO control will allow for commands to be executed on the server. ConnectionString CursorLocation: server site, client site CursorType MaxRecords: 0 means no limit. RecordSource

Data-Bound Controls Data Source Data Field

Navigating the Database Use the navigation buttons on the data control. Code the recordset object created by the data control. –To open the recordset: Use the Refresh method in the FormLoad event. DataControlName.Refresh –To access the recordset’s properties and methods: DataControlName.Recordset.Property DataControlName.Recordset.Method

BOF and EOF in a Record Set BOF Record # 1 Record # 2 Record #3 EOF

Loop through a Recordset DO Until Recordset.EOF ‘Perform action on data Recordset.MoveNext Loop Do While Not Recordset.EOF ‘Perform action on data Recordset.MoveNext Loop

Recordset Methods AddNew, Update, Delete –After delete, MoveNext MoveFirst, MoveLast, MoveNext, MovePrevious Find: Search a recordset.

Recordset Navigation Methods MoveNext, MoveLast, MovePrevious, MoveFirst ADODC1.Recordset.MoveNext IF ADODC1.Recordset.EOF THEN ADODC1.Recordset.MoveLast End IF ADODC1.Recordset.MovePrevious IF ADODC1.Recordset.BOF THEN ADODC1.Recordset.MoveFirst End IF

Referring to Database Fields DataControName.Recordset.Fields(“fieldName”) DataControName.Recordset(“fieldName”) DataControName.Recordset!fieldName

ADO Control Recordset Update Methods Adding records: ADODC1.Recordset.AddNew (AddNew clears bound controls. The new record is added when move to the next record or added by: ADODC1.Recordset.Update (with a SaveNew button) Deleting records (after deletion, move to the next) ADODC1.Recordset.Delete ADODC1.Recordset.MoveNext IF ADODC1.Recordset.EOF THEN ADODC1.Recordset.MoveLast END IF Updating record: The database is automatically updated if the user moves to a new record. Otherwise it can be updated by: ADODC1.Recordset.Update (with a SaveChange button)

Record set Find Method Syntax: RecordsetName.Find criteria Only accept simple comparison criteria. Example: –Adodc1.recordset.Find “CID = ‘” & txtCID & “’” Finding employees hired between 2/15/2000 and 5/15/2000: –Adodc1.recordset.Find “Hdate > #2/15/2000#” Then use IF statement in program to filter out those hired after 5/15/2000

Find Code Example Private Sub Form_Load() Adodc1.Refresh List1.Clear Do Until Adodc1.Recordset.EOF List1.AddItem Adodc1.Recordset.Fields("cname") Adodc1.Recordset.MoveNext Loop End Sub Private Sub List1_Click() Adodc1.Recordset.MoveFirst Adodc1.Recordset.Find "CNAME = '" & List1.Text & "'" End Sub Demo

Accessing Recordset in ADO Data Control and Data Environment Data Control –Adodc1.Recordset.MoveNext Data Environment’s command object –DataEnvironment1.rsCommand1.MoveNext

Events of ADO Data Control Error WillChangeField, WillChangeRecord, WillChangeRecordSet, WillMove. FieldChangeComplete, RecordChangeComplete, RecordsetChangeComplete EndOfRecordSet Other mouse events

Parameters Passed to the Event Handlers Error: ErrorNumber, Description, Scode, Source, etc. WillChange: (Illustrate ADODB Enum) –adReason: adRsnAddNew, adRsnDelete, adRsnUpdate – adStatus: adStatusCancel, adStatusCantDeny,adStatusOK – etc. ChangeComplete: adReason, pError, adStatus

Data Validation with the ADO Data Control WillChangeField, WillMove, WillChangeRecord, WillChangeRecordset You can cancel the pending change if the adStatus is not set to adStatusCantDeny by changing the adStatus to adStatusCancel. The ADO control must be refreshed after an event handler is fired using the Refresh method.

WillChangeField Validation Example IF adStatus <> adStatusCantDeny THEN IF MsgBox(“DO you want to update” & Fields(0), vbYesNO) = vbNo THEN adStatus = adSTatusCancel END IF ADODC1.Refresh

WillChangeRecord Validation Example IF adStatus <> adStatusCantDeny THEN IF MsgBox(“DO you really want to update?”, vbYesNO) = vbNo THEN adStatus = adSTatusCancel END IF ADODC1.Refresh

Building ADO Control from Code Adodc1.ConnectionString = “provider=microsoft.jet.oledb.4.0;persist " & _ "security info=false;data source=c:\program files\microsoft visual studio\vb98\nwind.mdb" Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from customers " Set Text1.DataSource = Adodc1 ‘Note: Use Set because DataSource is object Text1.DataField = "CustomerID“ Set Text2.DataSource = Adodc1 Text2.DataField = "CompanyName“

ADO Programming Object Model Connection Errors Command RecordSet Error Parameters Parameter Fields Field

Reference ADO Objects Project/References –Microsoft Activex Data Objects 2.5 Use the ADODB to define ADO objects –DIM myConn AS ADODB.Connection –Dim myCommand AS ADODB.Command –Dim myRecordset AS ADODB.Recordset Use the Set and New to create objects: –Set myConn = New ADODB.Connection –Set myCommand = New ADODB.Command –Set myRecordset = New ADODB.Recordset View/Object Browser

Connection with a Connection Object A connection object represents a unique session with a data source. Connection string: database, OLE DB provider, password, if any, security, etc. Use the Open method to open a connection. Use the Execute method to execute SQL. Manage transaction: BeginTrans, CommitTrans, rollBackTrans.

Providers MSDASQL –Microsoft OLE DB Provider for ODBC –The default provider for ADO Microsoft.Jet.OLEDB.3.51 Microsoft.Jet.OLEDB.4.0 MSDAORA – For Oracle SQLOLEDB – Microsoft SQL Server

Connecting String (ADO Data Control will build the connecting string automatically) Containing information about database, OLE DB provider, password, if any, security, etc. For Jet database: –Provider=Microsoft.Jet.OLEDB.4.0;Persist Security info = False;Data Source=c:\ …\Nwind.mdb For SQL Server: –Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northeind

ODBC DSN Connection When using the ODBC provider, the connection string can be a DSN. For example: –Dim Cn as ADODB.Connection –Set Cn = New ADODB.Connection –Cn.Provider = “MSDASQL” –Cn.ConnectionString = “DSN=Sales” –Cn.Open Or: –cn.Open ("provider=msdasql;dsn=Sales")

Connection Object Methods OPEN –cn.Open("provider=microsoft.jet.oledb.4.0;data source=c:\program files\microsoft visual studio\vb98\nwind.mdb;") –Connection string, UserID, Password, etc. Close Execute: –Return a recordset after executing a SQL Select statement. –Usually is used to execute SQL Insert and Delete that don’t return set of records. Demo

ADO Command Objects Using Commands in ADO Data Controls Using Commands in Data Environment. –Right Click Connections/Add Command Reach the commands in a Data Environment in code. For example DataEnvironment1.Commands(“Command1”).CommandText = “Select * from Customers” DataEnvironment1.Commands(0).CommandText = “Select * from Customers” If Command1 is the first command in the Data Environment. DataEnvironment1.Commands(0).Execute –The recordset created by the command has name: rs+Command name, for example, rsCommand1, and we can use recordset’s navigation methods, update methods.

Command Objects Properties & Methods Command object properties: –ActiveConnection: Current connection –CommandType: adCmdText, adCmdTable, adCmdStoredProc, etc. –CommandText: Table name if command type is adCmdTable, SQL statement if command type is adCmdText. Command object methods: –Execute

Command Object’s Parameter Object Parameter properties –Name “Select * From Customers Where CustomerID = ?” For the above parameter query, the parameter name is CustomerID. –Type: Parameter data type adDouble, adSingle, adChar, adVarChar, adVariant, etc. –Size: Paramter maximum size in bytes. –Value: Value passed to the parameter query. Use the Append method to add the parameter to the Parameters collection.

Parameter Query Code Example Option Explicit Private cn As Connection Private rs As Recordset Private cm As Command Private pm As Parameter Private Sub Form_Load() Set cn = New Connection cn.Open ("provider=microsoft.jet.oledb.4.0;data source=c:\program files\microsoft visual studio\vb98\nwind.mdb;") Set cm = New Command cm.CommandType = adCmdText cm.CommandText = "select * from customers where CustomerID = ?" Set pm = New Parameter pm.Name = "CustomerID" pm.Type = adVarChar pm.Value = "DRACD" pm.Size = 20 cm.Parameters.Append pm Set cm.ActiveConnection = cn Set rs = cm.Execute Text1.Text = rs.Fields(0) Text2.Text = rs.Fields(1) End Sub

Creating ADO Recordset Objects Connection object’s Execute method Command object’s Execute method ADO Data Control Data Environment’s command object Recordset’s Open method

Creating Recordset Using Connection Option Explicit Private cn As Connection Private rs As Recordset Private Sub Form_Load() Set cn = New Connection cn.Open ("provider=msdasql;dsn=Sales") Set rs = cn.Execute("select * from customers", adCmdText) Set Text1.DataSource = rs Text1.DataField = "CustomerID" Set Text2.DataSource = rs Text2.DataField = "CompanyName“ Note: Text1 and Text2 are bound.

Creating Recordset Using Command Option Explicit Private cn As Connection Private rs As Recordset Private cm As Command Private Sub Form_Load() Set cn = New Connection cn.Open ("provider=msdasql;dsn=Sales") Set cm = New Command cm.CommandType = adCmdText cm.CommandText = "select * from customers“ Set cm.ActiveConnection = cn Set rs = cm.Execute Text1.Text = rs.Fields(0) Text2.Text = rs.Fields(1) End Sub Note: Text1 and Text2 are not bound.

Recordset Properties BOF, EOF BookMark CursorLocation CursorType LockType MarshalOption MaxRecords RecordCount Sort

Recordset Methods AddNew, Update, Delete –After delete, MoveNext Clone: Create a duplicate recordset. Open, Close Find: Search a recordset. MoveFirst, MoveLast, MoveNext, MovePrevious Requery: Re-Execute the query. GetRows: Fetch records to an array. GetString: Gets the recordset as a string.

Recordset Open Method RecordsetName.Open Source, ActiveConnection, CursorType, LockType, Options Source: Command object name, an SQL statement, a table name, a stored procedure. ActiveConnection: Connection string or DSN. Needed if no connection object defined.

Recordset’s Open Method with a Connection Private Sub Form_Load() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "provider=msdasql;dsn=sales") rs.Open "customer", cn Text1.Text = rs.Fields!cid Text2.Text = rs.Fields!cname End Sub

Recordset’s Open Method without a Connection Private Sub Form_Load() Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open "customer", "DSN=Sales" Text1.Text = rs.Fields!cid Text2.Text = rs.Fields!cname End Sub

Cursor Type adoOpenDynamic: Dynamic cursor lets you view changes made by other users, and allows all types of movement through the recordset. adoOpenKeyset: Similar to Dynaset except it prevents you from seeing records that other users add. adoOpenStatic: A static copy for genrating reports. Changes by other users will not be visible. adoOpenForwardOnly: Same as Dynaset but only let you scroll forward.

LockType adLockReadOnly (Default): Read only adLockPessimistic: The data provider does what is necessary to ensure successful editing of the records by locking records at the data source immediately when you start editing record’s fields. adLockOptimistic: The data provider locks record only when you call the Update method. adLockBatchOptimistic: Batch updates.

Recordset Events FetchProgress, FetchComplete WillChangeField, FieldChangeComplete WillMove, MoveComplete WillChangeRecord, RecordChangeComplete WillChangeRecordset, RecordsetChangeComplete EndOfRecordSet

Using SQL with ADO SQL Select commands: –Connection object’s Execute method –Command object’s Execute method –Record object’s Open method SQL Update commands: Insert, Delete, Update –Connection object’s Execute method Cn.Execute “Update EmpFile Set Salary = Salary*1.05” –Command object’s Execute method sqlSTr = " Update EmpFile Set Salary = Salary*1.05” cm.CommandType = adCmdText cm.CommandText = sqlSTr cm.ActiveConnection = cn cm.Execute

Recordset’s Open Method with SQL Private Sub Form_Load() Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open "select * from customer", "DSN=Sales" Text1.Text = rs.Fields!cid Text2.Text = rs.Fields!cname End Sub

Dim cn As ADODB.Connection Dim cm As ADODB.Command Dim rs As ADODB.Recordset Dim sqlStr As String Private Sub Command1_Click() sqlStr = "update customer set rating = " & "'" & Text1.Text & "'" sqlStr = sqlStr & "where Cname = " & "'" & List1.test & "'" Debug.Print sqlStr cm.CommandType = adCmdText cm.CommandText = sqlStr cm.ActiveConnection = cn cm.Execute End Sub

Private Sub Form_Load() Set cn = DataEnvironment1.Connection1 cn.Open Set rs = New ADODB.Recordset rs.Open "customer", cn List1.Clear Do Until rs.EOF List1.AddItem rs.Fields("cname") rs.MoveNext Loop rs.Close End Sub Private Sub List1_Click() sqlStr = "Select Rating from Customer where CName = " sqlStr = sqlStr & "'" & List1.text & "'" rs.Open sqlStr, cn Text1.Text = rs.Fields("Rating") rs.Close End Sub Note: This program demonstrate working with the data environment. You have to declare cn, rs, and sqlStr in the general section.