IRowPosition Code Example

OLE DB Programmer's Reference

The following code fragment shows how a consumer might use IRowPosition when traversing a rowset:

// Code to generate a pRowset #include "msdaguid.h" IRowPosition * pRowPosition = NULL; HRESULT hr; hr = CoCreateInstance(CLSID_OLEDB_ROWPOSITIONLIBRARY, NULL,        CLSCTX_INPROC_SERVER, IID_IRowPosition,       (LPVOID *)&pRowPosition); if (FAILED(hr))       return hr; hr = pRowPosition->Initialize(pRowset);   // Initialize with pRowset if (FAILED(hr))       {       pRowPosition->Release();       return hr;       } // Read the rows--100 rows at a time into the rowset. While(SUCCEEDED(hr = pRowset->GetNextRows(NULL, 0, 100, &cRowsObtained,    &rghRows)) &&    cRowsObtained)     {       for(irow = 0; irow < cRowsObtained; irow++)        {       // GetData copies the rows into the local buffers, performing the       // type conversions specified in the binding structures associated       // with the accessor.          pRowset->GetData(rghRows[irow], hAccessor, (void*) rgData);          // Set currently read row as "current row."          // Note: Other clients will choose different notions          // of current row.          If (pIRowPosition->ClearRowPosition () == S_OK)             pIRowPosition->SetRowPosition (NULL, rghRows[irow],             DBPOSITION_OK);          // Convenience function to print the data          PrintData(rgData);       }     // Release the rows just printed from the rowset.    PRowset->ReleaseRows(cRowsObtained, rghRows, NULL, NULL, NULL);    } 

1998-2001 Microsoft Corporation. All rights reserved.



Microsoft Ole Db 2.0 Programmer's Reference and Data Access SDK
Microsoft OLE DB 2.0 Programmers Reference and Data Access SDK (Microsoft Professional Editions)
ISBN: 0735605904
EAN: 2147483647
Year: 1998
Pages: 1083

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net