Ado(Activex Data Objects) Temelleri
Salı, 06 Kasım 2007ADO(ActiveX Data Objects) Temelleri
ADO, bir veri sağlayıcı(data provider) aracılığıyla yerel ya da uzak veritabanlarına erişmeyi sağlayan bir veri erişim yöntemidir. ADO hiyerarşik olamayan ve bağımsız olarak kullanılan nesneleriyle verilere kolayca ulaşmayı sağlar.
ADO’nun bellek gereksinimi azdır. Hızlı biçimde çalışarak veritabanı uygulamalarının daha etkin bir biçimde gerçekleÅŸtirilmesini saÄŸlar. DAO ve RDO veri eriÅŸim yöntemlerinin yerine geçen geliÅŸtirilmiÅŸ bir teknoloji olan ADO,daha kolay ve anlaşılabilir nesnelerle veritabanı iÅŸlemlerini sadeleÅŸtirir:
ADO, istemci/sunucu ve web tabanlı uygulamalar geliştirmek için birçok özelliğe sahiptir. ADO veri erişim mimarisinin özellikleri:
·İstemci/sunucu uygulama geliştirmeyi kolaylaştırır..
·Hiyerarşik olmayan nesne modeli.
·Bağımsız yaratılan nesneler.
·Küme halinde güncelleme.(toplu işlem).
DAO ve RDO,ODBC ve Jet”data provider”larını kullanırlar.ADO ise verileri OLE DB aracılığıyla saÄŸlar. DiÄŸer bir deÄŸiÅŸle ADO için “data provider” OLE DB dir.
OLE DB
OLE DB,iliÅŸkisel ve iliÅŸkisel olmayan veri kaynaklarına eriÅŸimde kullanılan hızlı arabirimdir. Data az bellek ve disk alanı harcar. OLE DB veri saÄŸlayıcısı ODBC’ye göre daha fazla veri tipine eriÅŸimi saÄŸlar. Bunlar elektoronik posta,dosya sistemi, text ve grafik gibi verilerdir.OLE DB bir providerdır. OLE DB aracılığıyla saÄŸlanan metot ve arabirimlere ulaÅŸan yazılımlarar ise Cosumer(alıcı) denir.
ADO’nun Visual Basic’te Kullanımı
ADO nesnelerini proje içinde kullanmadan önce onların projeye eklenmesi gerekir. Bu işlem için:
1.Project menüsünden Preferences komutu seçilir.
2.Microsoft ActiveX Data Object 2.0 Library seçilir.
3.OK düğmesine tıklanır.
ADO Nesneleri
ADO veri erişimi sistemi oldukça basit bir nesne modeline sahiptir. Bu modelde birçok nesne seçimli olarak ya da bağımsız olarak kullanılabilir.
ADO modelinde yer alan nesneler
Nesne Amacı
Command Bir veri kaynağı üzerinde bir query ya da deyimi işletir.
Connection Bir veri kaynağına doğrudan bağlantı yaratır.
Error Veri kaynağından bir hatayı döndürür.
Field Bir kayıt içindeki bir alan.
Parameter Bir komut için parametre tutar.
Recorset Bir komut tarafından üretilen(dönen) verileri içerir.
Connection Nesnesi
Connection nesnesi bir veri kaynağına bağlantı kurmak için kullanılır. Connection nesnesi sayesinde bir data provider aracılığıyla(OLE DB) bir komut işletilir. Bir command nesnesi yaratmaya gerek kalmaz. Connection nesnesi ile ConnectionString özelliği kullanılır. Bu özellik bağlanılacak veri kaynağını gösterir. Open metodu ise bağlantıyı açmak için kullanılır.
İşlemci/sunucu veritabanı sisteminde bu nesne sunucuya yapılan ağ bağlantısını oluşturu. Önceden tanımlanmış nesnelerden bağımsız olarak istendiği gibi yaratılabilir. Bağlantı nesnesinin temel özellikleri ve metodları şunlardır:
Connection nesnesi kullanıldığında birçok iÅŸlem özellikler aracılığıyla yapılır. Connection nesnesinin kullanılımınıda deÄŸiÅŸken olarak genellikle”cnn”kullanılır.
Connection nesnesinin ana özellikleri
Özellik Açıklama Varsayılan Aralık
CommandTimeout Bir komutun bekleme zamanı 30 0 – Max Ulong
ConnectionString Veri kaynağını belirtir. - String bilgisi
ConnectionTimeout Bağlantı için bekleme zamanı 15 >=1
CursorLocation Bir server –ya da client- taraflı Provider’e baÄŸlı. Enum
Cursor yaratır. Varsayım dUseServer
Errors Hataları tutar. N/A N/A
Mode Bağlantının erişim izinlerini adMode Enum
düzenler ya da döndürür. Unkonwn
ConnectionString ,ConnectionTimeout ve Mode özellikleriyle bağlantı kurulmadan temel özellikleri düzenler. Bağlantı kurulma süresi ,bağlantı kurulması için ne kadar süre bekleneceğini ve kurulamaması durumunda ne kadar süre sonra hata verileceğini belirtir. Bağlantının gerçekleştirilmesi ,ağ trafiği ya da sunucunun fazla kullanımı nedeniyle gecikebilir. Eğer bu özellik sıfır olarak ayarlanmışsa ,bağlantı kurulana kadar ADO bekler. Mode özelliği ise bağlantıdaki verinin işlenebilmesi için gerekli izinleri belirtmektedir.
DefaultDatabase (varsayılan veritabanı) özelliği ,bağlantı için önceden ayarlanan veritabanı ismini belirtmektedir.
Provider özelliği de bağlantının hangi provider üzerinden yapılacağını belirtir. OLE DB bir sağlayıcı olarak seçilebilir. Eğer hiçbir sağlayıcı belirtilmemişse, özelliğin değeri MSDAS SQL (Microsoft ODBC Provider for OLE DB-OLE DB için Microsoft ODBC Sağlayıcısı) olarak belirtilebilir.
Cursor Location Özelliği:
Data provider’e eriÅŸimi düzenleyerek verilere eriÅŸim biçimini deÄŸiÅŸtirir. Cursor istekte bulunan uygulamaya veriyi döndüren bir küçük yazılımdır. Cursor veri setinin konumunu izleyerek çok sayıda iÅŸlem aynı anda yapılmasını saÄŸlar.
Cursor Location deÄŸerleri
adUseClient Yerel cursor kütüphanesi tarafından sağlanır.
adUseServer Varsayım olarak kullanılır. Data Provider ya da veritabanı sürücüsü tarafından sağlanılan.
cursor’ı kullanır.
CursorLocation özelliğinin düzenlenmesi; düzenleme işleminden sonra olan bağlantıları etkiler.
CursorLocation özelliğinin değerleri:
adUseServer 2 Server-side ya da driver-supplied cursor’lar kullanılır.
adUseClient 3 client-side cursor’lar kullanılır.
EÄŸer CursorLocation bir Recordset için belirtilmiÅŸse aktif connection’ın özelliÄŸini yeniler. Bu sayede bir baÄŸlantı (connection) ile birçok recordset kullanılabilir.
Mode Özelliği:
Bağlantı ile elde edilen veriler üzerinde değiştirme izinlerini belirtir.
adModeUnknown Varsayım. İzin düzenlenmemiş.
adModeRead Read-only izinler.
adModeWrite Write-only izinler.
adModeReadWrite Read/write izinler.
adModeShareDenyRead Diğer kullanıcıların bağlantıyı read izinini engeller.
adModeShareDenyWrite Diğer kullanıcıların bağlantıyı write izinini engeller.
adModeShareExclusive Diğer kullanıcıların bağlantıyı açmasını engeller.
adModeShareDenyNone Diğer kullanıcıların bağlantıyı herhangi bir izinle açmasını engeller.
Mode özelliği mevcut bağlantının erişim izinlerini düzenler. Mode özelliği Connection nesnesi kapalıyken kullanılır.
adModeUnknown (default) 0
adModeRead 1
adModeWrite 2
adModeReadWrite 3
adModeShareDenyRead 4
adModeShareDenyWrite 8
adModeShareExclusive 12
adModeDenyNone 16
Connection Metotları:
Connection metotları ,connection nesnesi ile yapılabilecek işlemleri belirtir. Open ve Close metotları ile de veri kaynağına fiziksel bağlantı kurulur ve kapatılır. Open metodunun işletilmesinden sonra bağlantı başlar. Bağlantının başlamasının komutları işletilebilir ve sonuçlar üretilir.
BeginTrans Aktif connection üzerinde yeni bir transaction’a baÅŸlar.
Cancel İşletilmekte olan komutu iptal eder.
Close Aktif bağlantıyı kapatır.
CommitTrans Mevcut transaction iÅŸlemini tamamlar.
Execute Bağlantıya ait bir komutu işletir.
Open Bir bağlantıyı açar.
OpenSchema Bir recordset’in schema bilgisini verir.
RollbackTrans Mevcut transaction’u geri alır.
Close metodu ise bağlantıya atanmış olan sistem kaynaklarını serbest bırakır. Open metodu bir veri kaynağına bağlantı kurmak için kullanılır.
Execute metodu ise aktif connection üzerinde bir komutu çalıştırır. Bu komut genellikle SQL Update komutu gibi bir satır olarak veri elde etmeyen komutların işletilmesi için kullanılır.
Set recırdtset = connection.Execute (CommandText,RecordsAffected,Options)
CommandText bilgisi bir string deÄŸeridir.Bir SQL deyimi, tablo adı; stored procedure ya da provider-specific bir text bilgi içerir. RecordsAffected bilgisi seçimli olarak kullanılır. Bu bilgi iÅŸlemden etkilenen kayıt sayısını döndürür. Options bilgisi de seçimliktir. Provider’ın CommandText’i nasıl iÅŸleyeceÄŸini belirtir.
CommandText bilgisinin deÄŸeri:
adCmdText Komut metninintext olarak deÄŸerlendirilmesini saÄŸlar.
adCmdTable Tablodaki bütün kayıtlar için bir SQL sorgu kullanılması.
adCmdTableDirect Provider’ın tablodaki bütün kayıtları döndürmesi.
adCmdTable Komut metninin bir tablo adı olarak değerlendirilmesi.
adCmdStoredProc Komut metninin bir stored prodecure olarak deÄŸerlendirilmesi.
adCmdUnknown Komut metni tipinin argümanının bilinmemesi.
adExecuteAsync Komutunzaman uyumsuz olarak iÅŸletilmesi.
adFetchAsync CacheSize özelliği ile belirtilen miktarın dışında kalan satırları belirtir.
Bir SQL Server Veritabanına Bağlanmak
ADO kontrolü aracılığıyla Sol Server’a baÄŸlanmak için ÅŸu deyimler kullanılır:
Dim cnn as New ADODB.Connection
Cnn.Open “driver = {SQL Server};
Server=<servername>; uid=<uid>; pwd= <password>;database=<databasename>”
Aşağıdaki örnek bir SQl veritabanına bağlantıyı sağlar:
Dim cnn as New ADODB.Connection
Cnn.Open “driver={SQL Server};Server= svrsql;uid=sa;pwd=;database=adresler”
Bir Access Veritabanına Bağlanmak
AÅŸağıdaki örnek ise bir Microsoft Access veritabanına baÄŸlantıyı gösterir. Bu baÄŸlantıda data provider: “JOLT OLE DB”dir.
Dim cnn as New ADODB.Connection
With cnn
.ConnectionString = “c:\my documents\adresler.mdb”
.Provider = “Microsoft.Jet.OLEDB.3.51”
.Open
End With
DSN Kullanılarak Bağlantı Kurmak
Dsn kullanmak bağlantı kurmanın en kolay yoludur.Çünkü veri kaynağı ile bağlantının detayını DSN sağlar. Aşağıdaki bağlantıda sadece DSN kullanılmaktadır:
Dim cnn as New ADODB.Connection
Cnn.Open “Adresler”
Bir bağlantının özelliklerini düzenlemek için yaygın olarak With deyimi kullanılır. Bir bağlantı açıldıktan sonra birçok özellik read-only olur. Bu nedenle özelliklerin değişmesi için önce bağlantı Close edilir. Ardından yeniden açılır. Aşağıdaki örnekte bir DSN tanımaına bağlantı yer almaktadır:
Dim cnn as New ADODB.Connection
With cnn
.Mode = adModeReadWrite
.CursorLocation = adUseServer
.Open “adresler”
End With
Error Nesnesi
Error object(hata nesnesi), ADO’yu içeren bir iÅŸlemde oluÅŸan veri eriÅŸim hatalarının ayrıntısını içerir. Hata nesnesinin özelliklerinden yararlanarak oluÅŸan her hata hakkında bilgi elde edilir. Bu özelliklerde bazıları ÅŸunlardır:
Description özelliği, hata alarmının metnini içerir. Number özelliği, hatanın değerini gösterir. Source(kaynak) özelliği, hataya neden olan nesneyi belirler. Bu özellikle bir veri kaynağına bağlanıldığında; birden fazla hata ortaya çıktığı durumlarda kullanılır.HelpFile ve HelpContext özellikleri, hata için uygun Microsoft Windows Help dosyalarını belirtir. SQLState ve NativeError özellikleri ODBC veri kaynakları hakkında bilgi sağlarlar.
Command Nesnesi
Command nesnesi bir baÄŸlantı üzerinde iÅŸletilecek özel bir query ya da komut yaratmak için kullanılır. Command nesnesinin ana amacı stored procedure’ların ve parametreli komutların çalıştırılmasını saÄŸlamaktadır. Bir komut nesnesi bir baÄŸlantı üzerinde bağımsız olarak yaratılır. İşletilmeden önce veri kaynağına baÄŸlı olan aktif connection ile iliÅŸkilendirilir. Command nesnesi ile bir veri kaynağına kaşı iÅŸletilmek için kullanılacak belli bir komut tanımlanır. Bu Nesneler, bir recordset nesnesinin yaratılması ve kaynakların elde edilmesi için kullanılır.
Command Nesnesinin Özellikleri
Özellik Açıklama Varsayım Değer aralığı
Active Connection İlgili bağlantıyı döndürür. Yok Connection nesnesi
Command Text Komut nesnesi Yok Deyim
Command Timeout İşletilecek komutu bekleme süresi 30 0- Ulong(maksimum)
Command Type İşletilecek komut tipi adCmdNothing Enum
Name Bağalantı tipinin adı Yok Deyim
Parameters Parameter nesnelerinin birleÅŸimi Yok N/A
Prepared Komutun derlenmiş olması False True/False
Properties Özellikler birleşimi N/A N/A
Active Connection özelliği ile açık bir bağlantıyla bir komut nesnesi birleştirilebilir. CommandText özelliği, komutun metinsel(deyim olarak) tanımını içerir. Bu özelliğin içeriği kullanıcıya özeldir. Bir SQL deyimi olabileceği gibi sağlayıcının desteklediği herhangi bir komut formatında da olabilir. Bu özellik Command nesnesine bağlandığı zaman nesne açık bir bağlantıya ilişkilendirilmiş ise, Execte veya Open metodları çağrıldığı zaman sorgu ADO tarafından hazırlanır. Command Type özelliğinin değerine göre ADO, CommandText özelliğini değiştirebilir.
CommandTimeout özelliÄŸi ile bir komutun iÅŸletilmesi için beklenecek süre saniye biçiminde belirtilebilir. EÄŸer bu sürede komutun iÅŸletilmesi tamamlanmamışsa hata oluÅŸur. CommandType özelliÄŸi ise performansı artırmak için komutun çalıştırılmasından hemen önce komut metninde belirtilen komutun tipi belirlenir. EÄŸer kullanılan komutun tipi biliniyorsa, bu özelliÄŸini kullanılması ADO’nun doÄŸrudan ilgili koda yönelmesini saÄŸlar. Bir komut yaratıldığında komutun iÅŸleyiÅŸini denetlemek için belli özellikler düzenlenir.
Execute metodunu kullanılarak, komut iletilir ve recordset nesnesi yaratılır. Komut nesnesi üzerinde işletilen bu metod, nesnenin CommandText özelliğinde belirtilen sorguyu çalıştırır.
With cmd
Set .ActiveConnection = cnn
.CommandText = strSQL
.Execute intRecordsAffceted
End With
CommandType özelliğinin değerleri
AdCmdText 1 CommandText deÄŸerini bir metin olarak deÄŸerlendirilmesini saÄŸlar.
AdCmdTable 2 CommandText’in bir tablo adı içermesini saÄŸlar.
AdCmdStoredProc 4 CommandText’in bir stored procedure içermesini saÄŸlar.
AdCmdUnknown 8 CommandType bilinmiyor.
AdCmdFile 256 Verilerin dosyadan almayı sağlar.
Name Özelliği
Name özelliği bir command işletildiğinde dinamik bir bağlantının oluşmasını sağlar.
State Özelliği
Bir nesnenin şu andaki durmunu gösterir. State özelliğinin değerleri şunlardır:
adStateClosed 0 Varsayım. Command nesnesi kapalı.
AdStateOpen 1 Command nesnesi açık.
AdStateConnecting 2 Command nesnesi bağlanıyor.
AdststeExecuting 4 Command nesnesibir komutu iÅŸletiyor.
Command Nesnesinin Metodları
Command nesnesi ile işlem yapmak için çok sayıda metot kullanılır. Bu metotlar şunlardır:
Cancel Bir commandın işletimini iptal eder.
CreateParameter Bir parameter nesnesi yaratır.
Execute Bir komut ya da query’yi iÅŸletir.
Aşağıdaki örnekte bir Access veritabanı içinde yer alan bir sorgu(query) çalıştırlarak sonuçları DataGrid üzerinde gösterilmektedir.
Bir Sorguyu Çalıştırmak:
1.Yeni bir Vb projesi yaratın.
2.Referans olarak Ms ActiveX Data Objects 2.0 Library’ı ekleyin,
3.Componet olarak Ms DataGrid Control 6,0’ı ekleyin.
4.DataGrid kontrolünü form üzerined ekleyin.
5.Aşağıdaki kodu Form Load olayına ekleyin.
Dim cnn as New ADODB:connection
Dim cmd as New ADODB:Command
Dim rst as New ADODB:Recordset
With cnn
.CursorLocation = adUseClient
.Open “ADRESLER”
End With
‘sorguyu çalıştıracak komut çalıştırılır.
With cmd
.CommandType = adCmdStoredProc
.CommandText =”’IZMIRLI OGRENCILER’”
Set . ActiveConnection = cnn
End With
Rst.Open cmd
Set DataGridl.DataSource =rst
Parameter Nesnesi
Parameter nesnesi ise Command nesnesiyle birlikte parametrelerin ve argümanları temsil eder. EÄŸer çaÄŸrılmak istenen parametrik sorgu ya da saklanmış procedure’ın parametrelerinin isimleri ve özellikleri biliniyorsa, CreateParameter metodu ile Parameter nesnesi yaratılabilir. Böylece saÄŸlayıcıdan parametre bilgisini istemeden parametre deÄŸerlerinin yerleÅŸtirilmesi ve elde edilmesi saÄŸlanır. Parametre nesnesinin özellikleri ÅŸunlardır: Name özelliÄŸi ile parametrenin ismi elde edilebilir. Value özelliÄŸi ise parametrenin deÄŸerini gösterir. Ayrıca Attributes, Direction, Precision, Size, Type gibi özellikleri ile parametrenin diÄŸer özellikleri düzenlenir.
Recordset Nesnesi
Recordset nesnesi ADO içinde en çok kullanılan nesnedir. Recordset nesnesi veri kaynağından gelen verileri içerir. Bir komut ya da query çalıştırıldığında elde edilen kayıtları recordset nesnesi içerir. Recordset nesneleri genellikle aktif connection ve command ile oluşturulur. Bunun dışında Recordset nesneleri bağımsız olarak da kullanılabilir.
Recordset nesnesi ,bir tablonun bütün kayıt kümesini veya çalıştırılan bir komutun sonuçlarını içerir. Kayıt düzeyinde verinin yönetilmesi için kullanılan recorset nesneleri kayıtlardan (satırlar) ve alanlardan (sütunlar) oluşur. İstenildiği kadar Recordset nesnesi yaratılabilir. Farklı Recorset nesneleri , hiçbir karışıklığa neden olmadan aynı tabloya erişebilir ve buradaki kayıtları işleyebilir.
Bir recordset nesnesi yaratılacağı zaman dört değişik gösterici (cursor) tipinden birini kullanabilir:
·Dynamic Cursor ,diğer kullanıcılar tarafından yapılan eklemelerin ,değişikliklerin ve silmelerin görülmesini sağlar ve recordset üzerinde yapılacak tüm hareketlere izin verir.
·Keyset Cursor ,diğer kullanıcıların eklediği kayıtların görülmesini engeller. Recordset içindeki her türlü harekete izin verir. Diğer kullanıcıların yaptıkları veri değişiklikleri görülebilir.
·Static Cursor ise belli bir verinin bulunması ya da raporların üretilmesi için kullanılacak veri setinin değişmeyen bir kopyasını yaratır. Veri nesnesi üzerinde her türlü harekete izin verir. Diğer kullanıcılar tarafından yapılan eklemeler ,değişiklikler ve silmeler görünmezler.
·Forward-only-Cursor ise sabit göstericiye benzer bir şekilde çalışır. Fakat kayıtlar arasında sadece ileriye doğru hareket etmeye izin verir.
Recordset açılmadan önce onun CursorType özelliği ayarlanır. Eğer hiçbir gösterici tipi belirtilmezse ,ADO veri erişim yönteminde Forward-only varsayım olarak kullanılır. Recordset nesnesi yaratıldığı zaman o andaki kayıt ilk kaydı gösterecek şekilde ayarlanır. Bu anda BOF (Beginning of File-Dosya Başı) ve EOF (End of File-Dosya Sonu) özellikleri False değerine sahiptir.
BOF özelliği ,o andaki kaydın recordset nesnesi içindeki ilk kayıttan önceki kayıt olduğunu ,EOF özelliği ise o andaki kaydın recordset nesnesi içindeki son kayıttan sonraki kayıt olduğunu belirtir. BOF ve EOF özellikleri ,recordset içinde kayıt olup olmadığına ya da kayıtlar arasında dolaşırken recordet nesnesinin sınırlarının dışına çıkılıp çıkılmadığına karar vermek için kullanılır.
RecordCount özelliÄŸi ise recordset nesnesi içerisinde kaç kayıt olduÄŸunu gösterir. EÄŸer ADO recordset içindeki kayıt sayısını belirleyemezse RecordCount’un deÄŸerini –1 olarak döndürür.
For i = 1 to RecordCount
-iÅŸlemler-
Next i
Connection ve Command nesnelerini kullanmadan doÄŸrudan recordset aracılığıyla verilere eriÅŸmek daha kolay ve kısa bir yöntemdir. Bir command iÅŸletildiÄŸinde recordset yaratılmamışsa; dönen kayıtlar default recordset içinde yer alır. Ancak Default Recordset’in kullanımı için uygun CursorType ve LockType özelliklerinin düzenlenmesi gerekir.
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rstDefault As New ADODB.Recordset
With cnn
.CursorLocation = adUseClient
.Open “ADRESLER”
End With
Set rstDefault = cnn.Execute (“Select * From Ogrenciler”)
Bir recordset yaratıldığında herhangi bir aktif komut kullanılmadıysa Recordset boş olur. Böylece program içinde yaratılan recordset nesnesi istenildiği zaman doldurulur. Bir diğer olanak ise recordset nesnesinin istenildiği zaman kapatılması ve istenildiği zaman yeniden (başka komutlarla) açılabilmesidir. Aşağıda örnekte bir recordset kapatılmakta ve ardından yeni bir veri kaynağı ile açılmaktadır;
rst.Close
rst.Open “Select TEL, BORCU, from Ogrenciler”
Recordset ile çalışma sırasında çok sayıda özellik kullanılır:
Özellik Açıklama Varsayım Aralık
AbsolutePage Kayıtseti içindeki mutlak sayfayı döndürür. -1 >=0
AbsolutePosition Aktif kaydın mutlak konumunu döndürür. -1 >=0
ActiveCommand Aktif komutu verir. Yok Komut nesnesi
ActiveConnection Aktif bağlantıyı verir. Yok Bağlantı nesnesi/deyimi
BOF Kayıt göstergecinin birinci kayıttan önce True True/False
olması.
Bookmark Mevcut kaydı belirleyen bilgi. Provider’a baÄŸlı Provider’a baÄŸlı
CacheSize Ön belleğe atılacak kayıt sayısını düzenler. 1 sadece ileri.10 bütün >= 1
göstericiler.
CursorLocation Göstericinin yerini düzenler. Provider’a baÄŸlı Enum
CursorType Cursor tipini verir. AdOpen Enum
FowardOnly
EditMode Mevcut kaydın değiştirilme durumunu verir. AdEditNone Enum
EOF Kayıt göstregecinin son kayıttan önce olması. True True/False
Fields Veri alanlarını içeren bileşim nesnesi. N/A N/A
Filter Filtre deÄŸeri adFilterNone Enum
LockType Kilitlemeyi düzenler. AdLockRead Enum
Only
MaxRecords Alınacak kayıt sayısını verir. 0 >=0
PageCount Sayfa sayısını verir. 0 >=0
Pagesize Bir sayfadaki kayıt sayısını verir. 1 >=0
RecordCount Kayıt sayısını verir. 0 >=0
Sort Sıralama düzenini belirler. Boş Deyim
Source Komut kaynağı Boş Deyim ya da nesne
State Recordset’in mevcut durumu. AdStateClosed Enum
Status Kayıtların güncellenme durumu. N/A Enum
Bir recordset’in özelliklerinin düzenlenmesi için önce recordset yaratılır. Recordset bir connection ya da command ile iliÅŸkilendirilir. Ardından veri kaynağına eriÅŸim, kilitleme ile ilgili düzenlemeler yapılır ve recordset oluÅŸturulur.
CursorType Özelliği
CursorType özelliÄŸi recordset içindeki hareketi kontrol eden bir özelliktir. Olası cursor tipleri data provider’in desteÄŸiyle mümkündür. Provider tarafından desteklenmeyen bir cursor kullanıldığında ADO varsayım olarak en yakınını kullanır.
Sabit Değer Açıklama
AdOpenForwardOnly 0 Sadece ileri.
AdOpenKeyset 1 Güncel veri içerir. Geriye doğru hareket edilir.
AdOpenDynamic 2 Veri üzerinde işlem yapılır. Güncel veri içerir. Geriye doğru hareket
edilir. Bookmark kullanılabilir.
AdOpenStatic 3 Veri sabittir. Geriye doÄŸru hareket edilir.
Kullanılcak cursor tipi duruma göre değişir. Eğer veri seti geriye doğru okunmayacaksa adOpenForwardOnly tipini kullanmak uygulamanın hızını artırır.
LockType Özelliği
LockType özelliği bir recordsetin kilitlenmesi için kullanılır.
AdLockReadOnly 1 Verileri sadece okunur ÅŸekildedir. DeÄŸiÅŸtirilemez.
AdLockPessimictic 2 Üzerinde işlem yapılan veriler satır bazında kilitlenir. Başkalarının erişimi kontrol
edilir.
AdLockOptimistic 3 Üzerinde işlem yapılan veriler kilitlenemz.Başkaların erişimi kontrol edilir.
AdlockOptimistic Batch 4 Değişiklikler toplu yapılır.
Bookmark Özelliği
Bookmark özelliği recordset içinde mevcut bir kaydın konumunu kayıt eder. Daha sonra istenildiğinde bu konuma geri dönülebilir. Recordset açıldığında her kayıda tek bir bookmark atanır.
EOF Özelliği
Kayıt setinin sonunu gösterir. EOF özelliği kullanıcının en son kayıdı geçmeye çalışmasında True değerini verir.
While Not rst.EOF
‘kayıt üzerinde iÅŸlemler
rst.MoveNext
Wend
BOF Özelliği
Kayıt setinin başını gösterir. EÄŸer bir cursor ,recordset’in birinci kayıdından öne geçerse BOF deÄŸeri True olur. EÄŸer recordset boÅŸ ise BOF ve EOF deÄŸeri True olur.
Recordset Nesnesinin Metotları
Recordset nesnesi üzerindeki çok sayıda işlem recordset nesnesinin metotlarıyla yapılır.
AddNew Bir kayıt ekler.
Cancel Mevcut iÅŸlemi iptal eder.
CancelBatch İşlenecek kayıt kümesini iptal eder.
CancelUpdate Mevcut kayıda yapılacak olan değişiklikleri ya da eklemeleri iptaL eder
Clone Mevcut recordseti kopyalar
Close Kapatır
Delete Bir ya da daha çok kayıdı siler
Find Bir kayıdı bulur
Getrows Bir kayıt kümesini iki boyutlu bir diziye kopyalar
GetString Kayıtları bir text string olarak döndürür
Move Belli bir kayıda gitmeyi sağlar
Movenext Bir sonraki
MovePrevious Bir önceki
MoveFirst Birinci
MoveLast Sonuncu
NextRecordset Birleşik bir komut içindeki bir sonraki recordseti açar
Open Bir komutu iÅŸletir ve cursor’u açar
Requery Bir komutu yeniden iÅŸletir ve recordseti yeniden oluÅŸturur
Resync Ön belleğe alınan kayıtları yineler
Save Açık bir recordseti bir dosyaya kayıt eder.Bu dosya daha sonra açılabilir
Supports Recordset provider’in hangi cursor seçeneklerini desteklediÄŸini belirtir
Update Yapılan değişiklikleri kayıt eder
UpdateBatch Veri kaynağı üzerindeki bir grup güncelleme işlemini yapar
Move metodunun yanısıra MoveFirst ,MoveLast ,MoveNext ,MovePrevious metotları ile o andaki kayıtta yer değişikliği yapılabilir. Bu komutlar recordset üzerinde hareket etmek için yaygın olarak kullanılır.
Forward-Only olarak gösterilmiş recordset nesneleri sadece MoveNext metodunu desteklerler.MoveFirst metodu o andaki kayıdın recordset içindeki ilk kayıt ,MoveLast metodu ise o andaki kaydın recordset içindeki son kayıt olmasını sağlar.
MoveNext metodu ,o andaki kayıt pozisyonunun bir kayıt ileri ,MovePrevious metodu ise bir kayıt geri gitmesini sağlar. Kayıtlar üzerindeki bu hareketin başını ve sonunu kontrol etmek için BOF ve EOF özellikleri kullanılabilir.
Recordset nesneleri iki tip güncellemeyi desteklerler: Anında ve küme halinde. Anında yapılan güncelleme de Update metodu çağrıldığı anda veri üzerinde yapılan tüm değişiklikler veri kaynağına yazılır. Bu işlemler AddNew ve Update metodlarıyla yapılır.
Eğer veri sağlayıcı küme halinde güncellemeyi destekliyorsa ,birden fazla kaydın değişiklikleri önce bir ön bellekte saklanır ve UpdateBatch metodu ile yapılır. Güncelleme işlemi sırasında recordsetin Status özelliği kullanılarak kaydın durumu kontrol edilebilir. Bununla birlikte küme halindeki güncellemeler sadece Keyset ve Static göstericilerle birlikte kullanılabilir.
Recordset Nesnesiyle Verilere Erişmek ve Görmek
Recordset nesnesi Connection ve Command nesnesi ile ya da bağımsız olarak verilere erişimi sağlar.
Sıralama (Sort) ,Arama (Find) ve Filtreleme
Recordset nesnesi belli bir kayıdı bulmak (find) ,kayıtları sıralamak ve filtrelemek (Recordset içinde sadece belli kayıtları süzmek) için de özelliklere ve metodlara sahiptir. Sort özelliği recordseti belli bir alana göre artan ya da azalan sırada sıralar. Filter özelliği belli bir değeri içeren kayıtları gösterir. Find metodu ise kayıtlar içinden belli bir kaydı bulmayı sağlar.
Sort özelliği
Sort özelliği recordsetin sıralama düzenini belirler. Sıralama bir kolona göre yapılır. Sıralama ASC (Artan) ya da DESC (Azalan) biçimde olur. Eğer herhangi bir sıralama düzeni belirtilmezse o zaman ASC varsayım olarak kullanılır.
Filter özelliği
Filter özelliÄŸi ,bir recordset ile bir deÄŸere göre süzgeçten geçirmeyi ve sadece o deÄŸer olan kayıtların görünebilir olmasını saÄŸlar. ÖrneÄŸin ili “İzmir” olan kayıtların filtrelenmesi gibi. EÄŸer yüz kayıttan sadece on tanesi “İzmir” deÄŸerine sahipse recordsetin o kayıdı görünür. Ardından bütün kayıtların gösterilmesiyle filtreler ortadan kaldırılır.
rst.Filter = “ILI= ‘IZMIR’”
Filtrelemenin ardından bütün kayıtları göstermek için adFilterNone değerin kullanılır.
rst.Filter = ad.FileterNone
Filtreleme işleminde And ve Or deyimi de kullanılabilir:
Find Metodu
Find Metodu ile bir recordset üzerinde bir kolan içindeki belli bir deÄŸer aranır. AÅŸağıdakÅŸ örnekte Next düğmesine basıldıkça ili “İZMİR” OLAN KAYITLAR BULUNUR.
Private sub cmdFindNext_Click( )
If rst(“IL”) = “IZMIR” Then
Rst.Find “IL=’IZMIR’”, l
MsgBox rst (“IL”)
Else
Rst.Find “IL=’IZMIR’”
MsgBox rst (“IL”)
End If
If rst.EOF Than Msgbox “Dosya tamamlandı”
End Sub
Girilen bir kısım bilgiden bir alanı aramak için ise”like” deyimi kullanılır:
Rs.Find “Ünvanı like ‘ ” & Text2& “%’ “