Struktur JET_COLUMNCREATE

Berlaku untuk: Windows | Windows Server

Struktur JET_COLUMNCREATE

Struktur JET_COLUMNCREATE menjelaskan kolom yang akan dibuat dalam database.

    typedef struct tag_JET_COLUMNCREATE {
      unsigned long cbStruct;
      tchar* szColumnName;
      JET_COLTYP coltyp;
      unsigned long cbMax;
      JET_GRBIT grbit;
      void* pvDefault;
      unsigned long cbDefault;
      unsigned long cp;
      JET_COLUMNID columnid;
      JET_ERR err;
    } JET_COLUMNCREATE;

Anggota

cbStruct

Ukuran struktur, dalam byte. Bidang ini harus diinisialisasi ke sizeof( JET_COLUMNCREATE ).

szColumnName

Nama kolom yang akan dibuat. Nama harus memenuhi kriteria berikut:

  • Panjangnya harus kurang dari JET_cbNameMost karakter, tidak termasuk NULL yang mengakhiri.
  • Ini harus berisi karakter hanya dari set berikut: 0 hingga 9, Tanda baca melalui Z, a hingga z, dan semua tanda baca lainnya kecuali untuk tanda seru (!), koma (,), tanda kurung buka ([), dan tanda kurung tutup (]), yaitu, karakter ASCII 0x20, 0x22 melalui 0x2d, 0x2f melalui 0x5a, 0x5c, 0x5d melalui 0x7f.
  • Ini tidak dapat dimulai dengan spasi.
  • Ini harus berisi setidaknya satu karakter non-spasi.

coltyp

Jenis kolom (misalnya, teks, biner, atau numerik). Untuk informasi selengkapnya, lihat JET_COLTYP.

cbMax

Panjang maksimum, dalam byte, dari kolom panjang variabel. Panjang kolom untuk kolom dengan panjang tetap.

grbit

Sekelompok bit yang berisi opsi untuk struktur ini, dan yang mencakup nol atau beberapa nilai berikut.

Nilai

Makna

JET_bitColumnFixed

Kolom diperbaiki. Ini akan selalu menggunakan jumlah ruang yang sama dalam satu baris, terlepas dari berapa banyak data yang disimpan dalam kolom. JET_bitColumnFixed tidak dapat digunakan dengan JET_bitColumnTagged. Bit ini tidak dapat digunakan dengan nilai panjang seperti JET_coltypLongText dan JET_coltypLongBinary.

JET_bitColumnTagged

Kolom ditandai. Kolom yang diberi tag tidak mengambil ruang apa pun dalam database jika tidak berisi data. Bit ini tidak dapat digunakan dengan JET_bitColumnFixed.

JET_bitColumnNotNULL

Kolom tidak boleh diatur ke nilai NULL.

JET_bitColumnAutoincrement

Kolom secara otomatis dinaikkan. Angka tersebut adalah angka yang meningkat, dan dijamin unik dalam tabel. Namun, jumlahnya mungkin tidak berkelanjutan. Misalnya, jika lima baris disisipkan ke dalam tabel, kolom autoincrement dapat berisi nilai { 1, 2, 6, 7, 8 }.

Windows 2000: Bit ini hanya dapat digunakan pada kolom jenis JET_coltypLong.

Windows Server 2003 dan yang lebih baru: Bit ini hanya dapat digunakan pada kolom jenis JET_coltypLong atau JET_coltypCurrency.

JET_bitColumnUpdatable

Bit ini hanya berlaku pada panggilan ke JetGetColumnInfo.

JET_bitColumnTTKey

Bit ini hanya valid pada panggilan ke JetOpenTempTable.

JET_bitColumnTTDescending

Bit ini hanya valid pada panggilan ke JetOpenTempTable.

JET_bitColumnMultiValued

Kolom dapat bernilai banyak. Kolom multinilai dapat memiliki nilai nol, satu, atau lebih yang terkait dengannya. Berbagai nilai dalam kolom multinilai diidentifikasi oleh anggota itagSequence dari berbagai struktur, misalnya, JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Kolom multinilai harus diberi tag kolom; artinya, kolom tersebut tidak dapat berupa kolom panjang tetap atau panjang variabel.

JET_bitColumnEscrowUpdate

Kolom adalah kolom pembaruan escrow. Kolom pembaruan escrow dapat diperbarui secara bersamaan oleh sesi yang berbeda dengan JetEscrowUpdate dan mempertahankan konsistensi transaksional.

  • Kolom pembaruan escrow hanya dapat dibuat saat tabel kosong.

  • Kolom pembaruan escrow harus berjenis JET_coltypLong.

  • Kolom pembaruan escrow harus memiliki nilai default (yaitu cbDefault harus positif).

  • JET_bitColumnEscrowUpdate tidak dapat digunakan bersama dengan konstanta berikut:

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

Kolom dibuat tanpa versi. Transaksi lain yang mencoba menambahkan kolom dengan nama yang sama akan gagal. Bit ini hanya berguna dengan JetAddColumn. Ini tidak dapat digunakan dalam transaksi.

JET_bitColumnMaybeNull

Disiapkan untuk penggunaan masa mendatang.

JET_bitColumnFinalize

Gunakan JET_bitColumnDeleteOnZero alih-alih JET_bitColumnFinalize. JET_bitColumnFinalize menentukan bahwa kolom dapat diselesaikan. Saat kolom yang dapat diselesaikan memiliki kolom pembaruan escrow yang mencapai nol, baris akan dihapus. Versi mendatang dapat memanggil fungsi panggilan balik sebagai gantinya. Untuk informasi selengkapnya, lihat JET_CALLBACK. Kolom yang dapat diselesaikan harus berupa kolom pembaruan escrow. JET_bitColumnFinalize tidak dapat digunakan dengan JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

Nilai default untuk kolom disediakan oleh fungsi panggilan balik, JET_CALLBACK. Kolom yang memiliki default yang ditentukan pengguna harus berupa kolom yang diberi tag. pvDefault harus menunjuk ke struktur JET_USERDEFINEDDEFAULT , dan cbDefault harus diatur ke sizeof(JET_USERDEFINEDDEFAULT).

JET_bitColumnUserDefinedDefault tidak dapat digunakan bersama dengan konstanta berikut:

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • JET_bitColumnMaybeNull

JET_bitColumnDeleteOnZero

Kolom adalah kolom pembaruan escrow, dan ketika mencapai nol, rekaman akan dihapus. Penggunaan umum untuk kolom yang dapat diselesaikan adalah menggunakannya sebagai bidang jumlah referensi, dan ketika bidang mencapai nol rekaman akan dihapus. JET_bitColumnDeleteOnZero terkait dengan JET_bitColumnFinalize. Kolom delete-on-zero harus berupa kolom pembaruan escrow. JET_bitColumnDeleteOnZero tidak dapat digunakan dengan JET_bitColumnFinalize. JET_bitColumnDeleteOnZero tidak dapat digunakan dengan kolom default yang ditentukan pengguna.

pvDefault

Menunjuk ke buffer yang akan menjadi nilai default untuk kolom. Panjang buffer adalah cbDefault. Jika tidak ada default, pvDefault harus diatur ke NULL dan cbDefault harus diatur ke nol. Jika grbit memiliki set JET_bitColumnUserDefinedDefault, pvDefault akan ditafsirkan sebagai penunjuk ke struktur JET_USERDEFINEDDEFAULT. Nilai default tidak boleh lebih besar dari 255 byte. Jika nilai default lebih besar dari 255 byte, nilai tersebut akan didiamkan.

cbDefault

Ukuran, dalam byte, dari buffer yang ditentukan oleh pvDefault.

Cp

Halaman kode untuk kolom. Satu-satunya nilai yang valid untuk kolom teks adalah Bahasa Inggris (1252) dan Unicode (1200). Nilai nol berarti default akan digunakan (Inggris, 1252). Jika kolom bukan kolom teks, halaman kode secara otomatis diatur ke nol.

columnid

Jika berhasil, pengidentifikasi kolom kolom yang baru dibuat akan diteruskan kembali di bidang ini. Jika gagal, nilainya tidak ditentukan.

Err

Bidang err akan berisi status pembuatan kolom ini. Lihat JetAddColumn untuk daftar nilai yang kemungkinan dikembalikan.

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.

Unicode

Diimplementasikan sebagai JET_COLUMNCREATE_W (Unicode) dan JET_COLUMNCREATE_A (ANSI).

Lihat juga

JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns