Fungsi JetCreateTableColumnIndex2
Berlaku untuk: Windows | Server Windows
Fungsi JetCreateTableColumnIndex2
Fungsi JetCreateTableColumnIndex2 membuat tabel dalam database ESE dengan sekumpulan indeks awal dan sekumpulan kolom awal dari array struktur JET_TABLECREATE2 . Struktur JET_TABLECREATE2 memungkinkan fungsi panggilan balik ditentukan.
Windows XP: JetCreateTableColumnIndex2 diperkenalkan di Windows XP.
JET_ERR JET_API JetCreateTableColumnIndex2(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE2* ptablecreate
);
Parameter
sesid
Konteks sesi database yang akan digunakan untuk panggilan API.
dbid
Pengidentifikasi database yang digunakan untuk panggilan API.
ptablecreate
Penunjuk ke struktur JET_TABLECREATE2 yang menentukan tabel yang akan dibuat. Lihat JET_TABLECREATE2 untuk detail selengkapnya.
Tampilkan Nilai
Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Parameter Kesalahan mesin Storage yang Dapat Diperluas dan Penanganan Kesalahan.
Mengembalikan kode |
Deskripsi |
---|---|
JET_errSuccess |
Operasi berhasil diselesaikan. |
JET_errCallbackNotResolved |
Fungsi panggilan balik tidak dapat diselesaikan. DLL mungkin belum ditemukan, atau fungsi di DLL mungkin belum ditemukan. Dengan pengelogan yang memadai diaktifkan, log peristiwa akan memberikan detail lebih lanjut. |
JET_errCannotIndex |
Upaya dilakukan untuk mengindeks melalui kolom escrow-update atau SLV (perhatikan bahwa kolom SLV tidak digunakan lagi). |
JET_errCannotNestDDL |
Jika ptablecreate-grbit> menentukan JET_bitTableCreateTemplateTable, tetapi ptablecreate-szTemplateTableName> diatur ke NULL. |
JET_errColumnDuplicate |
Kolom sudah ada. |
JET_errColumnNotFound |
Upaya dilakukan untuk mengindeks kolom yang tidak ada. Mencoba mengindeks secara kondisional melalui kolom yang tidak ada juga dapat menghasilkan kesalahan ini. |
JET_errColumnRedundant |
Upaya dilakukan untuk menambahkan kolom redundan. Tidak boleh ada lebih dari satu kolom autoincrement, dan tidak lebih dari satu kolom versi per tabel. |
JET_errDensityInvalid |
Kesalahan ini akan dikembalikan jika anggota ulDensity dari struktur JET_INDEXCREATE diatur ke angka kurang dari 20 atau lebih dari 100. |
JET_errDDLNotInheritable |
Menandakan bahwa tabel yang dinamai dalam anggota szTemplateTableName dari struktur JET_TABLECREATE bukan ditandai sebagai tabel templat (artinya, tabel tersebut tidak memiliki kumpulan JET_bitTableCreateTemplateTable). |
JET_errIndexDuplicate |
Upaya untuk menentukan dua indeks identik dibuat. |
JET_errIndexHasPrimary |
Upaya dilakukan untuk menentukan lebih dari satu indeks utama untuk tabel. Tabel harus memiliki tepat satu indeks utama. Jika tidak ada indeks utama yang ditentukan, mesin database akan secara transparan membuatnya. |
JET_errIndexInvalidDef |
Definisi indeks yang tidak valid ditentukan. Beberapa kemungkinan alasan untuk menerima kesalahan ini adalah:
|
JET_errIndexTuplesInvalidLimits |
Windows XP dan yang lebih baru. Struktur JET_TUPLELIMITS ditentukan, dan batasnya tidak didukung. Lihat bagian keterangan dari struktur JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP dan yang lebih baru. Indeks tuple tidak boleh unik (yaitu, anggota grbit struktur JET_INDEXCREATE tidak boleh memiliki set JET_bitIndexPrimary dan JET_bitIndexUnique). |
JET_errIndexTuplesOneColumnOnly |
Windows XP dan yang lebih baru. Indeks tuple hanya dapat melebihi satu kolom (yaitu, jika anggota grbit struktur JET_INDEXCREATE memiliki set JET_bitIndexTuples , dan anggota szKey dari struktur JET_INDEXCREATE menentukan lebih dari satu kolom). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP dan yang lebih baru. Indeks tuple tidak dapat menjadi indeks utama (yaitu, anggota grbit dari struktur JET_INDEXCREATE tidak boleh memiliki JET_bitIndexPrimary dan set JET_bitIndexTuples). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP dan yang lebih baru. Indeks tuple hanya dapat berada di teks atau kolom Unicode. Upaya untuk mengindeks kolom lain (seperti kolom biner) akan menghasilkan JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP dan yang lebih baru. Indeks tuple tidak mengizinkan anggota cbVarSegMac dari struktur JET_INDEXCREATE diatur. |
JET_errInTransaction |
Upaya dilakukan untuk membuat indeks tanpa informasi versi saat dalam transaksi. |
JET_errInvalidCodePage |
Anggota cp dari struktur JET_COLUMNCREATE tidak diatur ke halaman kode yang valid. Satu-satunya nilai yang valid untuk kolom teks adalah Bahasa Inggris (1252) dan Unicode (1200). Nilai 0 berarti default akan digunakan (Inggris, 1252). |
JET_errInvalidColumnType |
Anggota coltyp dari struktur JET_COLUMNCREATE tidak diatur ke jenis kolom yang valid. |
JET_errInvalidCreateIndex |
Beberapa alasan kesalahan ini dapat terjadi:
|
JET_errInvalidgrbit |
Kombinasi anggota grbit yang tidak valid ditentukan dalam JET_TABLECREATE atau JET_TABLECREATE2. Definisi indeks tidak valid karena anggota grbit berisi nilai yang tidak konsisten. Beberapa kemungkinan alasannya adalah:
|
JET_errInvalidLanguageId |
ID Lokal (LCID) tidak valid diteruskan (baik melalui anggota lcid dari struktur JET_UNICODEINDEX yang ditunjukkan oleh anggota pidxunicode dalam struktur JET_INDEXCREATE , atau melalui bidang lcid dari struktur JET_INDEXCREATE ). |
JET_errInvalidParameter |
Parameter yang tidak valid diberikan. Beberapa kemungkinan alasannya adalah:
|
JET_errRecordTooBig |
Catatannya terlalu besar. Jumlah anggota cbMax dari struktur JET_COLUMNCREATE untuk semua kolom tetap tidak boleh melebihi nilai tertentu. |
JET_errTableDuplicate |
Tabel sudah ada. |
JET_errTooManyColumns |
Upaya dilakukan untuk menambahkan terlalu banyak kolom ke tabel. Tabel tidak boleh memiliki lebih dari JET_ccolFixedMost kolom tetap, tidak lebih dari JET_ccolVarMost kolom panjang variabel, dan tidak lebih dari kolom yang diberi tag JET_ccolTaggedMost. |
JET_errUnicodeTranslationFail |
Terjadi kesalahan saat mencoba menormalkan kolom Unicode. Ini dapat disebabkan oleh kehabisan sumber daya sistem. |
Keterangan
Nama JetCreateTableColumnIndex2 berasal dari urutan pembuatan objek: Pertama-tama membuat tabel, kolom, lalu akhirnya mengindeks. JetCreateTableColumnIndex2 membuat tabel dengan sekumpulan kolom dan indeks awal. Kolom dan indeks tambahan dapat ditambahkan dan dihapus secara dinamis dengan JetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex, JetCreateIndex2, dan JetDeleteIndex.
Seperti JetOpenTable, ketika aplikasi dilakukan menggunakan tableid yang dikembalikan, biasanya harus ditutup dengan JetCloseTable.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien |
Memerlukan Windows Vista atau Windows XP. |
Server |
Memerlukan Windows Server 2008 atau Windows Server 2003. |
Header |
Dinyatakan dalam Esent.h. |
Pustaka |
Gunakan ESENT.lib. |
DLL |
Membutuhkan ESENT.dll. |
Unicode |
Diimplementasikan sebagai JetCreateTableColumnIndex2W (Unicode) dan JetCreateTableColumnIndex2A (ANSI). |
Lihat juga
JET_CBTYP
JET_DBID
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_SESID
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JET_TUPLELIMITS
JetAddColumn
JetCreateIndex
JetCreateIndex2
JetCreateTable
JetCreateTableColumnIndex
JetDeleteColumn
JetDeleteColumn2