Fungsi JetCreateTable
Berlaku untuk: Windows | Windows Server
Fungsi JetCreateTable
Fungsi JetCreateTable membuat tabel kosong dalam database ESE.
JET_ERR JET_API JetCreateTable(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in unsigned long lPages,
__in unsigned long lDensity,
__out JET_TABLEID* ptableid
);
Parameter
sesid
Konteks sesi database yang akan digunakan.
dbid
Pengidentifikasi database yang akan digunakan.
szTableName
Nama indeks yang akan dibuat.
Nama harus diformat sesuai dengan aturan berikut:
Kurang dari JET_cbNameMost, tidak termasuk NULL yang mengakhiri.
Dibuat dari sekumpulan karakter berikut: 0 hingga 9, A hingga Z, a sampai z, dan semua tanda baca lainnya kecuali untuk "!" (tanda seru), "," (koma), "[" (kurung buka), dan "]" (tanda kurung tutup) — yaitu, karakter ASCII 0x20, 0x22 melalui 0x2d, 0x2f melalui 0x5a, 0x5c, 0x5d melalui 0x7f.
Tidak dimulai dengan spasi.
Dibuat dari setidaknya satu karakter non-spasi.
lPages
Jumlah awal halaman database yang akan dialokasikan untuk tabel. Menentukan angka yang lebih besar dari satu dapat mengurangi fragmentasi jika banyak baris disisipkan ke dalam tabel ini.
LDensity
Kepadatan tabel, dalam persentase titik. Angka harus 0 atau dalam kisaran 20 hingga 100. Meneruskan 0 berarti bahwa nilai default harus digunakan. Defaultnya adalah 80.
ptableid
Jika berhasil, pengidentifikasi tabel dikembalikan di bidang ini. Nilai tidak ditentukan jika API tidak mengembalikan JET_errSuccess.
Tampilkan Nilai
Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.
Menampilkan kode |
Deskripsi |
---|---|
JET_errSuccess |
Operasi berhasil diselesaikan. |
JET_errCallbackNotResolved |
Fungsi panggilan balik tidak dapat diatasi. 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 |
Kepadatan yang tidak valid diteruskan di anggota ulDensity dalam struktur JET_TABLECREATE atau JET_TABLECREATE2 . |
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 dilakukan untuk menentukan dua indeks yang identik. |
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 membuatnya secara transparan. |
JET_errIndexInvalidDef |
Definisi indeks yang tidak valid ditentukan. Beberapa alasan yang mungkin 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 JET_bitIndexPrimary dan set 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 kumpulan 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 boleh menjadi indeks utama (yaitu, anggota grbit struktur JET_INDEXCREATE tidak boleh memiliki JET_bitIndexPrimary dan JET_bitIndexTuples yang ditetapkan). |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP dan yang lebih baru. Indeks tuple tidak memungkinkan anggota cbVarSegMac dari struktur JET_INDEXCREATE diatur. |
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_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
JetCreateTable membuat tabel yang tidak berisi kolom apa pun. Untuk menambahkan kolom, lihat JetAddColumn.
Secara internal, JetCreateTable memanggil JetCreateTableColumnIndex2, mengisi struktur JET_TABLECREATE2 dengan:
JET_TABLECREATE2.cbStruct = sizeof( JET_TABLECREATE2 )
JET_TABLECREATE2.szTableName = szTableName
JET_TABLECREATE2.ulPages = lPage
JET_TABLECREATE2.ulDensity = lDensity
JET_TABLECREATE2.tableid = JET_tableidNil
Semua bidang lain dari struktur JET_TABLECREATE2 internal diatur ke nol atau NULL. Pada output, ptableid akan diatur ke JET_TABLECREATE2.tableid.
Lihat JetCreateTableColumnIndex2 untuk detail selengkapnya.
Seperti JetOpenTable, ketika aplikasi dilakukan menggunakan anggota tableid yang dikembalikan dari struktur JET_TABLECREATE2 , biasanya harus ditutup dengan JetCloseTable.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien |
Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional. |
Server |
Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server. |
Header |
Dinyatakan dalam Esent.h. |
Pustaka |
Gunakan ESENT.lib. |
DLL |
Membutuhkan ESENT.dll. |
Unicode |
Diimplementasikan sebagai JetCreateTableW (Unicode) dan JetCreateTableA (ANSI). |
Lihat juga
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2