02-07-2007
|
#1 (permalink)
|
| Mendoza
Üyelik tarihi: Dec 2006 Nerden: Linux
Mesajlar: 474
Rep Gücü: 0 | SQLDMO DLL Kullanmak SQLDMO.DLL Kullanmak (Bölüm 1)Bu makalede, Microsoft .Net platformunda yazılım geliştiren her programcının adını belki de hergün duyduğu ve üzerinde çalıştığı MS SQL Server üzerindeki tüm nesneler ile çalışmamızı, onları yönetmemizi ve bu işlemleri kendi geliştirdiğimiz uygulamadan yapmamızı sağlayacak olan SQLDMO isimli COM componenti hakkında sizlere bilgi verilecektir. Eğer sizde dış nesnelere kendi uygulamanız üzerinden erişip onları yönetmek için çalışmalar yapıyorsanız bu makale ilginizi çekecektir ve belki de SQL Server için Enterprise Manager' ınızı yapabilirsiniz. Makale örnek bir uygulama ile anlatılacak ve resimlerle desteklenecektir. 1.Öncelikle bir Windows uygulaması projesi açınız. Referanslara SQLMO 8.0 isimli DLL ' i ekleyiniz.(SQL Server 2000 yüklü biligisayarlarda SQL Server Service Pack 4 yüklü olmalıdır.) Referansın eklenmesinden sonra Solution Explorer ' ın görüntüsü Resim 1 deki gibi olmalıdır. Resim 1 2. Form1 üzerine Resim 2 deki kontrolleri yerleştiriniz. Resim 2 3. Form1 içerisinde Public olarak kullanılmak üzere aşağıdaki değişken tanımlarını Load Event' i üzerinde gerçekleştiriniz. 4. Form1' in Load Event' i içine aşağıdaki kodu yazınız. (Resim 3) Resim 3 5. Projeyi çalıştırınız. Uygulama ağda bulunan SQL Sunucuları bulacak ve Combobox içine listeleyecektir. Burada SQL sunucular eklenmeden önce Seçiniz seçeneğinin de Combobox ' a eklendiğine dikkat ediniz. Bu seçenek daha sonra yapılacak olan işlemlerde kontrol amacıyla kullanılacaktır. Yukarıdaki kod sırası ile;- Önce cmbsunucular içine Seçiniz ' i ekler,
- Daha sonra oSqlApp objesinin ListavailableSqlServers metodundan geri dönen NameList 'in içerik sayısı kadar bir döngü başlatılır,
- Herbir sunucuyu (Namelist.Item(i) 'yi) combobox a ekler,
- Combobox ın 0. item 'ını seçili yapar.
6. SQL Sunucuların listelendiği Combobox ta seçili index değiştiğinde (SelectedIndexChanged) uygulama , seçili index eğer 0(sıfır) dan büyükse yani seçilen seçenek "Seçiniz" değilse Public olarak tanımlanması yapılan ancak bir instance (örnek) ' ı oluşturulmamış olan osqlsrv isimli değişken için bir instance oluşturulur ve adına da comboboxtan seçilen değer atanır, SQLlogin isimli Radiobutton seçili hale getirilir , ve btnServerconnect isimli buton aktif hale getirilir. Resim 4 7. Seçili SQL sunucuya bağlantı türünü yani SQL Auth ile veya Windows Authentication bilgileri bağlanılacağını Radiobutonlar kullanılarak seçebilirsiniz. Burada SQL Auth seçildiğinde uygulama kullanıcı ve şifre yazılması için Textbox' ları aktif hale getirir, Windows Auth seçildiğinde aktif Windows kullanıcısının bilgileri kullanılarak bağlantı sağlanacağından Textbox' ları pasif hale getirir. Bu ayarlama SQLDMO Server objesinin Loginsecure özelliği değiştirilerek sağlanır. Resim 5 8. btnServerconnect isimli butona tıklandığında uygulama Radiobutonları ile yapılan Login seçimine göre sunucuya bağlantı gerçekleştirir. Eğer bir sorun ile karşılaşılmazsa DatabaseListele isimli Sub yordamı çalıştırılır ve seçili sunucuya ait database isimleri combobox a doldurulur. Resim 6 Resim 7 9. Databaselerin listelendiği Combobox' ın seçili index i değiştiğinde (cmbDatabases.SelectedIndexChanged) seçili database ' e ait tablolar (sistem tabloları hariç) alttaki cmbTables isimli combobox a doldurulur. Bu işlem sırasında eklenen tablonun tipinin SQLDMO.SQLDMO_OBJECT_TYPE.SQLDMOObj_SystemTable olmaması sağlanır ve en son olarak yine Seçiniz seçeneği seçili olacak şekilde cmbTables.selectedindex=0 yapılır. Resim 8 10. Tabloların listelendiği Combobox ' ın seçili index i değiştiğinde (cmbTables.SelectedIndexChanged) uygulama seçili tablonun hangi tablo olduğunu bulur ve bunun Columns koleksiyonu için bir For Each d.ngüsü başlatır ve bu döngüde her ele aldığı objeyi clmn isimi tanımlanan SqlDmo.Column tipindeki objeye eşitler. Böylece tablonun döngü tarafından el alınan kolonu clmn objesi haline gelir ve artık bundan sonra bu objenin istenilen özelliğine ulaşılabilinir. Örnekte objenin yani kolonun bazı özellikleri ardarda eklenerek bir Msgbox aracılığı ile ekranda gösterilmektedir. Resim 9 SQLDMO Com DLL' ini incelediğimiz bu makalede özet olarak;- Ağda bulunan sql sunucuların listesi alındı,
- Seçtiğimiz sunucuya bir login sekli seçilerek bağlantı sağlandı,
- Seçili sunucuda bulunan databaseler alındı,
- Bir database seçildiğinde buna ait olan ve tipi sistem tablosu olmayan tablolar listelendi,
- Bir tablo seçildiğinde bu tabloya ait kolonların bazı özellikleri ekranda gösterildi.
SQLDMO sayesinde yapılabilecek olan işlemler tabiiki burada anlatılanlarla sınırlı değildir. Bu sınıf sayesinde SQL sunucu üzerinde daha birçok işlem gerçekleştirilebilmektedir. Bu işlemlere daha sonraki makalelerde devam edilecektir. Hepinize kolay gelsin..
__________________ sevince... |
| |