ADO Fundamentals ADO Objects and Collections HelloData: A Simple ADO Application Comments on HelloData HelloData Code OLE DB Providers (ADO) Data Providers Service Providers and Components Errors (ADO) Getting Data Connecting to Data Sources Using a Connection Object Using a Recordset Object Creating a Connection String Specifying Connection Properties Controlling Transactions (ADO) Preparing and Executing Commands Command Object Overview Creating and Executing a Simple Command Command Object Parameters Calling a Stored Procedure with a Command Calling a Stored Procedure as a Method on a Connection object Named Commands Passing Parameters to a Named Command Receiving Results Receiving Multiple Recordsets Examining Data Current Record and Size of Recordset Boundaries of a Recordset Navigating Through Data Jumping to a Record More Ways to Move in a Recordset Using Bookmarks Using Pages Recordset Positioning Sample Recordset for Examining Data JScript Code Example to Return a Recordset Understanding Recordset Structure The Fields Collection The Field Object Working with Recordsets Editing Data Editing Existing Records Adding Records Adding Records Using AddNew Adding Multiple Fields Determining Edit Mode Using AddNew in Immediate and Batch Modes Determining What is Supported Deleting Records Using the Delete Method Alternatives: Using SQL Statements Updating and Persisting Data Updating Data Immediate Mode Batch Mode Sending the Updates: UpdateBatch Method Filtering for Updated Records Dealing with Failed Updates Detecting and Resolving Conflicts Disconnecting and Reconnecting the Recordset Updating JOINed Results: Unique Table Transaction Processing Persisting Data More About Recordset Persistence Persisting Filtered and Hierarchical Recordsets Persisting Records in XML Format XML Persistence Format Namespaces Schema Section Data Section Hierarchical Recordsets in XML Recordset Dynamic Properties in XML XSLT Transformations Saving to the XML DOM Object XML Security Considerations XML Recordset Persistence Scenario Error Handling ADO Errors ADO Error Reference Provider Errors Field-Related Error Information Recordset-Related Error Information Handling Errors In Other Languages Handling Errors in VBScript Handling Errors in Visual C++ Handline Errors in Visual J++ Handling Errors in JScript Anticipating Errors Handling ADO Events ADO Event Handler Summary Types of Events Event Parameters How Event Handlers Work Together ADO Event Instantiation by Language ADO Event Instantiation: Visual Basic ADO Event Instantiation: Visual C++ ADO Event Instantiation: Visual J++ ADO Event Instantiation: VBScript ADO Event Instantiation: JScript ADO Event Instantiation: ADO and WFC Understanding Cursors and Locks What is a Cursor? Types of Cursors (ADO) Forward-Only Cursors Static Cursors Keyset Cursors Dynamic Cursors The Significance of Cursor Location The Microsoft Cursor Service for OLE DB What is a Lock? Types of Locks Using CacheSize Cursor and Lock Characteristics Data Shaping Data Shaping Overview Data Shaping Example Visual Basic Example of Data Shaping Reshaping Grandchild Aggregates Parameterized Commands with Intervening COMPUTE Commands Persisting Hierarchical Recordsets Required Providers for Data Shaping Shape Commands in General Aggregate Functions, the CALC Function, and the NEW Keyword Issuing Commands to the Underlying Data Provider Shape APPEND Clause Operation of Non-Parameterized Commands Operation of Parameterized Commands Hybrid Commands Intervening Shape COMPUTE Clauses Shape COMPUTE Clause Fabricating Hierarchical Recordsets Accessing Rows in a Hierarchical Recordset Formal Shape Grammar Visual Basic for Applications functions Records and Streams Streams and Persistence Command Streams Retrieving Resultsets into Streams Using ADO for Internet Publishing The OLE DB Provider for Internet Publishing Internet Publishing Scenario Step 1: Set Up the Visual Basic Project Step 2: Initialize the Main List Box Step 3: Populate the Fields List Box Step 4: Populate the Details Text Box Absolute and Relative URLs Records and Provider-Supplied Fields