Format Definisi Kolom
MsiViewGetColumnInfo dan Properti ColumnInfo dari objek Tampilan menggunakan format berikut untuk menjelaskan definisi kolom database. Setiap kolom dijelaskan oleh string di bidang rekaman terkait yang dikembalikan oleh fungsi atau properti. String definisi terdiri dari satu huruf yang mewakili jenis data diikuti dengan lebar kolom (dalam karakter jika berlaku, byte sebaliknya). Lebar nol menunjuk lebar tidak terbatas (misalnya, bidang teks panjang dan aliran). Huruf besar menunjukkan bahwa nilai null diperbolehkan dalam kolom.
Deskriptor kolom | String definisi |
---|---|
S? | String, panjang variabel (?=1-255) |
s0 | String, panjang variabel |
i2 | Bilangan bulat pendek |
i4 | Bilangan bulat panjang |
v0 | Aliran Biner |
G? | String sementara (?=0-255) |
J? | Bilangan bulat sementara (?=0,1,2,4) |
O0 | Objek sementara |
String yang digunakan untuk menjelaskan kolom memiliki hubungan berikut dengan string kueri SQL yang digunakan oleh CREATE dan ALTER. Untuk informasi selengkapnya, lihat Sintaks SQL.
Nilai yang dikembalikan | Sintaks SQL |
---|---|
s0 | LONGCHAR |
l0 | LONGCHAR DAPAT DILOKALKAN |
S # | CHAR(#) |
S # | CHARACTER(#) |
L # | CHAR(#) DAPAT DILOKALKAN |
L # | CHARACTER(#) DAPAT DILOKALKAN |
i2 | PENDEK |
i2 | INT |
i2 | INTEGER |
i4 | PANJANG |
v0 | OBJECT |
Jika huruf tidak dikapitalisasi, pernyataan SQL harus ditambahkan dengan NOT NULL.
Nilai yang dikembalikan | Sintaks SQL |
---|---|
s0 | LONGCHAR NOT NULL |
Alat penginstal tidak membatasi panjang kolom secara internal ke nilai yang ditentukan oleh format definisi kolom. Jika data yang dimasukkan ke dalam bidang melebihi panjang kolom yang ditentukan, paket gagal melewati validasi paket. Untuk lulus validasi dalam kasus ini, data atau skema database harus diubah. Satu-satunya cara untuk mengubah panjang kolom tabel standar adalah dengan mengekspor tabel menggunakan MsiDatabaseExport, mengedit file .idt yang diekspor, lalu mengimpor tabel menggunakan MsiDatabaseImport. Penulis tidak dapat mengubah tipe data kolom, kemampuan null, atau atribut pelokalan kolom apa pun dalam tabel standar. Penulis dapat membuat tabel kustom dengan kolom yang memiliki atribut kolom apa pun.
Saat menggunakan MsiDatabaseMerge untuk menggabungkan database referensi ke dalam database target, nama kolom, jumlah kunci primer, dan jenis data kolom harus cocok. MsiDatabaseMerge mengabaikan atribut pelokalan dan panjang kolom. Jika kolom dalam database referensi memiliki panjang 0 atau lebih besar dari panjang kolom tersebut dalam database target, MsiDatabaseMerge meningkatkan panjang kolom dalam database target ke panjang dalam database referensi.
Saat menggunakan Mergmod.dll versi 2.0, aplikasi modul penggabungan ke file .msi tidak pernah mengubah panjang kolom atau jenis kolom tabel database yang ada. Namun, aplikasi modul penggabungan dapat mengubah skema tabel database yang ada jika modul menambahkan kolom baru ke tabel yang valid untuk menambahkan kolom. Saat menggunakan versi Mergemod.dll kurang dari versi 2.0, aplikasi modul penggabungan tidak pernah mengubah panjang kolom dan tidak pernah mengubah skema database target.