Partager via


Retrieving Data from Table Rows

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Retrieving rows from a table involves:

  • Obtaining the property values for all the columns.

  • Modifying the current position.

One of the required columns in most tables is an entry identifier — the PR_ENTRYID (PidTagEntryId) property — that can be used to open the object that represents the row. This entry identifier is usually a short-term entry identifier, one that does not persist past the lifetime of the table. However, it can be a long-term identifier if the service provider implementing the table only supports one type of entry identifier.

Clients and service providers can make one of the following calls to retrieve rows:

IMAPITable::QueryRows

Retrieves a specified number of rows starting with the current row in either a forward or backward direction.

HrQueryAllRows

Retrieves all of the rows in a table.

ITableData::HrQueryRow

Retrieves a row in a table according to the value of its index column. PR_INSTANCE_KEY (PidTagInstanceKey) is usually the index column for a table.

When an optional property is included as one of the columns in a table, some of the rows might have valid values for the column while others might not. Whether a valid value exists for a column depends on whether the object providing the information for the row sets the property. Depending on the implementation of the object, a non-existent property can be represented in the table as PR_NULL (PidTagNull) or an arbitrary value. Users of tables must be careful to differentiate between properties that are nonexistent and have meaningless values and properties that do exist and have valid values.

See Also

Concepts

MAPI Tables