find
Searches for a set of values specified in varSval, in column iColumn starting at iRow. Upon successful completion, the row number with the matching value is returned in piRowFound.
Important
This feature will be removed in a future version of Windows. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Instead, write a fully functional OLE DB provider using the native OLE DB interfaces.
Syntax
HRESULT find (
DBROWCOUNT iRowStart,
DB_LORDINAL iColumn,
VARIANT varSval,
OSPFIND findFlags,
OSPCOMP compType,
DBROWCOUNT *piRowFound);
Parameters
iRowStart
[in] Position of the first row of the data set at which the search operation begins.iColumn
[in] Position of the first column of the data set at which the search operation begins.varSvalt
[in] The target value or values of the search operation.findFlags
[in] An enumeration consisting of the values defined in the following table.Value
Meaning
OSPFIND_DEFAULT = 0
Specifies that the search operation should be in ascending order through rows in a case-insensitive manner.
OSPFIND_UP = 1
Specifies that the search operation should be in descending order through rows.
OSPFIND_CASESENSITIVE = 2
Specifies case-sensitivity for the search.
OSPFIND_UPCASESENSITIVE = 3
Specifies that the search operation should be in ascending order through rows in a case-sensitive manner.
compType
[in] An enumeration consisting of the the values defined in the following table.Value
Meaning
OSPCOMP_EQ = 1 OSPCOMP_DEFAULT = 1
Specifies that the search is for the first value equal to varSval.
OSPCOMP_LT = 2
Specifies that the search is for the first value less than varSval.
OSPCOMP_LE = 3
Specifies that the search is for the first value less than or equal to varSval.
OSPCOMP_GE = 4
Specifies that the search is for the first value greater than or equal to varSval.
OSPCOMP_GT = 5
Specifies that the search is for the first value greater than varSval.
OSPCOMP_NE = 6
Specifies that the search is for the first value not equal to varSval.
piRowFound
[out] The number of the row containing the matching value of the search. If no corresponding match is found, OLEDBSimpleProvider::find should return the constant -1.
Return Codes
S_OK
The method succeeded.DISP_E_TYPEMISMATCH
The provider was unable to match the type of the varSval to the underlying type of the column.E_FAIL
A provider-specific error occurred.
Comments
Using the native type of the underlying column, OLEDBSimpleProvider::find performs compares. Providers should return DISP_E_TYPEMISMATCH when they are unable to convert the varSval to the underlying type of the column.
Comparing string values always compares values as they would be returned from a call to OLEDBSimpleProvider::getVariant with OSPFORMAT_FORMATTED. Providers should not coerce values of varSval obtained from a previous call to OLEDBSimpleProvider::getVariant with OSPFORMAT_HTML.