Pengantar SQL-DMO
Microsoft SQL Server saat ini merupakan sistem manajemen basis data yang populer. Dengan peningkatan berkelanjutan dan pengembangan SQL Server dan kombinasi sempurna dengan sistem operasi Windows Series Microsoft sendiri, ini memberikan kinerja yang lebih baik dan kemudahan penggunaan pada platform Windows, sehingga semakin dihargai. Nama lengkap SQL-DMO adalah objek manajemen terdistribusi SQL. Ini adalah koleksi yang berisi satu set com dengan antarmuka ganda. Melalui SQL-DMO kami dapat mengontrol mesin database dan manajemen replikasi yang mengoperasikan SQL Server. Karena SQL-DMO adalah satu set COM, dapat digunakan oleh alat pengembangan apa pun yang dapat menggunakan COM, termasuk VB, Delphi, VC, BCB, ASP, dll., Hampir semua alat pengembangan di bawah platform Windows.
Penggunaan SQL-DMO
Mengapa kita perlu menggunakan SQL-DMO untuk mengelola database? Apakah tidak cukup bagi kita untuk mengelola database menggunakan Enterprise Manager dan T-SQL skrip? SQL-DMO dapat melakukan kegiatan manajemen basis data yang fleksibel, dapat disesuaikan, dan efisien. Karena SQL-DMO menyediakan antarmuka manajemen untuk SQL Server, melalui pemrograman, Anda dapat menyesuaikan aktivitas manajemen sesuai dengan kebutuhan Anda. Misalnya, jika kami mengelola organisasi besar dengan banyak contoh SQL Server. Sekarang Anda perlu menambahkan pengguna ke semua instance SQL Server di organisasi Anda Anda menggunakan pemrograman SQL-DMO untuk mengimplementasikan panggilan, dapat diselesaikan dengan mudah dan efisien dengan satu siklus. Menurut pendapat penulis, yang lebih penting adalah bahwa MSDE dapat dikelola menggunakan SQL-DMO. MS SQL Server mahal, sedangkan MSDE gratis. Dalam beberapa aplikasi kecil dan menengah, MSDE sudah cukup. Namun, karena MSDE hanya menyediakan mesin basis data tetapi tidak menyediakan antarmuka manajemen visual, tidak mungkin untuk mengelola database di MSDE secara teratur, yang membatasi ruang lingkup aplikasi MSDE. Pada saat ini, jika kami menggunakan SQL-DMO, kami dapat menyediakan antarmuka manajemen basis data kami sendiri, sehingga kami dapat melakukan manajemen reguler database tertentu di MSDE. Jika waktu dan biaya tidak dipertimbangkan, Anda dapat membuat antarmuka manajemen yang mirip dengan perusahaan manajer perusahaan. Faktanya, sebagian besar fungsi Enterprise Manager juga diimplementasikan dengan menggunakan SQL-DMO. (SQL-NS digunakan (SQL-namespace, yang juga merupakan koleksi objek COM, menyediakan akses ke ruang nama objek di SQL Server), tetapi SQL-NS sendiri juga dibangun di atas SQL-DMO)
Host dan komposisi SQL-DMO
Host SQL-DMO adalah sqldmo.dll, terletak di bawah file x:/program/Microsoft SQL Server/80/Tools/Binn. Selain itu, ini juga memerlukan file -file berikut: l
sqldmo.dll ( pustaka tipe utama) l
sqldmo.rll ( file sumber daya bahasa) l
sqlsvc.dll ( jenis pustaka untuk manajemen basis data) l
sqlsvc.rll ( file sumber daya bahasa) l
sqlunirl) .Dll ( lapisan pengalihan unicode) l
sqlrsld.dll ( untuk pemuatan sumber daya) l
odbc ( termasuk odbc32.dll, sqlsrv32.dll, odbcbcp.dll , dll.) Berikut adalah penjelasan dari struktur panggilan (Gambar 1):
| Aplikasi kami membuat objek menggunakan SQL-DMO di sini |
Gambar 1 Struktur Panggilan SQL-DMO
Pohon objek SQL-DMO
Mari pertama-tama lihat pohon objek besar dan kompleks SQL-DMO (lihat Gambar 3): Objek SQLServer adalah tulang punggung pohon objek ini, dan ada tiga cabang utama di bawah tulang punggung ini: L cabang basis data, dan serangkaian implementasi objek ini Di bawah Tugas Arsitektur dan Pemeliharaan Basis Data di SQLServer. l Jobserver Branch, serangkaian objek di bawah TI mengimplementasikan layanan SQL Server Agent (Agent). l Cabang replikasi, serangkaian objek di bawahnya mengimplementasikan layanan replikasi SQL Server. Ada juga hal -hal yang perlu dicatat: l Pohon objek tidak mencantumkan objek aplikasi, tetapi ini sebenarnya adalah objek yang relatif penting. Objek SQL-DMO apa pun memiliki properti yang menunjuk ke objek aplikasi. Objek aplikasi mewakili aplikasi global, yang berisi dua objek koleksi: server dan kelompok server. Seperti yang ditunjukkan pada Gambar 2: Gambar 2 Objek Aplikasi L Pohon objek hanya mewakili struktur SQL-DMO dan tidak mencantumkan semua objek, seperti objek namelist, objek servergroup, dll. Pohon objek SQL-DMO memiliki struktur yang kompleks dan banyak objek. Gambar 3 pohon objek SQL-DMO
Implementasi SQL-DMO Delphi
Berikut ini adalah deskripsi komponen TDBCTRL untuk enkapsulasi SQL-DMO yang diimplementasikan oleh penulis menggunakan Delphi. Karena saya membutuhkan mesin basis data gratis dalam proyek tertentu, saya akhirnya memilih MSDE, tetapi MSDE tidak memiliki antarmuka manajemen, itu hanya mesin. Oleh karena itu, ada kebutuhan untuk menyediakan antarmuka manajemen yang sederhana dan jelas untuk MSDE. Kami tidak perlu menyediakan fungsi manajemen sebanyak mungkin sebagai manajer perusahaan, kami hanya perlu menyediakan fungsi yang paling umum digunakan. Mempertimbangkan kemudahan penggunaan dan skalabilitas, diputuskan untuk menyediakannya dalam bentuk komponen. Komponen yang diimplementasikan menyediakan lapisan kemasan untuk SQL-DMO, merangkum beberapa fungsi yang umum digunakan, dan menyederhanakan penggunaan. Perhatikan bahwa menyusun komponen ini memerlukan pengenalan pustaka tipe SQL-DMO dan menghasilkan kode deskripsi yang sesuai. Kode ini berisi banyak penggunaan reguler Delphi dan notasi idiomatik dari objek COM. Saya tidak akan membahas bagaimana Delphi menggunakan com di sini, pembaca dapat merujuk ke buku terkait. Komponen ini berisi properti berikut: Host Properti: String Baca fhost Write fhost; // Nama host, yaitu, nama instance SQL Server yang akan dihubungkan kata sandi Properti: String Baca FPWD Tulis FPWD; Ogin: string baca flogin flogin; // nama pengguna yang digunakan untuk koneksi properti loginsecure: boolean baca floginsecure menulis floginsecure; Anggota data pribadi: SQLServer untuk disimpan. Jenisnya adalah _sqlservr. Konstruktornya adalah untuk terhubung untuk membuat objek SQLServer. Destructor juga hanya untuk menyelesaikan penghancuran objek SQLServer. Konstruktor TDBCTRL.Create (AOWNER: TCOMPONT); Setelah itu, Delphi akan menyelesaikan penghancuran objek COM di belakang layar. diwarisi; end; jika kita ingin mengelola dan mengoperasikan instance SQL Server tertentu, pertama -tama kita harus terhubung ke instance ini. Fungsi ConnectToServer berikut ini mengimplementasikan fungsi cara terhubung ke instance SQL Server. Fungsi tdbctrl.connectToServer: boolean; Hasil: Kecuali EoleException Mulai dari Showmessage (E.Message); tergantung pada izin pengguna yang masuk). Beberapa metode yang tercantum di bawah ini menunjukkan beberapa fitur. Metode Gettablelist memperoleh semua nama tabel dari database dan mengembalikannya dalam daftar tString. Fungsi tdbctrl.gettableList (dbname: string; var tablelist: tstringlist): boolean; var nowdb: _database; .Databases.item (dbName, sqlserver); // Dapatkan objek basis data berdasarkan nama basis data untuk i: = 1 ke nowdb.tables.count Mulai sekarang dapat digunakan: = nowdb.tables.item (i, 0); D (nowtable .name); Semua tampilan dalam database (tampilan), semua bidang tabel atau tampilan (kolom), semua grup file data dari database, dan file data (FileGroups, DBFiles), dll. Ini dapat secara khusus dirujuk ke pohon struktur objek dari SQL-DMO. Penggunaan objek SQL-DMO dapat mengikuti langkah-langkah dasar berikut: Dapatkan objek atau objek pengumpulan melalui objek lapisan atas, dan kemudian gunakan objek atau dapatkan objek dalam objek pengumpulan sebelum digunakan. Secara umum, jika itu adalah objek pengumpulan, ada metode item, dan objek anggota koleksi dapat dikembalikan berdasarkan indeks atau nama. Perlu dicatat bahwa indeks dimulai pada 1 bukan 0. Semua metode di atas ditunjukkan cara mendapatkan informasi dari database. Metode ini menunjukkan cara mempertahankan database. Fungsi tdbctrl.backupdb (dbname, backupfile: string): boolean; // parameter yang dilewati adalah nama basis data yang akan dicadangkan dan nama file cadangan var dmoBack: _backup; Obyek Mulai // Perangkat Cadangan Coba DeleteFile (BackUpfile); = DBNAME+'BAK'; Di sini tidak akan mengembalikan nilainya, tidak ada cara, hanya dapat berpikir bahwa pengecualian ditambahkan karena ujung cadangan sudah ada; = DBNAME 'BAK'; nil; e nd; end; Selain itu, saya ingin memberikan contoh menjelaskan cara menggunakan objek aplikasi yang disebutkan di awal. Metode ini adalah untuk mendapatkan nama -nama semua instance SQL Server yang tersedia (yaitu, dapat dijangkau dan dapat dihubungkan). Fungsi tdbctrl.getServerList (var serverlist: tStringlist): boolean; var aplikasi: _application; ; Akhir objek; tentu saja, ada banyak metode untuk komponen TDBCTRL, tetapi implementasi kode serupa, seperti metode pemulihan yang sesuai dengan cadangan dan metode pemutusan yang sesuai dengan koneksi. . Pembaca dapat merujuk pada kode sampel dan buku online SQL Server untuk belajar dari satu contoh dan mengimplementasikan fungsi yang mereka inginkan. Jika Anda membutuhkan semua kode untuk komponen ini, Anda dapat memintanya.
Instruksi lainnya
Versi 2000 dari SQL-DMO sepenuhnya kompatibel dengan SQL Server7.0 dan SQL Server 2000. Namun, lebih dari 80 antarmuka baru disediakan untuk mendukung fitur baru SQL Server 2000. Antarmuka baru ini semuanya berakhir dengan "2", yang merupakan superset dari antarmuka tersebut di SQL Server 7.0 asli. Dengan kata lain, jika Anda ingin menggunakan fitur baru SQL Server 2000, Anda perlu menggunakan antarmuka dengan "2" di akhir.
bibliografi
l Microsoft MSDNL Microsoft SQL Server Online Bookl "Delphi Com Pemrograman Depth" (AS) Eric Harmon Machinery Industry Press