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.