Kelas CDaoWorkspace
Mengelola sesi database bernama yang dilindungi kata sandi dari masuk ke logoff, oleh satu pengguna.
Catatan
Objek Akses Data (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 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 lebih banyak objek ruang kerja. 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 Connectivity (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:
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 lebih banyak ruang kerja 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 koleksi Ruang Kerja dijelaskan di bawah fungsi Buat anggota. Objek ruang kerja tidak bertahan 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 dan mengembalikan transaksi yang tidak dijalankan.
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 adaCDaoWorkspace
, 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 melaluiCDaoDatabase
anggota data.Demikian pula, jika Anda membuat
CDaoRecordset
objek tanpa menyediakan penunjuk keCDaoDatabase
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, melaluiCDaoRecordset
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
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:
Panggil fungsi anggota CommitTrans untuk melakukan transaksi dan menyimpan perubahan ke sumber data.
Atau panggil fungsi Anggota putar kembali untuk membatalkan 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 memanggilCreate
, 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 yang menyimpan 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 terbatas hanya pada satu database atau recordset. 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. 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 ModerndbLangArabic
ArabdbLangCyrillic
RusiadbLangCzech
CekodbLangDutch
BelandadbLangGreek
YunanidbLangHebrew
IbranidbLangHungarian
HongariadbLangIcelandic
IslandiadbLangNordic
Bahasa Nordik (hanya mesin database Microsoft Jet versi 1.0)dbLangNorwdan
Norwegia dan DenmarkdbLangPolish
PolandiadbLangSpanish
Bahasa Spanyol TradisionaldbLangSwedfin
Bahasa Swedia dan FinlandiadbLangTurkish
Turki
nOptions
Menunjukkan satu atau beberapa opsi untuk database target, lpszDestName. Jika Anda menghilangkan argumen ini dengan menerima nilai default, lpszDestName 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 dan dbDecrypt
dbEncrypt
, lpszDestName
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:
Buat objek CDaoWorkspace .
Panggil fungsi anggota objek
Create
untuk membuat ruang kerja DAO yang mendasar. Anda harus menentukan nama ruang kerja.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 koleksi Ruang Kerja. Create
menginisialisasi mesin database jika belum diinisialisasi untuk aplikasi Anda.
CDaoWorkspace::GetDatabaseCount
Panggil fungsi anggota ini untuk mengambil jumlah objek database DAO dalam kumpulan Database ruang kerja. Yang merupakan 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: Sambungkan
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
Yang CString
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 Pengaturan Registri Windows 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.
Saat 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 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
yang CString
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 menyertakan 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. Yang berarti 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 dari:
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:
CDaoWorkspace
Buat objek tetapi jangan panggilCreate
.Hubungi
SetDefaultPassword
dan, jika Anda mau, SetDefaultUser.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:
CDaoWorkspace
Buat objek tetapi jangan panggilCreate
.Hubungi
SetDefaultUser
dan, jika Anda mau, SetDefaultPassword.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.
Saat 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.
Lihat juga
CObject
Kelas
Bagan Hierarki
CDaoDatabase
Kelas
CDaoRecordset
Kelas
CDaoTableDef
Kelas
CDaoQueryDef
Kelas
CDaoException
Kelas