BilgiTeknoloji.net    
b i l g i   t e k n o l o j i   y a z ı l ı m

Ana Sayfa

Marjinal XML Access Pratik Uygulamalar Projeler Ekonometri Dilimiz Çetrefil İletişim
 

ADO ve Universal Data Access

Microsoft’un veritabanı kütüphanesi ADO ve beraberinde gelen bileşenler programcılar için eksiksiz bir paket oluşturuyor. Devamlı yenilenen ADO’nun bilgisayarınızda kurulu sürümlerini araştırmak için küçük Component Checker aracını kullanın. ADO ile çevrimdışı veri güncellemeleri sağlayın.

DirectX ile gelen DirectMusic Producer ile profesyonel müzik prodüksiyonu oluşturun. Microsoft Producer for PowerPoint ile internette görüntü yayınlayın.

  • MDAC Component Checker
  • ADO ile Çevrimdışı Çalışmak
  • DirectX ve DirectMusic Producer
  • Microsoft Producer for PowerPoint
  • Research.Microsoft.Com


ADO sadece veri alışverişi sağlamıyor. Yaygın kullanılan ADODB kütüphanesi dışında ADOR, ADOMD, ADOX, RDS, JRO gibi gelişmiş özellikler içeren diğer bileşenler, veritabanında hemen her türlü işlemi yapmayı sağlıyor.

Bu kadar çok kütüphanesi içeren ADO ise aslında, MDAC adlı bir paketin içinden çıkıyor. MDAC yani Microsoft Data Access Components içinde ADO ile birlikte veritabanı sürücüleri yer alıyor. Bilgisayarınıza MDAC’ı yüklemek için CD’de verdiğimiz mdac_typ.exe dosyasını çalıştırıp kurabilirsiniz.
 

Kitaplık

Tam Adı

Tanım

Sınıflar

ADODB

Microsoft ActiveX Data Objects

Temel veritabanı işlemlerini gerçekleştirir.

Command, Connection, Error, Errors, Fields, Fields, Parameter, Parameters, Properties, Property, Record, Recordset, Stream

ADOR

Microsoft ActiveX Data Objects Recordset

Recordset nesnelerini etkin bir şekilde kullanır.

Field, Fields, Properties, Property, Recordset

ADOX

Microsoft ADO Ext. 2.1 for DDL and Security

Veritabanlarını, tabloları, veri alanlarını, indeksleri yönetir.

Catalog, Column, Columns, Group, Groups, Index, Indexes, Key, Keys, Procedure, Procedures, Properties, Property, Table, Tables, User, Users, View, Views

ADOMD

Microsoft ActiveX Data Objects (Multi-dimensional)

Access ve Excel’deki PivotTable gibi çoklu dizilimli ve gruplandırılmış veri tabloları oluşturabilir.

Axes, Axis, Catalog, Cell, Cellset, CubeDef, CubeDefs, Dimension, Hierarchies, Hierarchy, Level, Levels, MD_Collection, Member, Members, Position, Positions

RDS

Microsoft Remote Data Services

Uzaktaki veritabanlarını etkin bir şekilde kullanır.

DataControl, DataSpace

JRO

Microsoft Jet and Replication Objects

Jet veritabanı dosyalarını düzenleyip onarma, sıkıştırma, şifreleme, replikasyonları yönetme gibi işlemleri yapar.

Filter, Filters, JetEngine, Replica

 

Windows 2000 ile birlikte ADO’nun 2.5 sürümü kurulu olarak geliyor. Bu yazının yazıldığı zamandaki son sürüm numarası 2.7 olan ADO, XML belgeleriyle çevrimdışı çalışmaktan tutun, SQL Server veya Indexing Service ile bağlantı kurmaya kadar birçok işi yapabiliyor.

Birçok kişi ADO’yu temel veritabanı işlemleri için kullanıyor. ADODB.Connection ve ADODB.Recordset adları size yabancı gelmeyecektir. Ama ADO bu ikisinden ibaret değil. Yukarıdaki tabloda listelenen 60 sınıf (class) ile veritabanınızda hemen her işlemi gerçekleştirebilirsiniz. Örneğin ADOX altındaki Tables sınıfı ile veritabanındaki tablolara ulaşabilirsiniz.

Aşağıdaki kod bir Access veritabanındaki tabloları gösterir.


Dim katalog As New ADOX.Catalog
Dim tablo As ADOX.Table

katalog.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\deneme.mdb"

For Each tablo In katalog.Tables
  MsgBox tablo.Name & " - " & tablo.Type
Next

Set katalog = Nothing


Bu kodun çalışabilmesi için Referanslar listesinde ADOX’e ait olan Microsoft ADO Ext. 2.7 for DDL and Security kütüphanesi seçilmeli. Eğer ASP ya da VBScript ile çalışıyorsanız baştaki iki satırı aşağıdaki şekilde değiştirmelisiniz.


Dim katalog
Set katalog = CreateObject("ADOX.Catalog")
Dim tablo


Universal Data Access (UDA) projesi altında geliştirilen ADO ve diğer bileşenler hakkında UDA’nın resmi sitesinde gerekli bilgileri bulabilirsiniz.


 

MDAC COMPONENT CHECKER

MDAC paketi çok çeşitli DLL kitaplıklarından oluşuyor. Kitaplıkların herbirine ait sınıflar ve diğer bilgiler Registry’ye kaydediliyor. Bir süre sonra bilgisayarda ADO’ya ait DLL’ler güncellenebilir ve kitaplıkların sürümleri değişebilir. Component Checker tüm kitaplıkları, sınıfları, registry kayıtlarını ayrıntılı bir şekilde listeleyebiliyor.



CD’mizdeki 500 kb.’lik cc.exe dosyasını çalıştırarak MDAC Component Checker’i kurabilirsiniz.


ADO İLE ÇEVRİMDIŞI ÇALIŞMAK

ADO veritabanı sistemleri ile bağlantı kurabilmesinin yanında dosyalarla da çalışabiliyor. Veriyi kendi dosya biçiminde kaydedebileceği gibi XML biçiminde de kaydedebiliyor ve bu dosyaları daha sonra okuyabiliyor. Veritabanından dosyaya kaydettikten sonra, yığın halinde yapılmış çevrimdışı değişiklikleri tek komutla geri işlemek mümkün.

Recordset nesnesi, ActiveConnection özelliği iptal edildiği andan itibaren çevrimdışı çalışmaya başlar. Bu esnada kayıt kümesinde hala değişiklik yapılabiliyordur. Fakat bunun için Recordset'in Open eyleminden önce CursorLocation özelliğinin adUseClient olarak atanması gerekir.


Dim conn As New ADODB.Connection
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chipdb;Data Source=127.0.0.1"

Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT * FROM Urunler WHERE GrupID=2", conn, adOpenStatic, adLockBatchOptimistic

Set rst.ActiveConnection = Nothing
conn.Close

Do While Not rst.EOF
rst("UrunAdi") = rst("UrunAdi") & " - degisti"
rst.MoveNext
Loop

rst.Save "c:\urunler.rst"


Yukarıdaki kodlarda Set rst.ActiveConnection= Nothing satırından sonra RecordSet, Connection'dan ayrılmış ve kendi başına çalışmaya devam etmektedir.

Herhangi bir şekilde kaydedilmiş Recordset dosyasını açıp yeniden işlemek kolaydır.


Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "c:\urunler.rst", Options:=adCmdFile
Do While Not rst.EOF
rst("UrunAdi") = "değişti"
rst.MoveNext
Loop

rst.AddNew
rst("UrunAdi")= "Yeni ürün"
rst.Update

rst.Save
rst.Close


Üstteki kod recordset dosyasını açıp değiştirdikten sonra dosyayı kaydediyor. Tabii siz bu değişikliklerin veritabanına geri gönderilmesini isteyebilirsiniz. Bunun için UpdateBatch metodu devreye giriyor.


Dim conn As New ADODB.Connection
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=chipdb;Data Source=127.0.0.1"

Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "c:\urunler.rst", Options:=adCmdFile

Set rst.ActiveConnection = conn
rst.UpdateBatch


Dosya açıldıktan sonra Recordset nesnesi veritabanına bağlanıyor ve UpdateBatch komutu ile dosyadaki bütün kayıt değişiklikleri veritabanına aktarılıyor. Değiştirme ile birlikte yeni kayıt ekleme ve kayıt silme işlemlerini de senkronize etmek mümkün. ADO hangi kayıtların değiştirildiğini, hangilerinin yeni eklendiğini ve hangilerinin silindiğini anlıyor. Dosyaya alındıktan sonra veritabanı üzerinde değişiklik yapılan kayıtlar senkronize edilemiyor ve UpdateBatch eyleminde hata mesajı üretiliyor. Değiştirilmemiş olanlar ise başarılı bir şekilde senkronize ediliyor.

Recordset nesnesi varolan veritabanından dosyaya kaydetmesi yanında kendisi de tamamen yeni bir tablo oluşturup bunu kullanabiliyor.


Dim rs As New ADODB.Recordset
rst.Fields.Append "ID", adInteger, , adFldKeyColumn
rst.Fields.Append "UrunAdi", adVarChar, 40
rst.Fields.Append "Stok", adVarChar, 40
rst.Fields.Append "Yeni", adBoolean

rst.Open LockType:=adLockBatchOptimistic
rst.AddNew
rst.Fields("ID").Value = 1
rst.Fields("UrunAdi").Value = "Ürün 1"
rst.Fields("Stok") = 20
rst.Fields("Yeni") = True
rst.Update

rst.Save "c:\deneme.xml", adPersistXML


Save yöntemi ile, kayıt kümesini XML dosyası olarak kaydetmek mümkün. Bunun için rst.Save'in ikinci parametresini adPersistXML olarak ayarlamak gerekiyordu.

Dosya XML olarak kaydedilirken eğer Recordset alanları yeniden oluşturulmuş ise XML Schema bilgisi de kaydediliyor. Örnek olarak kaydettiğimiz urunler.xml ve yeni.xml dosyalarını inceleyebilirsiniz.
 

DIRECTX VE DIRECTMUSIC PRODUCER

DirectMusic Producer, DirectX ile gelen DirectMusic kütüphanesini kullanan bir ürün. Belki DirectMusic'in yapabileceklerini göstermesi için üretilmiş olsa da bu program başlı başına bir müzik prodüksiyonu aracı.

Programı üç aşamalı kullanabilirsiniz. Midi klavyesinden çalıp kaydetmek ve program içinde motifler, segmentler oluşturup kendi müziğinizi oluşturmak. Üçüncü aşama ise CD'de verdiğimiz demo dosyasını incelemek.

DirectMusic Producer uzmanlara yönelik. Programı kullanmadan önce demo projesini açıp incelemenizi tavsiye ederiz. Müzik örneklerini dinlemek için SGP uzantılı dosyaları açıp çaldırın.

CD'de verdiğimiz programı çalıştırmadan önce Directx8.1'i kurmalısınız. Programı kurduktan sonra demo projesini de kurabilirsiniz.




DirectMusic Producer'in neler yapmadığını anlatmak, neler yaptığını anlatmaktan daha kolay. Zaten resimdeki ekran görüntüsü haklı bir şekilde, konusunda eksiksiz bir program olduğu izlenimi veriyor.


MICROSOFT PRODUCER

Bir başka prodüksiyon ürünü de Microsoft Producer. Bu program web üzerinde prezentasyon yayınlamak için gerçekten etkili ve kullanışlı. Sadece Powerpoint 2002 kurulu iken çalışabilen bu ürün ile değişik kalitede videolar üretip bunları kolayca Internet sayfalarına yerleştirmek mümkün.

Producer’in ilginç özellikleri var. Videoları, sesleri, resimleri, html belgelerini bir timeline üzerine yerleştirip sunumlar hazırlayabiliyorsunuz. Video’lar için fade in, fade out gibi efektler tanımlanabiliyor.

Sunum yayınlama özelliği ile eğitim seminerlerini, çevrimiçi sunumları istediğiniz kalitede web’e aktarabilirsiniz. Producer, Service Pack 1 yüklenmiş olan Windows 2000 ve üzeri işletim sistemlerine kuruluyor.

http://microsoft.com/office/powerpoint/producer/ adresinde MS Producer hakkında daha ayrıntılı bilgileri ve demoları bulabilirsiniz.




RESEARCH.MICROSOFT.COM

Microsoft’un yazılım projelerini geliştiren onlarca araştırma grubu var. Research.microsoft.com adresinde Microsoft'un araştırmaları ile ilgili bilgileri bulabilirsiniz. Henüz adı bile olmayan programlar hakkında buradan ipuçları elde etmek mümkün.



Current Research sayfasında, bu yazı yazıldığı sıralarda 400'den fazla araştırma grubu saydık. Grafik algoritmaları, vektörler, ses çözümleme, yüz tanıma, networking gibi konularda yüzlerce araştırma grubu mevcut. Bunların yanında adını henüz duymadığımız ama ileride karşımıza çıkma ihtimali yüksek Kidtalk, SML.NET, Mindnet, Jetstream, Bartok, Indy, Herald gibi projeler var. Her projenin kendi ana sayfasında bilgiler ve örnek uygulamalar olabiliyor.

Gruplar Çin, Cambridge, Redmond ve San Francisco'daki 4 ayrı kampüste yerleşik. Birçok projede üniversitelerle birlikte çalışılıyor. Proje üyelerinin kişisel sayfalarına da buradan ulaşılabiliyor.



Research.microsoft.com adresinden, Microsoft'un üniversitelere Windows 2000, Windows XP ve Windows CE için ücretsiz kaynak kod lisansı verdiğini de öğreniyoruz. Dünya çapınca 100'den fazla üniversiteye bu işletim sistemleri için kaynak kodu lisansı verilmiş.


Dosyalar:  
urunler.xml  
yeni.xml


Serkan ŞAHİNOĞLU
(Chip Dergisi, Nisan 2002)


http://BilgiTeknoloji.net