|
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)
|