Koleksi Skema Umum

Koleksi skema umum adalah koleksi skema yang diterapkan oleh masing-masing penyedia terkelola .NET Framework. Anda bisa meminta penyedia terkelola .NET Framework untuk menentukan daftar kumpulan skema yang didukung dengan memanggil metode GetSchema tanpa argumen, atau dengan nama kumpulan skema "MetaDataCollections". Cara ini akan mengembalikan DataTable dengan daftar koleksi skema yang didukung, jumlah pembatasan yang saling didukung, serta jumlah bagian pengidentifikasi yang digunakan. Koleksi ini menjelaskan seluruh kolom yang diperlukan. Penyedia bebas menambahkan kolom tambahan jika mereka mau. Misalnya, SqlClient dan OracleClient menambahkan ParameterName ke koleksi pembatasan.

Jika penyedia tidak bisa menentukan nilai kolom yang diperlukan, penyedia akan mengembalikan null.

Untuk informasi selengkapnya tentang menggunakan metode GetSchema, lihat GetSchema dan Koleksi Skema.

MetaDataCollections

Koleksi skema ini memaparkan informasi mengenai semua koleksi skema yang didukung oleh penyedia terkelola .NET Framework yang saat ini digunakan untuk menyambungkan ke database.

ColumnName DataType Deskripsi
CollectionName string Nama koleksi yang akan diteruskan ke metode GetSchema untuk mengembalikan koleksi.
NumberOfRestrictions int Jumlah batasan yang mungkin ditentukan untuk koleksi tersebut.
NumberOfIdentifierParts int Jumlah bagian pada nama objek pengenal/database komposit. Misalnya, pada SQL Server, ini akan menjadi 3 untuk tabel dan 4 untuk kolom. Pada Oracle, jumlahnya menjadi 2 untuk tabel dan 3 untuk kolom.

DataSourceInformation

Kumpulan skema ini memaparkan informasi mengenai sumber data tempat penyedia terkelola .NET Framework saat ini terhubung.

ColumnName DataType Deskripsi
CompositeIdentifierSeparatorPattern string Ekspresi reguler agar sesuai dengan pemisah komposit pada pengenal komposit. Contohnya, "\." (untuk SQL Server) atau "@|\." (untuk Oracle).

Pengidentifikasi komposit biasanya dipakai untuk nama objek database, misalnya: pubs.dbo.authors atau pubs@dbo.authors.

Untuk SQL Server, gunakanlah ekspresi reguler "\.". Untuk OracleClient, gunakanlah "@|\.".

Untuk ODBC, gunakan Catalog_name_separator.

Untuk OLE DB, gunakan DBLITERAL_CATALOG_SEPARATOR atau DBLITERAL_SCHEMA_SEPARATOR.
DataSourceProductName string Nama produk yang diakses oleh penyedia, seperti "Oracle" atau "SQLServer".
DataSourceProductVersion string Menunjukkan versi produk yang diakses oleh penyedia, pada format asli sumber data dan bukan dalam format Microsoft.

Pada beberapa kasus DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. Pada kasus OLE DB dan ODBC, ini akan selalu sama dengan yang dipetakan ke panggilan fungsi yang sama di API asli yang mendasarinya.
DataSourceProductVersionNormalized string Versi yang dinormalisasi untuk sumber data, sehingga bisa dibandingkan dengan String.Compare(). Format ini sifatnya konsisten untuk semua versi penyedia untuk mencegah versi 10 dari penyortiran antara versi 1 dan versi 2.

Contohnya, penyedia Oracle menggunakan format "nn.nn.nn.nn.nn", untuk versi yang dinormalisasi, yang menyebabkan sumber data Oracle 8i mengembalikan "08.01.07.04.01". SQL Server menggunakan format "nn.nn.nnnn" Microsoft yang khas.

Pada beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. Pada kasus OLE DB dan ODBC ini akan selalu sama dengan yang dipetakan ke panggilan fungsi yang sama di API asli yang mendasar.
GroupByBehavior GroupByBehavior Menentukan hubungan antara kolom di dalam klausa GROUP BY dan kolom non-agregat dalam daftar pilih.
IdentifierPattern string Ekspresi reguler yang cocok dengan pengidentifikasi serta memiliki nilai kecocokan pengenal. Contohnya "[A-Za-z0-9_#$]".
IdentifierCase IdentifierCase Menunjukkan apakah pengidentifikasi yang tidak dikutip dianggap sebagai peka huruf besar/kecil atau tidak.
OrderByColumnsInSelect bool Menentukan apakah kolom dalam klausa ORDER BY harus ada di dalam daftar pilih. Nilai true menunjukkan bahwa nilai tersebut harus berada di daftar pemilihan, nilai false menunjukkan bahwa nilai tersebut tidak diharuskan berada dalam daftar pemilihan.
ParameterMarkerFormat string String format yang mewakili cara memformat parameter.

Jika parameter bernama didukung oleh sumber data, tempat penampung pertama dalam string ini harus ada di tempat di mana nama parameter diformat.

Misalnya, jika sumber data mengharapkan parameter diberi nama dan diawali dengan ':' hasilnya menjadi ":{0}". Saat memformat ini dengan nama parameter "p1", string yang dihasilkan adalah ":p 1".

Jika sumber data mengharapkan parameter diawali dengan '@', tetapi nama-nama sudah menyertakannya, ini akan menjadi '{0}', dan hasil pemformatan parameter bernama "@p1" hanya akan "@p1".

Untuk sumber data yang tidak menginginkan parameter bernama dan menginginkan penggunaan karakter '?', string format bisa ditentukan hanya sebagai '?', yang akan mengabaikan nama parameter. Untuk OLE DB, kami mengembalikan '?'.
ParameterMarkerPattern string Ekspresi reguler yang cocok dengan penanda parameter. Ini akan memiliki nilai kecocokan nama parameter, jika ada.

Misalnya, jika parameter bernama didukung dengan karakter prospek '@' yang akan disertakan dalam nama parameter, hasilnya adalah: "(@[A-Za-z0-9_$#]*)".

Namun, jika parameter bernama didukung dengan ':' sebagai karakter prospek dan bukan bagian dari nama parameter, hasilnya adalah: ":([A-Za-z0-9_$#]*)".

Tentu saja, jika sumber data tidak mendukung parameter bernama, hasilnya hanya akan menjadi "?".
ParameterNameMaxLength int Panjang karakter maksimum nama parameter. Visual Studio mengharapkan bahwa jika nama parameter didukung, nilai minimum untuk panjang maksimumnya adalah 30 karakter.

Jika sumber data tidak mendukung parameter bernama, properti ini akan kembali ke nol.
ParameterNamePattern string Ekspresi reguler yang cocok dengan nama parameter yang valid. Sumber data yang berbeda mempunyai aturan yang berbeda pula mengenai karakter yang dapat digunakan untuk nama parameter.

Visual Studio mengharapkan bahwa jika nama parameter didukung, maka karakter "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}" adalah kumpulan karakter minimum yang didukung yang valid untuk nama parameter.
QuotedIdentifierPattern string Ekspresi reguler yang cocok dengan pengidentifikasi yang dikutip dan memiliki nilai kecocokan dari pengidentifikasi itu sendiri tanpa tanda kutip. Misalnya, jika sumber data memakai tanda kutip ganda untuk mengidentifikasi pengidentifikasi yang dikutip, ini adalah: "(([^\"]|\"\")*)".
QuotedIdentifierCase IdentifierCase Menunjukkan apakah pengidentifikasi yang dikutip dianggap sebagai peka huruf besar/kecil atau tidak.
StatementSeparatorPattern string Ekspresi reguler yang cocok dengan pemisah pernyataan.
StringLiteralPattern string Ekspresi reguler yang cocok dengan string literal serta memiliki nilai kecocokan dari literal itu sendiri. Contohnya, jika sumber data menggunakan tanda kutip tunggal untuk mengidentifikasi string, ini adalah: "('([^']|'') *')"'
SupportedJoinOperators SupportedJoinOperators Menentukan jenis pernyataan gabungan SQL apa yang didukung oleh sumber data.

DataTypes

Kumpulan skema ini memaparkan informasi mengenai jenis data yang didukung oleh database yang saat ini tersambung dengan penyedia terkelola .NET Framework.

ColumnName DataType Deskripsi
TypeName string Nama tipe data khusus penyedia.
ProviderDbType int Nilai tipe khusus penyedia yang harus digunakan ketika menentukan jenis parameter. Contohnya, SqlDbType.Money atau OracleType.Blob.
ColumnSize long Panjang kolom atau parameter non-numerik mengacu pada maksimum atau panjang yang telah ditentukan untuk jenis ini oleh penyedia.

Untuk data karakter, ini adalah panjang maksimum atau yang ditentukan dalam satuan, yang ditentukan oleh sumber data. Oracle mempunyai konsep menentukan panjang dan kemudian menentukan ukuran penyimpanan aktual untuk beberapa jenis data karakter. Ini hanya menentukan panjang dalam satuan untuk Oracle.

Untuk jenis data tanggal-waktu, ini adalah panjang representasi string (dengan asumsi presisi maksimum yang diizinkan dari komponen detik pecahan).

Jika tipe datanya numerik, ini adalah batas atas pada presisi maksimum tipe data.
CreateFormat string Memformat string yang mewakili cara menambahkan kolom ini ke dalam pernyataan definisi data, seperti CREATE TABLE. Setiap elemen pada array CreateParameter harus diwakili oleh "penanda parameter" dalam string format.

Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, string formatnya adalah "DECIMAL({0},{1})".
CreateParameters string Parameter pembuatan yang harus ditentukan ketika membuat kolom tipe data ini. Setiap parameter pembuatan tercantum di dalam string, dipisahkan oleh koma dalam urutan yang akan disediakan.

Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, parameter pembuatan harus berisi string "presisi, skala".

Dalam perintah teks untuk membuat kolom DESIMAL dengan presisi 10 dan skala 2, nilai kolom CreateFormat dapat berupa DESIMAL({0},{1})" dan spesifikasi jenis lengkapnya adalah DESIMAL(10,2).
DataType string Nama tipe data .NET Framework.
IsAutoincrementable bool true—Nilai tipe data ini mungkin bertambah secara otomatis.

false—Nilai tipe data ini mungkin tidak bertambah secara otomatis.

Harap diingat bahwa ini hanya menunjukkan apakah kolom tipe data ini dapat bertambah secara otomatis, bukan berarti semua kolom jenis ini bertambah secara otomatis.
IsBestMatch bool true—Jenis datanya adalah kecocokan terbaik antara semua jenis data di penyimpanan data dan jenis data .NET Framework yang ditunjukkan oleh nilai di kolom DataType.

false—Jenis datanya bukanlah yang paling cocok.

Untuk setiap set baris yang memiliki nilai kolom DataType yang sama, kolom IsBestMatch diatur ke true hanya dalam satu baris.
IsCaseSensitive bool true—Jenis datanya adalah jenis karakter dan peka huruf besar/kecil.

false—Jenis datnyaa bukan jenis karakter atau tidak peka huruf besar/kecil.
IsFixedLength bool true—Kolom jenis data yang dibuat oleh bahasa definisi data (data definition language/DDL) akan memiliki panjang tetap.

false—Kolom jenis data yang dibuat oleh DDL akan memiliki panjang variabel.

DBNull.Value—Tidak diketahui apakah penyedia akan memetakan bidang ini menggunakan kolom panjang tetap atau panjang variabel.
IsFixedPrecisionScale bool true—Jenis datanya memiliki presisi dan skala tetap.

false—Jenis datanya tidak memiliki presisi dan skala tetap.
IsLong bool true—Jenis datanya berisi data yang sangat panjang; definisi dari data yang sangat panjang adalah khusus penyedia.

false—Jenis datanya tidak berisi data yang sangat panjang.
IsNullable bool true—Jenis data bisa diubah ke null.

false—Jenis data tidak dapat diubah ke null.

DBNull.Value—Tidak diketahui apakah jenis data bisa diubah ke null.
IsSearchable bool true—Jenis data bisa digunakan dalam klausa WHERE dengan operator apa pun kecuali predikat LIKE.

true—Jenis data tidak bisa digunakan dalam klausa WHERE dengan operator apa pun kecuali predikat LIKE.
IsSearchableWithLike bool true—Jenis data bisa digunakan dengan predikat LIKE

true—Jenis data tidak bisa digunakan dengan predikat LIKE.
IsUnsigned bool true—Tipe data tidak ditandatangani.

false—Tipe data ditandatangani.

DBNull.Value—Tidak berlaku untuk jenis data.
MaximumScale pendek Jika indikator jenis adalah tipe numerik, ini adalah jumlah maksimum digit yang diperbolehkan di sebelah kanan titik desimal. Jika tidak, ini adalah DBNull.Value.
MinimumScale pendek Jika indikator jenis adalah jenis numerik, ini adalah jumlah minimum digit yang diperbolehkan di sebelah kanan titik desimal. Jika tidak, ini adalah DBNull.Value.
IsConcurrencyType bool true – jenis data diperbarui oleh database setiap kali baris diubah dan nilai kolom berbeda dari seluruh nilai sebelumnya

false – jenis datanya adalah catatan yang diperbarui oleh database setiap kali baris diubah

DBNull.Value – database tidak mendukung jenis data ini
IsLiteralSupported bool true – jenis data bisa dinyatakan sebagai literal

false – jenis data tidak dapat dinyatakan sebagai harfiah
LiteralPrefix string Awalan diterapkan ke literal tertentu.
LiteralSuffix string Akhiran diterapkan pada literal tertentu.
NativeDataType String NativeDataType adalah kolom khusus OLE DB guna mengekspos jenis OLE DB dari tipe data .

Batasan

Kumpulan skema ini mengekspos informasi mengenai pembatasan yang didukung oleh penyedia terkelola .NET Framework yang saat ini digunakan untuk terhubung ke database.

ColumnName DataType Deskripsi
CollectionName string Nama koleksi yang diterapkan pembatasan ini.
RestrictionName string Nama pembatasan dalam koleksi ini.
RestrictionDefault string Diabaikan.
RestrictionNumber int Lokasi sebenarnya pada batasan koleksi tempat pembatasan khusus ini jatuh.

ReservedWords

Kumpulan skema ini memaparkan informasi tentang kata-kata yang dicadangkan oleh database yang terhubung dengan .NET Framework penyedia terkelola.

ColumnName DataType Deskripsi
ReservedWord string Kata khusus penyedia khusus.

Lihat juga