Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah membuka sumber data, sesi, dan objek set baris, Anda dapat mengambil data. Bergantung pada jenis aksesor yang Anda gunakan, Anda mungkin perlu mengikat kolom.
Untuk mengambil data
Buka set baris menggunakan perintah Buka yang sesuai.
Jika Anda menggunakan
CManualAccessor, ikat kolom output jika Anda belum melakukannya. Contoh berikut diambil dari sampel DBViewer . Untuk mengikat kolom, panggilGetColumnInfo, lalu buat aksesor dengan pengikatan, seperti yang ditunjukkan dalam contoh berikut:// From the DBViewer Sample CDBTreeView::OnQueryEdit // Get the column information ULONG ulColumns = 0; DBCOLUMNINFO* pColumnInfo = NULL; LPOLESTR pStrings = NULL; if (rs.GetColumnInfo(&ulColumns, &pColumnInfo, &pStrings) != S_OK) ThrowMyOLEDBException(rs.m_pRowset, IID_IColumnsInfo); struct MYBIND* pBind = new MYBIND[ulColumns]; rs.CreateAccessor(ulColumns, &pBind[0], sizeof(MYBIND)*ulColumns); for (ULONG l=0; l<ulColumns; l++) rs.AddBindEntry(l+1, DBTYPE_STR, sizeof(TCHAR)*40, &pBind[l].szValue, NULL, &pBind[l].dwStatus); rs.Bind();Tulis perulangan
whileuntuk mengambil data. Dalam perulangan, panggilMoveNextuntuk memajukan kursor dan menguji nilai pengembalian terhadap S_OK, seperti yang ditunjukkan dalam contoh berikut:while (rs.MoveNext() == S_OK) { // Add code to fetch data here // If you are not using an auto accessor, call rs.GetData() }Dalam perulangan
while, Anda dapat mengambil data sesuai dengan jenis aksesor Anda.Jika Anda menggunakan kelas CAccessor , Anda harus memiliki catatan pengguna yang berisi anggota data. Anda dapat mengakses data menggunakan anggota data tersebut, seperti yang diperlihatkan dalam contoh berikut:
while (rs.MoveNext() == S_OK) { // Use the data members directly. In this case, m_nFooID // is declared in a user record that derives from // CAccessor wsprintf_s("%d", rs.m_nFooID); }Jika Anda menggunakan
CDynamicAccessorkelas atauCDynamicParameterAccessor, Anda dapat mengambil data dengan menggunakan fungsiGetValueakses danGetColumn, seperti yang ditunjukkan dalam contoh berikut. Jika Anda ingin menentukan jenis data yang Anda gunakan, gunakanGetType.while (rs.MoveNext() == S_OK) { // Use the dynamic accessor functions to retrieve your data. ULONG ulColumns = rs.GetColumnCount(); for (ULONG i=0; i<ulColumns; i++) { rs.GetValue(i); } }Jika Anda menggunakan
CManualAccessor, Anda harus menentukan anggota data Anda sendiri, mengikatnya sendiri, dan mengaksesnya secara langsung, seperti yang ditunjukkan dalam contoh berikut:while (rs.MoveNext() == S_OK) { // Use the data members you specified in the calls to // AddBindEntry. wsprintf_s("%s", szFoo); }