Glossary

A

Abort To return the values changed by a transaction to their original state.

Accessor A collection of information that describes how data is stored in the consumer's buffer. The provider uses this information to determine how to transfer data to and from this buffer. See also reference accessor.

Accessor handle A handle that identifies an accessor.

Auto-commit mode A transaction commit mode in which all actions taken in a transaction are committed immediately after they are performed.

B

Binary large object (BLOB) Any binary or character data over a certain number of bytes, such as 255. Typically much longer. Such data is generally sent to and retrieved from the data source in parts. Also known as long data.

Binding As a verb, the act of associating a column in a rowset or a parameter in a text command with a consumer variable. As a noun, the association or the DBBINDING structure that describes the association.

Bookmark A value that identifies a row in a rowset. Bookmarks are saved by the consumer and used later in the life of the rowset to retrieve a particular row.

BSTR A pointer to a null-terminated character string in which the string length is stored with the string.

B-tree A tree structure for storing database indexes.

Buffer A piece of memory used to pass information, usually data, between the consumer and provider.

C

Catalog A database object that contains one or more schemas.

Change To update, delete, or insert a row of data.

Class ID A globally unique identifier (GUID) associated with an OLE class object. If a class object will be used to create more than one instance of an object, the associated server application should register its CLSID in the system registry so that clients can locate and load the executable code associated with the object(s). Every OLE server or container that allows linking to its embedded objects must register a CLSID for each supported object definition.

Client/server A database access strategy in which one or more clients access data through a server. The clients generally implement the user interface while the server controls database access.

Column The container for a single item of information in a row. Also known as field.

Column ID A structure used to identify a column, primarily in a command where there are no stable ordinals or column names.

COM object An object that conforms to the OLE Component Object Model (COM). A COM object is an instance of an object definition, which specifies the object's data and one or more implementations of interfaces on the object. Clients interact with a COM object only through its interfaces. See also Component Object Model and interface.

Command An OLE DB object that encapsulates a command.

Command text The text command associated with a command object. Although it is not required to be, this is usually an SQL statement.

Commit To make the changes in a transaction permanent.

Component An object that encapsulates both data and code, and provides a well-specified set of publicly available services.

Component Object Model (COM) The OLE object-oriented programming model that defines how objects interact within a single process or between processes. In COM, clients have access to an object through interfaces implemented on the object. See also interface.

Concurrency The ability of more than one transaction to access the same data at the same time.

Consumer Software that calls OLE DB methods and interfaces.

Container A file containing linked or embedded objects.

Convert To change data from one type to another, such as from an integer to a string.

Coordinated transaction A transaction composed of multiple, subordinate transactions. All of the subordinate transactions must succeed for the coordinated transaction to succeed. Also known as a distributed transaction.

CoType A way to define a group of COM objects, such as rowsets or commands, that have similar characteristics. All COM objects that belong to a particular CoType must expose the mandatory interfaces in that CoType. In addition, they can expose the optional interfaces in the CoType and any interfaces not in the CoType.

D

Data The data for a parameter in a text command or a column in a row.

Data Definition Language (DDL) Those text commands that define, as opposed to manipulate, data. For example, the SQL statements CREATE TABLE, CREATE INDEX, GRANT, and REVOKE.

Data Manipulation Language (DML) Those text commands that manipulate, as opposed to define, data. For example, the SQL statements INSERT, UPDATE, DELETE, and SELECT.

Data part Data has three parts: the data value, the length of the data value, and the status of the data value.

Data provider A provider that directly exposes data, as opposed to a service component.

Data source The data the user wants to access, such as the data in a database, file, or array. This is distinct from a data source object.

Data source object An OLE DB object that connects to a data source. This is distinct from the data source.

Data type The type of a piece of data. See also type indicator.

Database A discrete collection of data in a DBMS. Also a DBMS.

Database Management System (DBMS) A layer of software between the physical database and the user. The DBMS manages all access to the database. An OLE DB provider can be built directly on top of a DBMS or as a layer between the DBMS and the consumer.

Deferred column A column for which the data is not instantiated in the rowset until the consumer actually attempts to access that data.

Delayed update mode An update mode in which changes made through IRowsetChange are cached in the rowset and transmitted to the data source only when IRowsetUpdate::Update is called. See also immediate update mode.

Delete To remove an existing row of data from the data source.

Distributed transaction See coordinated transaction.

Dynamic error An error message that cannot be predicted because it is not provider specific.Dynamic error ID An identifier that is used by a lookup service and is associated with an error object.

E

Empty string A zero-length string. See also null pointer and NULL value.

Endogenous change A change to data originating from a process other than your own.

Enumerator An OLE DB object that searches for data sources and other enumerators. See also root enumerator.

Error A condition in which a fatal error occurred. Also used to refer to any error, regardless of whether it is fatal.

Error code A class of  return code, of the type HRESULT, that begins with E_ or DB_E_ and indicates that the method failed completely and was unable to do any useful work.

Error lookup service A method used by a provider to handle and interpret OLE DB error objects.

Error object An object that contains detailed information about an error. See also OLE Automation error object and OLE DB error object.

Event An action taken by a provider, such as changing a column value or deleting a row, of which the provider notifies the consumer.

Execution plan A plan generated by a query engine to execute a command. Equivalent to executable code compiled from a third-generation language such as C.

F

Fetch To retrieve one or more rows from the data source and instantiate them in a rowset.

Field See column.

Fixed-length data type A data type that is always stored in the same number of bytes, such as a two-byte integer. See also variable-length data type.

Foreign key A column or columns in a table that match the primary key in another table.

G

Getting data Transferring data from the provider to the consumer, as in getting column or output parameter data.

Globally Unique Identifier (GUID) A 16-byte value that uniquely identifies something, usually the software that implements one or more COM objects or an interface on one of those objects. Also known as a UUID (Universally Unique Identifier).

H

Handle A value that uniquely identifies something such as a row or an accessor. Handles are meaningful only to the software that creates and uses them, but are passed by other software to identify things.

HRESULT An opaque result handle defined to be zero for a successful return from a function and nonzero if error or status information is returned.

I

Interface Identifier (IID) A globally unique identifier (GUID) associated with an interface. Some functions take IIDs as parameters to allow the caller to specify which interface pointer should be returned.

Immediate update mode An update mode in which changes made through IRowsetChange are immediately transmitted to the data source. See also delayed update mode.

Index rowset A rowset built over an index. Each row in an index rowset contains a bookmark that points to a row in a rowset built over the corresponding table.

Initialize To change the state of an enumerator or data source object so it can be used to access data. For example, initializing a data source object might require the provider to open a data file or connect to a database.

Input parameter A parameter in a text command for which the consumer supplies a value to the provider.

Input/output parameter A parameter in a text command for which the consumer supplies a value to the provider and the provider returns a value to the consumer.

Insert To add a new row of data to the data source.

Instantiate To create an instance of a COM object.

Interface A group of semantically related functions that provide access to a COM object. Each OLE interface defines a contract that allows objects to interact according to the Component Object Model (COM). Although OLE provides many interface implementations, most interfaces can also be implemented by developers designing OLE applications. See also Component Object Model and COM object.

IPersist* object An OLE object that supports IPersistStream, IPersistStreamInit, or IPersistStorage.

Isolation level See transaction isolation level.

J

Join An operation in a relational database that links the rows in two or more tables by matching values in specified columns.

K

Key A column or columns whose values identify a row. See also primary key and foreign key.

Key value bookmark A bookmark that uses a unique key to identify a row. See also numeric bookmark.

L

Length The length of a data value. See also data part, value, and status.

Listener A consumer that has requested that a provider send it notifications of various events.

Long data See BLOB.

M

Manual-commit mode A transaction commit mode in which transactions must be explicitly committed or aborted by calling ITransaction::Commit or ITransaction::Abort.

Maximum precision The maximum number of base 10 digits that can be stored in a particular data type. See also precision.

Metadata Data that describes a parameter in a text command or a column in a rowset. For example, the data type, length, and updatability of a column.

Method A function in an interface.

Moniker A name for a specific object instance.

Multiple results object An OLE DB object created by executing a command and through which multiple results (rowsets or row counts) can be retrieved.

N

Next fetch position The position of the next row that will be fetched by a call to IRowset::GetNextRows.

Notification A call from a provider to a consumer, in which the provider notifies the consumer that a particular event is occurring.

Notification sink An actual object that implements the notification interface.

Null pointer A pointer with a value of zero. It is an error to dereference a null pointer. See also empty string and NULL value.

NULL value Having no explicitly assigned value. In particular, a NULL value is different from a zero or a blank. See also empty string and null pointer.

Numeric bookmark A bookmark that uses a unique number to identify a row. See also key value bookmark.

O

Object In OLE, a programming structure encapsulating both data and functionality that are defined and allocated as a single unit and for which the only public access is through the programming structure's interfaces. A COM object must support, at a minimum, the IUnknown interface, which maintains the object's existence while it is being used and provides access to the object's other interfaces. See also Component Object Model and interface.

OLE Microsoft's object-based technology for sharing information and services across process and machine boundaries.

OLE Automation error object An error object that conforms to the standards specified for such objects by OLE Automation. See also OLE DB error object.

OLE DB A set of interfaces that expose data from a variety of data sources using COM.

OLE DB error object An error object used by OLE DB objects to return an error. OLE DB error objects are an extension of Automation error objects.

OLE DB object A COM object defined by OLE DB. The COM objects defined by OLE DB are enumerators, data source objects, sessions, commands, rowsets, multiple results objects, OLE DB error objects, transaction objects, and transaction options objects.

OLE DB Software Development Kit (SDK) A collection of redistributable software, header files, tools, sample code, and documentation to be used by developers of OLE DB consumers and providers.

OLE object In OLE DB, a COM object that is stored in a column. In OLE, a COM object.

Optimistic concurrency A strategy to increase concurrency in which rows are not locked. Instead, before they are updated or deleted, a rowset checks to see if they have been changed since they were last read. If so, the update or delete fails. See also pessimistic concurrency.

Ordinary bookmark A bookmark whose value is defined by the provider. See also standard bookmark.

Output parameter A parameter in a text command for which the provider returns a value to the consumer.

P

Parallel processing A method of processing that can run only on a computer that contains two or more processors running simultaneously.

Parameter A variable in a text command. A parameter can be an input, input/output, or output parameter.

Pending change A change that has been cached in a rowset and not yet transmitted to the data source. See also delayed update mode and immediate update mode.

Persist To save the current state of a COM object, such as to a file. Currently, only data source objects can be persisted.

Pessimistic concurrency A strategy for implementing serializability in which rows are locked so that other transactions cannot change them. See also optimistic concurrency.

Phase A step in a sequence of notifications caused by a single event. The sequence of notifications is similar to the phases in a two-phase commit protocol.

Precision The number of base 10 digits in a number. See also maximum precision.

Prepare To compile a command. An execution plan is created by preparing a command.

Preserved rowset A rowset in which all previously defined functionality is retained after a commit or abort.

Primary key A column or columns that uniquely identifies a row in a table.

Procedure A group of one or more precompiled commands (generally SQL statements) that are stored as a named object in a database.

Property Attributes of an OLE DB object. For example, the maximum number of rows in a rowset that can be active at one time.

Property group The set of all properties that apply to a particular OLE DB object.

Property set A property is identified by a GUID and an integer (the property ID). A property set is the set of all properties that share the same GUID.

Provider Software that implements OLE DB methods and interfaces.

Q

Query A text command. Sometimes used to mean a text command that creates a rowset.

R

Reason The specific event that occurred, such as changing a row value or deleting a row.

Record See row.

Reference counting Keeping a count of each interface pointer held on an object to ensure that the object is not destroyed before all references to it are released. In OLE DB, rows and accessors are also reference counted.

Reference accessor An accessor that enables a consumer to get rowset data directly from the provider's buffer. Support for reference accessors is optional.

Release To decrease the reference count on a row, accessor, or COM object. When the reference count reaches zero, the provider generally releases the resources used by the row, accessor, or COM object.

Result A row count or rowset created by executing a command. See also multiple results object.

Resynchronize To update the data in a rowset with the data in the data source that is visible to the current transaction according to its isolation level.

Return code The value returned by an OLE DB method.

Root enumerator An enumerator shipped in the OLE DB SDK that enumerates the data sources and enumerators listed in the registry. See also enumerator.

Row A set of related columns that describe a specific entity. Also known as a record.

Row handle A handle used to identify a row.

Rowset An OLE DB object that contains a set of rows, each of which has columns of data.

S

Scale The number of digits in a number that are to the right of the decimal point.

Schema A database object that contains one or more tables, often created by a single user.

Schema rowset A predefined rowset that provides information about the structure of a database.

Self bookmark A bookmark, stored in column 0 of a row, that is used to return to that row.

Serializability Whether two transactions executing simultaneously produce a result that is the same as the serial (or sequential) execution of those transactions. Serializable transactions are required to maintain database integrity.

Service component A provider that does not directly expose data, but instead provides a service, such as query processing. Used in conjunction with data providers.

Session An OLE DB object that serves as the context for a transaction.

Setting data Transferring data from the consumer to the provider, as in setting column or input parameter data.

SQL Structured Query Language. A language used by relational databases to query, update, and manage data. Text commands often use SQL.

Standard bookmark A bookmark whose value is defined by OLE DB. See also ordinary bookmark.

Static error An error (text) that is stored by a specific provider lookup service, and most commomly tied to a single data store.

Status The status of a data value. See also data part, value, and length.

Storage interface An interface used to access data in a storage object: ISequentialStream, IStream, IStorage, or ILockBytes.

Storage object A COM object that implements a storage interface. Storage objects are used to access BLOB data and OLE objects stored in a column.

Success A condition in which no errors occurred.

Success code A class of  return code, of the type HRESULT, that begins with S_ or DB_S_ and indicates success of the method.

T

Table A collection of rows in the data source.

Text command A text string, usually an SQL statement, that defines a command.

Transaction An atomic unit of work. The work in a transaction must be completed as a whole; if any part of the transaction fails, the entire transaction fails.

Transaction isolation The act of isolating one transaction from the effects of all other transactions.

Transaction isolation level A measure of how well a transaction is isolated.

Transaction object An OLE DB object used to support transactions.

Transaction options object An OLE DB object used to define various options for a transaction.

Transfer To move data between the consumer's and provider's buffers. The provider, not the consumer, transfers data. See also getting data and setting data.

Transmit To send changes made through IRowsetChange to the data source. See also delayed update mode and immediate update mode.

Transmitted change A change that has been sent to the data source. See also pending change.

Truncate To discard one or more bytes of variable-length data or non-significant digits of numeric data. Truncation results in a warning condition when getting data and an error condition when setting data.

Type indicator An integer value passed to or returned from an OLE DB method to indicate the data type of a consumer variable, a parameter, or a column.

U

Uninitialize To change the state of an enumerator or data source object so it cannot be used to access data. For example, uninitializing a data source object might require the provider to close a data file or disconnect from a database.

Unprepare To discard the current execution plan.

Update To change an existing row of data in the data source. Also, to transmit pending changes to the data source.

User The end user, which is a generally a person, as opposed to the consumer, which is a piece of software.

V

Value A data value. See also data part, length, and status.

Variable-length data type A data type for which the length of the data can vary, such as a string. See also fixed-length data type.

Visibility Whether data values can be detected by a rowset. Refers both to the visibility of data in a data source and data cached in a rowset.

W

Warning A condition in which a nonfatal error occurred.

Warning code A class of  return code, of the type HRESULT, that begins with S_ or DB_S_ and indicates success of the method but with a warning.

Z

Zombie A state in which the only valid consumer action on a COM object is generally to release that object.