Bagikan melalui


Koleksi Skema Umum

Koleksi skema umum adalah koleksi skema yang diimplementasikan oleh masing-masing penyedia terkelola .NET Framework. Anda dapat mengkueri penyedia terkelola .NET Framework untuk menentukan daftar koleksi skema yang didukung dengan memanggil GetSchema metode tanpa argumen, atau dengan nama koleksi skema "MetaDataCollections". Ini akan mengembalikan DataTable dengan daftar koleksi skema yang didukung, jumlah batasan yang didukung masing-masing, dan jumlah bagian pengidentifikasi yang mereka gunakan. Koleksi ini menjelaskan semua kolom yang diperlukan. Penyedia bebas untuk menambahkan kolom tambahan jika mereka mau. Misalnya, SqlClient dan OracleClient tambahkan ParameterName ke koleksi pembatasan.

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

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

MetaDataCollections

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

ColumnName Datatype Deskripsi
Nama Koleksi string Nama koleksi yang akan diteruskan ke metode GetSchema untuk mengembalikan koleksi tersebut.
JumlahPembatasan int (integer) Jumlah pembatasan yang mungkin ditentukan untuk koleksi.
JumlahBagianPengenal int (integer) Jumlah bagian dalam nama objek pengidentifikasi/database komposit. Misalnya, di SQL Server, ini akan menjadi 3 untuk tabel dan 4 untuk kolom. Di Oracle, akan menjadi 2 untuk tabel dan 3 untuk kolom.

InformasiSumberData

Koleksi skema ini memaparkan informasi tentang sumber data yang saat ini disambungkan oleh penyedia terkelola .NET Framework.

ColumnName Datatype Deskripsi
Pola Pemisah Pengenal Gabungan string Ekspresi reguler untuk mencocokkan pemisah komposit dalam pengidentifikasi komposit. Misalnya, "\." (untuk SQL Server) atau "@|\." (untuk Oracle).

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

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

Untuk ODBC, gunakan Catalog_name_separator.

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

Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. Dalam kasus OLE DB dan ODBC, keduanya akan selalu sama karena dipetakan ke panggilan fungsi yang sama dalam API asli yang mendasarinya.
VersiProdukSumberDataTernormalisasi string Versi yang dinormalisasi untuk sumber data, sehingga dapat dibandingkan dengan String.Compare(). Format ini konsisten untuk semua versi penyedia untuk mencegah versi 10 mengurutkan antara versi 1 dan versi 2.

Misalnya, penyedia Oracle menggunakan format "nn.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.

Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama. Dalam kasus OLE DB dan ODBC, keduanya akan selalu sama karena dipetakan ke panggilan fungsi yang sama dalam API asli.
KelompokkanMenurutPerilaku GroupByBehavior Menentukan hubungan antara kolom dalam klausa GROUP BY dan kolom non-agregat dalam daftar pilih.
PolaPengenal string Ekspresi reguler yang cocok dengan pengidentifikasi dan memiliki nilai kecocokan pengidentifikasi. Misalnya "[A-Za-z0-9_#$]".
KasusPengenal IdentifierCase Menunjukkan apakah pengidentifikasi yang tidak dikutip diperlakukan sebagai peka terhadap huruf besar/kecil atau tidak.
UrutkanBerdasarkanKolomDalamPilih bool Menentukan apakah kolom dalam klausa ORDER BY harus berada dalam daftar seleksi. Nilai true menunjukkan bahwa nilai tersebut harus berada dalam daftar pemilihan, nilai false menunjukkan bahwa nilai tersebut tidak diharuskan berada dalam daftar pemilihan.
ParameterMarkerFormat string String format yang menunjukkan cara memformat parameter.

Jika parameter bernama didukung oleh sumber data, placeholder pertama dalam string ini harus menjadi lokasi tempat nama parameter diformat.

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

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

Untuk sumber data yang tidak mengharapkan parameter bernama dan mengharapkan penggunaan karakter '?', string format dapat ditentukan hanya '?', 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, ini akan menjadi: "(@[A-Za-z0-9_$#]*)".

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

Tentu saja, jika sumber data tidak mendukung parameter bernama, ini hanya akan menjadi "?".
PanjangMaksimumNamaParameter int (integer) Panjang maksimum nama parameter dalam karakter. Visual Studio mengharapkan bahwa jika nama parameter didukung, nilai minimum untuk panjang maksimum adalah 30 karakter.

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

Visual Studio mengharapkan bahwa jika nama parameter didukung, 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 pengidentifikasi itu sendiri tanpa tanda kutip. Misalnya, jika sumber data menggunakan tanda kutip ganda untuk mengidentifikasi pengidentifikasi yang dikutip, ini adalah: "(([^\"]|\"\")*)".
QuotedIdentifierCase IdentifierCase Menunjukkan apakah pengidentifikasi yang dikutip diperlakukan secara peka terhadap ukuran huruf atau tidak.
PolaPemishahanPernyataan string Ekspresi reguler yang cocok dengan pemisah pernyataan.
StringLiteralPattern string Ekspresi reguler yang sesuai dengan string literal dan memiliki nilai kecocokan berupa literal itu sendiri. Misalnya, jika sumber data menggunakan tanda kutip tunggal untuk mengidentifikasi string, ini adalah: "('([^']|'')*')"'
Operator Gabung yang Didukung SupportedJoinOperators Menentukan jenis pernyataan gabungan SQL apa yang didukung oleh sumber data.

Jenis Data

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

ColumnName Datatype Deskripsi
NamaJenis string Nama jenis data yang spesifik untuk penyedia.
JenisPenyediaDb int (integer) Nilai jenis khusus penyedia yang harus digunakan saat menentukan jenis parameter. Misalnya, SqlDbType.Money atau OracleType.Blob.
Ukuran Kolom panjang Panjang kolom atau parameter non-numerik mengacu pada maksimum atau panjang yang ditentukan untuk jenis ini oleh penyedia.

Untuk data karakter, ini adalah panjang maksimum atau yang ditentukan dalam unit, yang ditentukan oleh sumber data. Oracle memiliki konsep menentukan panjang lalu menentukan ukuran penyimpanan aktual untuk beberapa jenis data karakter. Ini hanya mendefinisikan panjang dalam unit untuk Oracle.

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

Jika jenis data numerik, ini adalah batas atas pada presisi maksimum jenis data.
BuatFormat string Format string yang menunjukkan cara menambahkan kolom ini ke pernyataan definisi data, seperti CREATE TABLE. Setiap elemen dalam array CreateParameter harus diwakili oleh "penanda parameter" dalam string format.

Misalnya, jenis data SQL DECIMAL membutuhkan presisi dan skala. Dalam hal ini, string format adalah "DECIMAL({0},{1})".
BuatParameter string Parameter pembuatan yang harus ditentukan saat membuat kolom jenis data ini. Setiap parameter pembuatan dicantumkan dalam string, terpisah oleh koma sesuai urutan penyediaannya.

Misalnya, jenis data SQL DECIMAL 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 mungkin DECIMAL({0},{1})" dan spesifikasi jenis lengkapnya adalah DECIMAL(10,2).
Datatype string Nama tipe .NET Framework dari tipe data.
DapatDitambahSecaraOtomatis bool true—Nilai jenis data ini mungkin bertambah secara otomatis.

false—Nilai jenis data ini mungkin tidak bertambah otomatis.

Perhatikan bahwa ini hanya menunjukkan apakah kolom jenis data ini mungkin bertahap otomatis, bukan berarti semua kolom jenis ini bertahap otomatis.
IsBestMatch bool true—Jenis data adalah kecocokan terbaik antara semua jenis data di penyimpanan data dan jenis data .NET Framework yang ditunjukkan oleh nilai di kolom DataType.

false—Jenis data bukan yang paling cocok.

Untuk setiap set baris di mana nilai kolom DataType sama, kolom IsBestMatch diatur ke true hanya dalam satu baris.
PekaHurufBesarKecil bool true—Jenis data adalah tipe karakter dan membedakan antara huruf besar dan kecil.

false—Jenis data bukan merupakan tipe karakter atau tidak bersifat peka terhadap huruf besar/kecil.
IsFixedLength bool true—Kolom tipe data yang dibuat oleh bahasa definisi data (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 dengan kolom panjang tetap atau panjang variabel.
SkalaPresisiTetap bool true—Jenis data memiliki presisi dan skala tetap.

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

false—Jenis data tidak berisi data yang sangat panjang.
DapatBernilaiNull bool benar—Jenis data dapat bernilai null.

false—Jenis data tidak dapat diubah ke null.

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

false—Jenis data tidak dapat digunakan dalam klausul WHERE dengan operator apa pun kecuali predikat LIKE.
DapatDicariDenganLike bool true—Jenis data dapat digunakan dengan predikat LIKE

false—Jenis data tidak dapat digunakan dengan predikat LIKE.
IsUnsigned bool true—Jenis data tidak ditandatangani.

false—Jenis data ditandatangani.

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

false – jenis data dicatat diperbarui oleh database setiap kali baris diubah

DBNull.Value – database tidak mendukung tipe data ini
IsLiteralSupported bool true – jenis data dapat diekspresikan sebagai harfiah

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

Pembatasan

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

ColumnName Datatype Deskripsi
Nama Koleksi string Nama koleksi tempat pembatasan ini berlaku.
Nama Pembatasan string Nama pembatasan dalam koleksi.
BatasanDefault string Diabaikan.
PembatasanJumlah int (integer) Lokasi spesifik dalam pembatasan koleksi tempat pembatasan tertentu ini berada.

ReservedWords

Koleksi skema ini memaparkan informasi tentang kata-kata yang dicadangkan oleh database yang digunakan oleh penyedia terkelola .NET Framework yang saat ini sedang terhubung ke database tersebut.

ColumnName Datatype Deskripsi
ReservedWord string Kata cadangan khusus penyedia.

Lihat juga