Bagikan melalui


Kelas CDaoWorkspace

Mengelola sesi database bernama yang dilindungi kata sandi dari masuk ke logoff, oleh satu pengguna. DAO didukung melalui Office 2013. DAO 3.6 adalah versi akhir, dan dianggap usang.

Sintaks

class CDaoWorkspace : public CObject

Anggota

Konstruktor Publik

Nama Deskripsi
CDaoWorkspace::CDaoWorkspace Membuat objek ruang kerja. Setelah itu, panggil Create atau Open.

Metode Publik

Nama Deskripsi
CDaoWorkspace::Tambahkan Menambahkan ruang kerja yang baru dibuat ke koleksi Ruang Kerja mesin database.
CDaoWorkspace::BeginTrans Memulai transaksi baru, yang berlaku untuk semua database yang terbuka di ruang kerja.
CDaoWorkspace::Close Menutup ruang kerja dan semua objek yang dikandungnya. Transaksi yang tertunda digulung balik.
CDaoWorkspace::CommitTrans Menyelesaikan transaksi saat ini dan menyimpan perubahan.
CDaoWorkspace::CompactDatabase Memadatkan (atau menduplikasi) database.
CDaoWorkspace::Create Membuat objek ruang kerja DAO baru.
CDaoWorkspace::GetDatabaseCount Mengembalikan jumlah objek database DAO dalam kumpulan Database ruang kerja.
CDaoWorkspace::GetDatabaseInfo Mengembalikan informasi tentang database DAO tertentu yang ditentukan dalam kumpulan Database ruang kerja.
CDaoWorkspace::GetIniPath Mengembalikan lokasi pengaturan inisialisasi mesin database Microsoft Jet di registri Windows.
CDaoWorkspace::GetIsolateODBCTrans Mengembalikan nilai yang menunjukkan apakah beberapa transaksi yang melibatkan sumber data ODBC yang sama diisolasi melalui beberapa koneksi paksa ke sumber data.
CDaoWorkspace::GetLoginTimeout Mengembalikan jumlah detik sebelum kesalahan terjadi ketika pengguna mencoba masuk ke database ODBC.
CDaoWorkspace::GetName Mengembalikan nama yang ditentukan pengguna untuk objek ruang kerja.
CDaoWorkspace::GetUserName Mengembalikan nama pengguna yang ditentukan saat ruang kerja dibuat. Ini adalah nama pemilik ruang kerja.
CDaoWorkspace::GetVersion Mengembalikan string yang berisi versi mesin database yang terkait dengan ruang kerja.
CDaoWorkspace::GetWorkspaceCount Mengembalikan jumlah objek ruang kerja DAO dalam kumpulan Ruang Kerja mesin database.
CDaoWorkspace::GetWorkspaceInfo Mengembalikan informasi tentang ruang kerja DAO tertentu yang ditentukan dalam kumpulan Ruang Kerja mesin database.
CDaoWorkspace::Idle Memungkinkan mesin database untuk melakukan tugas latar belakang.
CDaoWorkspace::IsOpen Mengembalikan nonzero jika ruang kerja terbuka.
CDaoWorkspace::Buka Secara eksplisit membuka objek ruang kerja yang terkait dengan ruang kerja default DAO.
CDaoWorkspace::RepairDatabase Mencoba memperbaiki database yang rusak.
CDaoWorkspace::Rollback Mengakhiri transaksi saat ini dan tidak menyimpan perubahan.
CDaoWorkspace::SetDefaultPassword Mengatur kata sandi yang digunakan mesin database saat objek ruang kerja dibuat tanpa kata sandi tertentu.
CDaoWorkspace::SetDefaultUser Mengatur nama pengguna yang digunakan mesin database saat objek ruang kerja dibuat tanpa nama pengguna tertentu.
CDaoWorkspace::SetIniPath Mengatur lokasi pengaturan inisialisasi mesin database Microsoft Jet di registri Windows.
CDaoWorkspace::SetIsolateODBCTrans Menentukan apakah beberapa transaksi yang melibatkan sumber data ODBC yang sama diisolasi dengan memaksa beberapa koneksi ke sumber data.
CDaoWorkspace::SetLoginTimeout Mengatur jumlah detik sebelum kesalahan terjadi ketika pengguna mencoba masuk ke sumber data ODBC.

Anggota Data Publik

Nama Deskripsi
CDaoWorkspace::m_pDAOWorkspace Menunjuk ke objek ruang kerja DAO yang mendasar.

Keterangan

Dalam kebanyakan kasus, Anda tidak akan memerlukan beberapa ruang kerja, dan Anda tidak perlu membuat objek ruang kerja eksplisit; saat Anda membuka database dan objek recordset, mereka menggunakan ruang kerja default DAO. Namun, jika diperlukan, Anda dapat menjalankan beberapa sesi pada satu waktu dengan membuat objek ruang kerja tambahan. Setiap objek ruang kerja dapat berisi beberapa objek database terbuka dalam koleksi Database-nya sendiri. Di MFC, ruang kerja terutama merupakan manajer transaksi, yang menentukan sekumpulan database terbuka semuanya di "ruang transaksi" yang sama.

Catatan

Kelas database DAO berbeda dari kelas database MFC berdasarkan Open Database Koneksi ivity (ODBC). Semua nama kelas database DAO memiliki awalan "CDao". Secara umum, kelas MFC berdasarkan DAO lebih mampu daripada kelas MFC berdasarkan ODBC. Kelas berbasis DAO mengakses data melalui mesin database Microsoft Jet, termasuk driver ODBC. Mereka juga mendukung operasi Data Definition Language (DDL), seperti membuat database dan menambahkan tabel dan bidang melalui kelas, tanpa harus memanggil DAO secara langsung.

Kemampuan

Kelas CDaoWorkspace menyediakan hal-hal berikut:

  • Akses eksplisit, jika diperlukan, ke ruang kerja default, dibuat dengan menginisialisasi mesin database. Biasanya Anda menggunakan ruang kerja default DAO secara implisit dengan membuat database dan objek recordset.

  • Ruang transaksi tempat transaksi berlaku untuk semua database yang terbuka di ruang kerja. Anda dapat membuat ruang kerja tambahan untuk mengelola ruang transaksi terpisah.

  • Antarmuka ke banyak properti mesin database Microsoft Jet yang mendasar (lihat fungsi anggota statis). Membuka atau membuat ruang kerja, atau memanggil fungsi anggota statis sebelum membuka atau membuat, menginisialisasi mesin database.

  • Akses ke koleksi Ruang Kerja mesin database, yang menyimpan semua ruang kerja aktif yang telah ditambahkan ke dalamnya. Anda juga dapat membuat dan bekerja dengan ruang kerja tanpa menambahkannya ke koleksi.

Keamanan

MFC tidak mengimplementasikan koleksi Pengguna dan Grup di DAO, yang digunakan untuk kontrol keamanan. Jika Anda membutuhkan aspek DAO tersebut, Anda harus memprogramnya sendiri melalui panggilan langsung ke antarmuka DAO. Untuk informasi, lihat Catatan Teknis 54.

Penggunaan

Anda dapat menggunakan kelas CDaoWorkspace untuk:

  • Buka ruang kerja default secara eksplisit.

    Biasanya penggunaan ruang kerja default Anda implisit — saat Anda membuka objek CDaoDatabase atau CDaoRecordset baru. Tetapi Anda mungkin perlu mengaksesnya secara eksplisit — misalnya, untuk mengakses properti mesin database atau koleksi Ruang Kerja. Lihat "Penggunaan Implisit Ruang Kerja Default" di bawah ini.

  • Buat ruang kerja baru. Panggil Tambahkan jika Anda ingin menambahkannya ke koleksi Ruang Kerja.

  • Buka ruang kerja yang sudah ada di kumpulan Ruang Kerja.

Membuat ruang kerja baru yang belum ada di kumpulan Ruang Kerja dijelaskan di bawah fungsi Buat anggota. Objek ruang kerja tidak bertahan dengan cara apa pun di antara sesi mesin database. Jika aplikasi Anda menautkan MFC secara statis, mengakhiri aplikasi membatalkan inisialisasi mesin database. Jika aplikasi Anda ditautkan dengan MFC secara dinamis, mesin database tidak diinisialisasi saat DLL MFC dibongkar.

Secara eksplisit membuka ruang kerja default, atau membuka ruang kerja yang ada di koleksi Ruang Kerja, dijelaskan di bawah fungsi Anggota terbuka .

Akhiri sesi ruang kerja dengan menutup ruang kerja dengan fungsi Tutup anggota. Close menutup database apa pun yang belum Anda tutup sebelumnya, mengembalikan transaksi yang tidak diterapkan.

Transaksi

DAO mengelola transaksi di tingkat ruang kerja; oleh karena itu, transaksi di ruang kerja dengan beberapa database terbuka berlaku untuk semua database. Misalnya, jika dua database memiliki pembaruan yang tidak dilakukan dan Anda memanggil CommitTrans, semua pembaruan diterapkan. Jika Anda ingin membatasi transaksi ke database tunggal, Anda memerlukan objek ruang kerja terpisah untuk itu.

Penggunaan Implisit Ruang Kerja Default

MFC menggunakan ruang kerja default DAO secara implisit dalam keadaan berikut:

  • Jika Anda membuat objek baru CDaoDatabase tetapi tidak melakukannya melalui objek yang ada CDaoWorkspace , MFC membuat objek ruang kerja sementara untuk Anda, yang sesuai dengan ruang kerja default DAO. Jika Anda melakukannya untuk beberapa database, semua objek database dikaitkan dengan ruang kerja default. Anda dapat mengakses ruang kerja database melalui CDaoDatabase anggota data.

  • Demikian pula, jika Anda membuat CDaoRecordset objek tanpa menyediakan penunjuk ke CDaoDatabase objek, MFC membuat objek database sementara dan, berdasarkan ekstensi, objek ruang kerja sementara. Anda dapat mengakses database kumpulan rekaman, dan secara tidak langsung ruang kerjanya, melalui CDaoRecordset anggota data.

Operasi Lain

Operasi database lain juga disediakan, seperti memperbaiki database yang rusak atau memadatkan database.

Untuk informasi tentang memanggil DAO secara langsung dan tentang keamanan DAO, lihat Catatan Teknis 54.

Hierarki Warisan

CObject

CDaoWorkspace

Persyaratan

Header: afxdao.h

CDaoWorkspace::Tambahkan

Panggil fungsi anggota ini setelah Anda memanggil Buat.

virtual void Append();

Keterangan

Append menambahkan objek ruang kerja yang baru dibuat ke koleksi Ruang Kerja mesin database. Ruang kerja tidak bertahan di antara sesi mesin database; mereka disimpan hanya dalam memori, bukan pada disk. Anda tidak perlu menambahkan ruang kerja; jika tidak, Anda masih dapat menggunakannya.

Ruang kerja yang ditambahkan tetap berada di kumpulan Ruang Kerja, dalam status aktif dan terbuka, hingga Anda memanggil fungsi Tutup anggotanya.

Untuk informasi terkait, lihat topik "Tambahkan Metode" di Bantuan DAO.

CDaoWorkspace::BeginTrans

Panggil fungsi anggota ini untuk memulai transaksi.

void BeginTrans();

Keterangan

Setelah Anda memanggil BeginTrans, pembaruan yang Anda buat pada data atau struktur database Berlaku saat Anda melakukan transaksi. Karena ruang kerja menentukan satu ruang transaksi, transaksi berlaku untuk semua database terbuka di ruang kerja. Ada dua cara untuk menyelesaikan transaksi:

Menutup objek ruang kerja atau objek database saat transaksi tertunda menggulung balik semua transaksi yang tertunda.

Jika Anda perlu mengisolasi transaksi pada satu sumber data ODBC dari sumber data ODBC lain, lihat fungsi anggota SetIsolateODBCTrans .

CDaoWorkspace::CDaoWorkspace

Membuat CDaoWorkspace objek.

CDaoWorkspace();

Keterangan

Setelah membuat objek C++, Anda memiliki dua opsi:

  • Panggil fungsi Anggota terbuka objek untuk membuka ruang kerja default atau untuk membuka objek yang ada di koleksi Ruang Kerja.

  • Atau panggil fungsi Buat anggota objek untuk membuat objek ruang kerja DAO baru. Ini secara eksplisit memulai sesi ruang kerja baru, yang dapat Anda rujuk melalui CDaoWorkspace objek . Setelah memanggil Create, Anda dapat memanggil Tambahkan jika Anda ingin menambahkan ruang kerja ke koleksi Ruang Kerja mesin database.

Lihat gambaran umum kelas untuk CDaoWorkspace untuk informasi tentang kapan Anda perlu membuat CDaoWorkspace objek secara eksplisit. Biasanya, Anda menggunakan ruang kerja yang dibuat secara implisit saat Anda membuka objek CDaoDatabase tanpa menentukan ruang kerja atau saat Anda membuka objek CDaoRecordset tanpa menentukan objek database. Objek MFC DAO yang dibuat dengan cara ini menggunakan ruang kerja default DAO, yang dibuat sekali dan digunakan kembali.

Untuk merilis ruang kerja dan objek yang terkandung, panggil fungsi Tutup anggota objek ruang kerja.

CDaoWorkspace::Close

Panggil fungsi anggota ini untuk menutup objek ruang kerja.

virtual void Close();

Keterangan

Menutup objek ruang kerja terbuka merilis objek DAO yang mendasar dan, jika ruang kerja adalah anggota koleksi Ruang Kerja, menghapusnya dari koleksi. Panggilan Close adalah praktik pemrograman yang baik.

Perhatian

Menutup objek ruang kerja menutup database yang terbuka di ruang kerja. Ini menghasilkan kumpulan rekaman apa pun yang terbuka dalam database yang ditutup juga, dan setiap pengeditan atau pembaruan yang tertunda digulung balik. Untuk informasi terkait, lihat fungsi CDaoDatabase::Close, CDaoRecordset::Close, CDaoTableDef::Close, dan CDaoQueryDef::Close member.

Objek ruang kerja tidak permanen; mereka hanya ada saat referensi ke mereka ada. Ini berarti bahwa ketika sesi mesin database berakhir, ruang kerja dan koleksi Database-nya tidak bertahan. Anda harus membuatnya kembali untuk sesi berikutnya dengan membuka ruang kerja dan database Anda lagi.

Untuk informasi terkait, lihat topik "Tutup Metode" di Bantuan DAO.

CDaoWorkspace::CommitTrans

Panggil fungsi anggota ini untuk melakukan transaksi — simpan sekelompok pengeditan dan pembaruan ke satu atau beberapa database di ruang kerja.

void CommitTrans();

Keterangan

Transaksi terdiri dari serangkaian perubahan pada data database atau strukturnya, dimulai dengan panggilan ke BeginTrans. Saat Anda menyelesaikan transaksi, terapkan atau gulung balik (batalkan perubahan) dengan Putar Kembali. Secara default, tanpa transaksi, pembaruan pada rekaman segera dilakukan. BeginTrans Panggilan menyebabkan komitmen pembaruan tertunda hingga Anda memanggil CommitTrans.

Perhatian

Dalam satu ruang kerja, transaksi selalu global ke ruang kerja dan tidak hanya terbatas pada satu database atau kumpulan catatan. Jika Anda melakukan operasi pada lebih dari satu database atau kumpulan rekaman dalam transaksi ruang kerja, CommitTrans terapkan semua pembaruan yang tertunda, dan Rollback memulihkan semua operasi pada database dan kumpulan rekaman tersebut.

Saat Anda menutup database atau ruang kerja dengan transaksi yang tertunda, semua transaksi digulung balik.

Catatan

Ini bukan mekanisme penerapan dua fase. Jika satu pembaruan gagal dilakukan, yang lain masih akan berkomitmen.

CDaoWorkspace::CompactDatabase

Panggil fungsi anggota ini untuk memampatkan Microsoft Jet tertentu (. Database MDB).

static void PASCAL CompactDatabase(
    LPCTSTR lpszSrcName,
    LPCTSTR lpszDestName,
    LPCTSTR lpszLocale = dbLangGeneral,
    int nOptions = 0);

static void PASCAL CompactDatabase(
    LPCTSTR lpszSrcName,
    LPCTSTR lpszDestName,
    LPCTSTR lpszLocale,
    int nOptions,
    LPCTSTR lpszPassword);

Parameter

lpszSrcName
Nama database tertutup yang sudah ada. Ini bisa menjadi jalur lengkap dan nama file, seperti "C:\\MYDB. MDB". Jika nama file memiliki ekstensi, Anda harus menentukannya. Jika jaringan Anda mendukung konvensi penamaan seragam (UNC), Anda juga dapat menentukan jalur jaringan, seperti "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (Garis miring terbelakang ganda diperlukan dalam string jalur karena "\" adalah karakter escape C++.)

lpszDestName
Jalur lengkap database ringkas yang Anda buat. Anda juga dapat menentukan jalur jaringan seperti halnya lpszSrcName. Anda tidak dapat menggunakan argumen lpszDestName untuk menentukan file database yang sama dengan lpszSrcName.

lpszPassword
Kata sandi, digunakan saat Anda ingin memadatkan database yang dilindungi kata sandi. Perhatikan bahwa jika Anda menggunakan versi CompactDatabase yang mengambil kata sandi, Anda harus menyediakan semua parameter. Selain itu, karena ini adalah parameter koneksi, parameter ini memerlukan pemformatan khusus, sebagai berikut: ;P WD= lpszPassword. Misalnya: ;P WD="Happy". (Titik koma di depan diperlukan.)

lpszLocale
Ekspresi string yang digunakan untuk menentukan susunan kolase untuk membuat lpszDestName. Jika Anda menghilangkan argumen ini dengan menerima nilai dbLangGeneral default (lihat di bawah), lokal database baru sama dengan database lama. Kemungkinan nilai adalah:

  • dbLangGeneral Inggris, Jerman, Prancis, Portugis, Italia, dan Spanyol Modern

  • dbLangArabic Arab

  • dbLangCyrillic Rusia

  • dbLangCzech Ceko

  • dbLangDutch Belanda

  • dbLangGreek Yunani

  • dbLangHebrew Ibrani

  • dbLangHungarian Hongaria

  • dbLangIcelandic Islandia

  • dbLangNordic Bahasa Nordik (hanya mesin database Microsoft Jet versi 1.0)

  • dbLangNorwdan Norwegia dan Denmark

  • dbLangPolish Polandia

  • dbLangSpanish Bahasa Spanyol Tradisional

  • dbLangSwedfin Bahasa Swedia dan Finlandia

  • dbLangTurkish Turki

nOptions
Menunjukkan satu atau beberapa opsi untuk database target, lpszDestName. Jika Anda menghilangkan argumen ini dengan menerima nilai default, lpszDestName akan memiliki enkripsi yang sama dan versi yang sama dengan lpszSrcName. Anda dapat menggabungkan dbEncrypt opsi atau dbDecrypt dengan salah satu opsi versi menggunakan operator bitwise-OR. Nilai yang mungkin, yang menentukan format database, bukan versi mesin database, adalah:

  • dbEncrypt Enkripsi database saat memadatkan.

  • dbDecrypt Dekripsi database saat memadatkan.

  • dbVersion10 Buat database yang menggunakan mesin database Microsoft Jet versi 1.0 saat memadatkan.

  • dbVersion11 Buat database yang menggunakan mesin database Microsoft Jet versi 1.1 saat memadatkan.

  • dbVersion20 Buat database yang menggunakan mesin database Microsoft Jet versi 2.0 saat memadatkan.

  • dbVersion30 Buat database yang menggunakan mesin database Microsoft Jet versi 3.0 saat memadatkan.

Anda dapat menggunakan dbEncrypt atau dbDecrypt dalam argumen opsi untuk menentukan apakah akan mengenkripsi atau mendekripsi database saat dikompresi. Jika Anda menghilangkan konstanta enkripsi atau jika Anda menyertakan dbDecrypt dan dbEncrypt, lpszDestName akan memiliki enkripsi yang sama dengan lpszSrcName. Anda dapat menggunakan salah satu konstanta versi dalam argumen opsi untuk menentukan versi format data untuk database yang dikompresi. Konstanta ini hanya memengaruhi versi format data lpszDestName. Anda hanya dapat menentukan satu konstanta versi. Jika Anda menghilangkan konstanta versi, lpszDestName akan memiliki versi yang sama dengan lpszSrcName. Anda hanya dapat memampatkan lpszDestName ke versi yang sama atau lebih baru dari lpszSrcName.

Perhatian

Jika database tidak dienkripsi, dimungkinkan, bahkan jika Anda menerapkan keamanan pengguna/kata sandi, untuk langsung membaca file disk biner yang merupakan database.

Keterangan

Saat Anda mengubah data dalam database, file database dapat menjadi terfragmentasi dan menggunakan lebih banyak ruang disk daripada yang diperlukan. Secara berkala, Anda harus memadatkan database Anda untuk mendefragmentasi file database. Database yang dikompresi biasanya lebih kecil. Anda juga dapat memilih untuk mengubah susunan kolase, enkripsi, atau versi format data saat Anda menyalin dan memadatkan database.

Perhatian

Fungsi CompactDatabase anggota tidak akan mengonversi database Microsoft Access lengkap dengan benar dari satu versi ke versi lainnya. Hanya format data yang dikonversi. Objek yang ditentukan Microsoft Access, seperti formulir dan laporan, tidak dikonversi. Namun, data dikonversi dengan benar.

Tip

Anda juga bisa menggunakan CompactDatabase untuk menyalin file database.

Untuk informasi selengkapnya tentang memadatkan database, lihat topik "Metode CompactDatabase" di Bantuan DAO.

CDaoWorkspace::Create

Panggil fungsi anggota ini untuk membuat objek ruang kerja DAO baru dan mengaitkannya dengan objek MFC CDaoWorkspace .

virtual void Create(
    LPCTSTR lpszName,
    LPCTSTR lpszUserName,
    LPCTSTR lpszPassword);

Parameter

lpszName
String dengan hingga 14 karakter yang secara unik menamai objek ruang kerja baru. Anda harus memberikan nama. Untuk informasi terkait, lihat topik "Properti Nama" di Bantuan DAO.

lpszUserName
Nama pengguna pemilik ruang kerja. Untuk persyaratan, lihat parameter lpszDefaultUser ke fungsi anggota SetDefaultUser . Untuk informasi terkait, lihat topik "Properti Nama Pengguna" di Bantuan DAO.

lpszPassword
Kata sandi untuk objek ruang kerja baru. Panjang kata sandi dapat mencapai 14 karakter dan dapat berisi karakter apa pun kecuali ASCII 0 (null). Kata sandi peka huruf besar/kecil. Untuk informasi terkait, lihat topik "Properti Kata Sandi" di Bantuan DAO.

Keterangan

Proses pembuatan keseluruhan adalah:

  1. Buat objek CDaoWorkspace .

  2. Panggil fungsi anggota objek Create untuk membuat ruang kerja DAO yang mendasar. Anda harus menentukan nama ruang kerja.

  3. Secara opsional panggil Tambahkan jika Anda ingin menambahkan ruang kerja ke koleksi Ruang Kerja mesin database. Anda dapat bekerja dengan ruang kerja tanpa menambahkannya.

Create Setelah panggilan, objek ruang kerja dalam keadaan terbuka, siap digunakan. Anda tidak menelepon Open setelah Create. Anda tidak memanggil Create jika ruang kerja sudah ada di kumpulan Ruang Kerja. Create menginisialisasi mesin database jika belum diinisialisasi untuk aplikasi Anda.

CDaoWorkspace::GetDatabaseCount

Panggil fungsi anggota ini untuk mengambil jumlah objek database DAO di kumpulan Database ruang kerja — jumlah database terbuka di ruang kerja.

short GetDatabaseCount();

Tampilkan Nilai

Jumlah database terbuka di ruang kerja.

Keterangan

GetDatabaseCount berguna jika Anda perlu mengulangi semua database yang ditentukan dalam koleksi Database ruang kerja. Untuk mendapatkan informasi tentang database tertentu dalam koleksi, lihat GetDatabaseInfo. Penggunaan umumnya adalah memanggil GetDatabaseCount jumlah database terbuka, lalu menggunakan nomor tersebut sebagai indeks perulangan untuk panggilan berulang ke GetDatabaseInfo.

CDaoWorkspace::GetDatabaseInfo

Panggil fungsi anggota ini untuk mendapatkan berbagai jenis informasi tentang database yang terbuka di ruang kerja.

void GetDatabaseInfo(
    int nIndex,
    CDaoDatabaseInfo& dbinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetDatabaseInfo(
    LPCTSTR lpszName,
    CDaoDatabaseInfo& dbinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Indeks berbasis nol objek database di kumpulan Database ruang kerja, untuk pencarian menurut indeks.

dbinfo
Referensi ke objek CDaoDatabaseInfo yang mengembalikan informasi yang diminta.

dwInfoOptions
Opsi yang menentukan informasi mana tentang database yang akan diambil. Opsi yang tersedia tercantum di sini bersama dengan apa yang menyebabkan fungsi kembali:

  • AFX_DAO_PRIMARY_INFO (Default) Nama, Dapat Diperbarui, Transaksi

  • AFX_DAO_SECONDARY_INFO Informasi utama ditambah: Versi, Susunan Susunan, Batas Waktu Kueri

  • AFX_DAO_ALL_INFO Informasi primer dan sekunder plus: Koneksi

lpszName
Nama objek database, untuk pencarian berdasarkan nama. Nama adalah string dengan hingga 14 karakter yang secara unik menamai objek ruang kerja baru.

Keterangan

Satu versi fungsi memungkinkan Anda mencari database berdasarkan indeks. Versi lainnya memungkinkan Anda mencari database berdasarkan nama.

Untuk deskripsi informasi yang dikembalikan di dbinfo, lihat struktur CDaoDatabaseInfo . Struktur ini memiliki anggota yang sesuai dengan item informasi yang tercantum di atas dalam deskripsi dwInfoOptions. Saat Anda meminta informasi di satu tingkat, Anda juga mendapatkan informasi untuk tingkat sebelumnya.

CDaoWorkspace::GetIniPath

Panggil fungsi anggota ini untuk mendapatkan lokasi pengaturan inisialisasi mesin database Microsoft Jet di registri Windows.

static CString PASCAL GetIniPath();

Tampilkan Nilai

CString yang berisi lokasi registri.

Keterangan

Anda dapat menggunakan lokasi untuk mendapatkan informasi tentang pengaturan untuk mesin database. Informasi yang dikembalikan sebenarnya adalah nama subkuntang registri.

Untuk informasi terkait, lihat topik "Properti IniPath" dan "Menyesuaikan Windows Registry Pengaturan untuk Akses Data" di Bantuan DAO.

CDaoWorkspace::GetIsolateODBCTrans

Panggil fungsi anggota ini untuk mendapatkan nilai properti DAO IsolateODBCTrans saat ini untuk ruang kerja.

BOOL GetIsolateODBCTrans();

Tampilkan Nilai

Nonzero jika transaksi ODBC terisolasi; jika tidak, 0.

Keterangan

Dalam beberapa situasi, Anda mungkin perlu memiliki beberapa transaksi simultan yang tertunda pada database ODBC yang sama. Untuk melakukan ini, Anda perlu membuka ruang kerja terpisah untuk setiap transaksi. Perlu diingat bahwa meskipun setiap ruang kerja dapat memiliki koneksi ODBC sendiri ke database, ini memperlambat performa sistem. Karena isolasi transaksi biasanya tidak diperlukan, koneksi ODBC dari beberapa objek ruang kerja yang dibuka oleh pengguna yang sama dibagikan secara default.

Beberapa server ODBC, seperti Microsoft SQL Server, tidak mengizinkan transaksi simultan pada satu koneksi. Jika Anda perlu memiliki lebih dari satu transaksi sekaligus yang tertunda terhadap database tersebut, atur properti IsolateODBCTrans ke TRUE di setiap ruang kerja segera setelah Anda membukanya. Ini memaksa koneksi ODBC terpisah untuk setiap ruang kerja.

Untuk informasi terkait, lihat topik "IsolateODBCTrans Property" di Bantuan DAO.

CDaoWorkspace::GetLoginTimeout

Panggil fungsi anggota ini untuk mendapatkan nilai properti LOGINTimeout DAO saat ini untuk ruang kerja.

static short PASCAL GetLoginTimeout();

Tampilkan Nilai

Jumlah detik sebelum kesalahan terjadi saat Anda mencoba masuk ke database ODBC.

Keterangan

Nilai ini menunjukkan jumlah detik sebelum kesalahan terjadi saat Anda mencoba masuk ke database ODBC. Pengaturan LoginTimeout default adalah 20 detik. Ketika LoginTimeout diatur ke 0, tidak ada batas waktu yang terjadi dan komunikasi dengan sumber data mungkin berhenti merespons.

Ketika Anda mencoba masuk ke database ODBC, seperti Microsoft SQL Server, koneksi mungkin gagal sebagai akibat dari kesalahan jaringan atau karena server tidak berjalan. Daripada menunggu default 20 detik untuk tersambung, Anda dapat menentukan berapa lama mesin database menunggu sebelum menghasilkan kesalahan. Masuk ke server terjadi secara implisit sebagai bagian dari sejumlah peristiwa yang berbeda, seperti menjalankan kueri pada database server eksternal.

Untuk informasi terkait, lihat topik "Properti LoginTimeout" di Bantuan DAO.

CDaoWorkspace::GetName

Panggil fungsi anggota ini untuk mendapatkan nama objek ruang kerja DAO yang ditentukan pengguna yang CDaoWorkspace mendasar objek.

CString GetName();

Tampilkan Nilai

CString yang berisi nama objek ruang kerja DAO yang ditentukan pengguna.

Keterangan

Nama ini berguna untuk mengakses objek ruang kerja DAO di koleksi Ruang Kerja mesin database berdasarkan nama.

Untuk informasi terkait, lihat topik "Properti Nama" di Bantuan DAO.

CDaoWorkspace::GetUserName

Panggil fungsi anggota ini untuk mendapatkan nama pemilik ruang kerja.

CString GetUserName();

Tampilkan Nilai

CString yang mewakili pemilik objek ruang kerja.

Keterangan

Untuk mendapatkan atau mengatur izin untuk pemilik ruang kerja, hubungi DAO secara langsung untuk memeriksa pengaturan properti Izin; ini menentukan izin apa yang dimiliki pengguna. Untuk bekerja dengan izin, Anda memerlukan SISTEM. File MDA.

Untuk informasi tentang memanggil DAO secara langsung, lihat Catatan Teknis 54. Untuk informasi terkait, lihat topik "Properti Nama Pengguna" di Bantuan DAO.

CDaoWorkspace::GetVersion

Panggil fungsi anggota ini untuk menentukan versi mesin database Microsoft Jet yang digunakan.

static CString PASCAL GetVersion();

Tampilkan Nilai

CString yang menunjukkan versi mesin database yang terkait dengan objek.

Keterangan

Nilai yang dikembalikan mewakili nomor versi dalam formulir "major.minor"; misalnya, "3.0". Nomor versi produk (misalnya, 3.0) terdiri dari nomor versi (3), titik, dan nomor rilis (0).

Untuk informasi terkait, lihat topik "Properti Versi" di Bantuan DAO.

CDaoWorkspace::GetWorkspaceCount

Panggil fungsi anggota ini untuk mengambil jumlah objek ruang kerja DAO dalam koleksi Ruang Kerja mesin database.

short GetWorkspaceCount();

Tampilkan Nilai

Jumlah ruang kerja terbuka dalam koleksi Ruang Kerja.

Keterangan

Jumlah ini tidak termasuk ruang kerja terbuka apa pun yang tidak ditambahkan ke koleksi. GetWorkspaceCount berguna jika Anda perlu mengulangi semua ruang kerja yang ditentukan dalam koleksi Ruang Kerja. Untuk mendapatkan informasi tentang ruang kerja tertentu dalam koleksi, lihat GetWorkspaceInfo. Penggunaan umumnya adalah memanggil GetWorkspaceCount jumlah ruang kerja terbuka, lalu menggunakan nomor tersebut sebagai indeks perulangan untuk panggilan berulang ke GetWorkspaceInfo.

CDaoWorkspace::GetWorkspaceInfo

Panggil fungsi anggota ini untuk mendapatkan berbagai jenis informasi tentang ruang kerja yang terbuka dalam sesi.

void GetWorkspaceInfo(
    int nIndex,
    CDaoWorkspaceInfo& wkspcinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetWorkspaceInfo(
    LPCTSTR lpszName,
    CDaoWorkspaceInfo& wkspcinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parameter

nIndex
Indeks berbasis nol objek database di kumpulan Ruang Kerja, untuk pencarian menurut indeks.

wkspcinfo
Referensi ke objek CDaoWorkspaceInfo yang mengembalikan informasi yang diminta.

dwInfoOptions
Opsi yang menentukan informasi mana tentang ruang kerja yang akan diambil. Opsi yang tersedia tercantum di sini bersama dengan apa yang menyebabkan fungsi kembali:

  • Nama AFX_DAO_PRIMARY_INFO (Default)

  • AFX_DAO_SECONDARY_INFO Informasi utama plus: Nama Pengguna

  • AFX_DAO_ALL_INFO Informasi primer dan sekunder plus: Mengisolasi ODBCTrans

lpszName
Nama objek ruang kerja, untuk pencarian berdasarkan nama. Nama adalah string dengan hingga 14 karakter yang secara unik menamai objek ruang kerja baru.

Keterangan

Untuk deskripsi informasi yang dikembalikan di wkspcinfo, lihat struktur CDaoWorkspaceInfo . Struktur ini memiliki anggota yang sesuai dengan item informasi yang tercantum di atas dalam deskripsi dwInfoOptions. Saat Anda meminta informasi pada satu tingkat, Anda juga mendapatkan informasi untuk tingkat sebelumnya.

CDaoWorkspace::Idle

Panggil Idle untuk memberi mesin database kesempatan untuk melakukan tugas latar belakang yang mungkin tidak diperbarui karena pemrosesan data yang intens.

static void PASCAL Idle(int nAction = dbFreeLocks);

Parameter

nAction
Tindakan yang harus diambil selama pemrosesan diam. Saat ini satu-satunya tindakan yang valid adalah dbFreeLocks.

Keterangan

Ini sering terjadi di lingkungan multipengguna, multitugas di mana tidak ada cukup waktu pemrosesan latar belakang untuk menyimpan semua rekaman dalam kumpulan rekaman saat ini.

Catatan

Idle Panggilan tidak diperlukan dengan database yang dibuat dengan mesin database Microsoft Jet versi 3.0. Gunakan Idle hanya untuk database yang dibuat dengan versi yang lebih lama.

Biasanya, kunci baca dihapus dan data dalam objek recordset jenis dinaset lokal diperbarui hanya ketika tidak ada tindakan lain (termasuk gerakan mouse) yang terjadi. Jika Anda secara berkala memanggil Idle, Anda menyediakan mesin database dengan waktu untuk mengejar ketinggalan tugas pemrosesan latar belakang dengan merilis kunci baca yang tidak diperlukan. Menentukan dbFreeLocks konstanta sebagai penundaan argumen pemrosesan hingga semua kunci baca dilepaskan.

Fungsi anggota ini tidak diperlukan di lingkungan pengguna tunggal kecuali beberapa instans aplikasi berjalan. Fungsi Idle anggota dapat meningkatkan performa di lingkungan multipengguna karena memaksa mesin database untuk membersihkan data ke disk, melepaskan kunci pada memori. Anda juga dapat melepaskan kunci baca dengan menjadikan operasi sebagai bagian dari transaksi.

Untuk informasi terkait, lihat topik "Metode Menganggur" di Bantuan DAO.

CDaoWorkspace::IsOpen

Panggil fungsi anggota ini untuk menentukan apakah CDaoWorkspace objek terbuka — yaitu, apakah objek MFC telah diinisialisasi oleh panggilan ke Buka atau panggilan ke Buat.

BOOL IsOpen() const;

Tampilkan Nilai

Bukan nol jika objek ruang kerja terbuka; jika tidak, 0.

Keterangan

Anda dapat memanggil salah satu fungsi anggota ruang kerja yang dalam keadaan terbuka.

CDaoWorkspace::m_pDAOWorkspace

Penunjuk ke objek ruang kerja DAO yang mendasar.

Keterangan

Gunakan anggota data ini jika Anda memerlukan akses langsung ke objek DAO yang mendasar. Anda dapat memanggil antarmuka objek DAO melalui pointer ini.

Untuk informasi tentang mengakses objek DAO secara langsung, lihat Catatan Teknis 54.

CDaoWorkspace::Buka

Secara eksplisit membuka objek ruang kerja yang terkait dengan ruang kerja default DAO.

virtual void Open(LPCTSTR lpszName = NULL);

Parameter

lpszName
Nama objek ruang kerja DAO untuk dibuka — string dengan hingga 14 karakter yang secara unik memberi nama ruang kerja. Terima nilai default NULL untuk secara eksplisit membuka ruang kerja default. Untuk persyaratan penamaan, lihat parameter lpszName untuk Buat. Untuk informasi terkait, lihat topik "Properti Nama" di Bantuan DAO.

Keterangan

Setelah membuat CDaoWorkspace objek, panggil fungsi anggota ini untuk melakukan salah satu hal berikut:

  • Buka ruang kerja default secara eksplisit. Berikan NULL untuk lpszName.

  • Buka objek yang sudah ada CDaoWorkspace , anggota koleksi Ruang Kerja, menurut nama. Berikan nama yang valid untuk objek ruang kerja yang sudah ada.

Open menempatkan objek ruang kerja ke dalam status terbuka dan juga menginisialisasi mesin database jika belum diinisialisasi untuk aplikasi Anda.

Meskipun banyak CDaoWorkspace fungsi anggota hanya dapat dipanggil setelah ruang kerja dibuka, fungsi anggota berikut, yang beroperasi pada mesin database, tersedia setelah konstruksi objek C++ tetapi sebelum panggilan ke Open:

CDaoWorkspace::RepairDatabase

Panggil fungsi anggota ini jika Anda perlu mencoba memperbaiki database rusak yang mengakses mesin database Microsoft Jet.

static void PASCAL RepairDatabase(LPCTSTR lpszName);

Parameter

lpszName
Jalur dan nama file untuk file database mesin Microsoft Jet yang sudah ada. Jika Anda menghilangkan jalur, hanya direktori saat ini yang dicari. Jika sistem Anda mendukung konvensi penamaan seragam (UNC), Anda juga dapat menentukan jalur jaringan, seperti: "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB". (Garis miring terbelakang ganda diperlukan dalam string jalur karena "\" adalah karakter escape C++.)

Keterangan

Anda harus menutup database yang ditentukan oleh lpszName sebelum memperbaikinya. Di lingkungan multipengguna, pengguna lain tidak dapat membuka lpszName saat Anda memperbaikinya. Jika lpszName tidak ditutup atau tidak tersedia untuk penggunaan eksklusif, kesalahan terjadi.

Fungsi anggota ini mencoba memperbaiki database yang ditandai sebagai mungkin rusak oleh operasi penulisan yang tidak lengkap. Ini dapat terjadi jika aplikasi yang menggunakan mesin database Microsoft Jet ditutup secara tak terduga karena pemadaman listrik atau masalah perangkat keras komputer. Jika Anda menyelesaikan operasi dan memanggil fungsi Tutup anggota atau Anda keluar dari aplikasi dengan cara yang biasa, database tidak akan ditandai sebagai mungkin rusak.

Catatan

Setelah memperbaiki database, ada baiknya juga untuk memadatkannya menggunakan fungsi anggota CompactDatabase untuk mendefradasi file dan memulihkan ruang disk.

Untuk informasi selengkapnya tentang memperbaiki database, lihat topik "RepairDatabase Method" di Bantuan DAO.

CDaoWorkspace::Rollback

Panggil fungsi anggota ini untuk mengakhiri transaksi saat ini dan memulihkan semua database di ruang kerja ke kondisi mereka sebelum transaksi dimulai.

void Rollback();

Keterangan

Perhatian

Dalam satu objek ruang kerja, transaksi selalu global ke ruang kerja dan tidak terbatas hanya pada satu database atau recordset. Jika Anda melakukan operasi pada lebih dari satu database atau kumpulan rekaman dalam transaksi ruang kerja, Rollback memulihkan semua operasi pada semua database dan kumpulan rekaman tersebut.

Jika Anda menutup objek ruang kerja tanpa menyimpan atau menggulung balik transaksi yang tertunda, transaksi akan digulung balik secara otomatis. Jika Anda memanggil CommitTrans atau Rollback tanpa terlebih dahulu memanggil BeginTrans, kesalahan terjadi.

Catatan

Saat Anda memulai transaksi, mesin database merekam operasinya dalam file yang disimpan di direktori yang ditentukan oleh variabel lingkungan TEMP di stasiun kerja. Jika file log transaksi menghabiskan penyimpanan yang tersedia di drive TEMP Anda, mesin database akan menyebabkan MFC melempar CDaoException (kesalahan DAO 2004). Pada titik ini, jika Anda memanggil CommitTrans, sejumlah operasi yang tidak ditentukan dilakukan tetapi operasi yang belum selesai yang tersisa hilang, dan operasi harus dimulai ulang. Rollback Panggilan merilis log transaksi dan mengembalikan semua operasi dalam transaksi.

CDaoWorkspace::SetDefaultPassword

Panggil fungsi anggota ini untuk mengatur kata sandi default yang digunakan mesin database saat objek ruang kerja dibuat tanpa kata sandi tertentu.

static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);

Parameter

lpszPassword
Kata sandi default. Panjang kata sandi dapat mencapai 14 karakter dan dapat berisi karakter apa pun kecuali ASCII 0 (null). Kata sandi peka huruf besar/kecil.

Keterangan

Kata sandi default yang Anda tetapkan berlaku untuk ruang kerja baru yang Anda buat setelah panggilan. Saat membuat ruang kerja berikutnya, Anda tidak perlu menentukan kata sandi dalam panggilan Buat .

Untuk menggunakan fungsi anggota ini:

  1. CDaoWorkspace Buat objek tetapi jangan panggil Create.

  2. Hubungi SetDefaultPassword dan, jika Anda mau, SetDefaultUser.

  3. Panggil Create objek ruang kerja ini atau objek berikutnya, tanpa menentukan kata sandi.

Secara default, properti DefaultUser diatur ke "admin" dan properti DefaultPassword diatur ke string kosong ("").

Untuk informasi selengkapnya tentang keamanan, lihat topik "Properti Izin" di Bantuan DAO. Untuk informasi terkait, lihat topik "DefaultPassword Property" dan "DefaultUser Property" di Bantuan DAO.

CDaoWorkspace::SetDefaultUser

Panggil fungsi anggota ini untuk mengatur nama pengguna default yang digunakan mesin database saat objek ruang kerja dibuat tanpa nama pengguna tertentu.

static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);

Parameter

lpszDefaultUser
Nama pengguna default. Panjang nama pengguna bisa 1 - 20 karakter dan menyertakan karakter alfabet, karakter beraksen, angka, spasi, dan simbol kecuali untuk: " (tanda kutip), / (garis miring ke depan), \ (garis miring terbalik), [ ] (tanda kurung), : (titik dua), | (pipa), < (tanda kurang dari), > (tanda lebih besar dari), (tanda plus), + (tanda sama dengan), =; (titik koma), , (tanda tanya), * (tanda bintang), spasi di depan, dan karakter kontrol (ASCII 00 ke ASCII 31). Untuk informasi terkait, lihat topik "Properti Nama Pengguna" di Bantuan DAO.

Keterangan

Nama pengguna default yang Anda tetapkan berlaku untuk ruang kerja baru yang Anda buat setelah panggilan. Saat membuat ruang kerja berikutnya, Anda tidak perlu menentukan nama pengguna dalam panggilan Buat .

Untuk menggunakan fungsi anggota ini:

  1. CDaoWorkspace Buat objek tetapi jangan panggil Create.

  2. Hubungi SetDefaultUser dan, jika Anda mau, SetDefaultPassword.

  3. Panggil Create objek ruang kerja ini atau objek berikutnya, tanpa menentukan nama pengguna.

Secara default, properti DefaultUser diatur ke "admin" dan properti DefaultPassword diatur ke string kosong ("").

Untuk informasi terkait, lihat topik "DefaultUser Property" dan "DefaultPassword Property" di Bantuan DAO.

CDaoWorkspace::SetIniPath

Panggil fungsi anggota ini untuk menentukan lokasi pengaturan registri Windows untuk mesin database Microsoft Jet.

static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);

Parameter

lpszRegistrySubkey
String yang berisi nama subkuntang registri Windows untuk lokasi pengaturan atau parameter mesin database Microsoft Jet yang diperlukan untuk database ISAM yang dapat diinstal.

Keterangan

Panggil SetIniPath hanya jika Anda perlu menentukan pengaturan khusus. Untuk informasi selengkapnya, lihat topik "Properti IniPath" di Bantuan DAO.

Catatan

Panggil SetIniPath selama penginstalan aplikasi, bukan saat aplikasi berjalan. SetIniPath harus dipanggil sebelum Anda membuka ruang kerja, database, atau kumpulan rekaman apa pun; jika tidak, MFC melempar pengecualian.

Anda dapat menggunakan mekanisme ini untuk mengonfigurasi mesin database dengan pengaturan registri yang disediakan pengguna. Cakupan atribut ini terbatas pada aplikasi Anda dan tidak dapat diubah tanpa memulai ulang aplikasi Anda.

CDaoWorkspace::SetIsolateODBCTrans

Panggil fungsi anggota ini untuk mengatur nilai properti DAO IsolateODBCTrans untuk ruang kerja.

void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);

Parameter

bIsolateODBCTrans
Berikan TRUE jika Anda ingin mulai mengisolasi transaksi ODBC. Teruskan FALSE jika Anda ingin berhenti mengisolasi transaksi ODBC.

Keterangan

Dalam beberapa situasi, Anda mungkin perlu memiliki beberapa transaksi simultan yang tertunda pada database ODBC yang sama. Untuk melakukan ini, Anda perlu membuka ruang kerja terpisah untuk setiap transaksi. Meskipun setiap ruang kerja dapat memiliki koneksi ODBC sendiri ke database, ini memperlambat performa sistem. Karena isolasi transaksi biasanya tidak diperlukan, koneksi ODBC dari beberapa objek ruang kerja yang dibuka oleh pengguna yang sama dibagikan secara default.

Beberapa server ODBC, seperti Microsoft SQL Server, tidak mengizinkan transaksi simultan pada satu koneksi. Jika Anda perlu memiliki lebih dari satu transaksi sekaligus yang tertunda terhadap database tersebut, atur properti IsolateODBCTrans ke TRUE di setiap ruang kerja segera setelah Anda membukanya. Ini memaksa koneksi ODBC terpisah untuk setiap ruang kerja.

CDaoWorkspace::SetLoginTimeout

Panggil fungsi anggota ini untuk mengatur nilai properti DAO LoginTimeout untuk ruang kerja.

static void PASCAL SetLoginTimeout(short nSeconds);

Parameter

nSeconds
Jumlah detik sebelum kesalahan terjadi saat Anda mencoba masuk ke database ODBC.

Keterangan

Nilai ini menunjukkan jumlah detik sebelum kesalahan terjadi saat Anda mencoba masuk ke database ODBC. Pengaturan LoginTimeout default adalah 20 detik. Ketika LoginTimeout diatur ke 0, tidak ada batas waktu yang terjadi dan komunikasi dengan sumber data mungkin berhenti merespons.

Ketika Anda mencoba masuk ke database ODBC, seperti Microsoft SQL Server, koneksi mungkin gagal sebagai akibat dari kesalahan jaringan atau karena server tidak berjalan. Daripada menunggu default 20 detik untuk tersambung, Anda dapat menentukan berapa lama mesin database menunggu sebelum menghasilkan kesalahan. Masuk ke server terjadi secara implisit sebagai bagian dari sejumlah peristiwa yang berbeda, seperti menjalankan kueri pada database server eksternal. Nilai batas waktu ditentukan oleh pengaturan properti LoginTimeout saat ini.

Untuk informasi terkait, lihat topik "Properti LoginTimeout" di Bantuan DAO.

Baca juga

Kelas CObject
Bagan Hierarki
Kelas CDaoDatabase
Kelas CDaoRecordset
Kelas CDaoTableDef
Kelas CDaoQueryDef
Kelas CDaoException