CLICK HERE FOR THOUSANDS OF FREE BLOGGER TEMPLATES »

14 Nisan 2008 Pazartesi

ADO VERİ ERİŞİMİ

ADO
(ActiveX Data Objects)
VERİ ERİŞİMİ

ADO

ADO clint uygulamaların server veri tabanlarına erişimini ve veri işlemesini sağlar.

Web uygulamaları ve clint/server uygulamaları geliştirmek için kullanılan ADO, OLE db veya başka provider’ ı kullanır.

ADO hiyerarşik olmayan ve bağımsız olarak kullanılan nesneleriyle verilere kolayca ulaşmayı sağlar

Daha iyi performans sağlamasının yanı sıra daha az sistem kaynağına gereksinim duyar.

Hızlı çalışarak veri tabanı uygulamalarının daha etkin kullanımını sağlar.

ADO verileri OLE DB aracılığıyla sağlar. ADO için data provider OLE DB dir.


ADO’ nun clint/server ve web uygulamaları için yeni özellikleri

 Düz ve basit nesne modelidir. Karmaşık nesnelerin kullanılması gerektiğinde daha verimli kullanılmasını sağlar.
 Bağımsız oluşturulan nesneler. DAO ve RDO da olduğu gibi hiyerarşik gösterimin aksine ADO nesneleri bağımsız yaratılır.
 Clint tarafından kullanılabilecek cusor kütüphanesine sahiptir. Seek, Find ve Sort metotlarını destekler.
 Stored procedure’ ları giriş ve çıkış parametreleriyle destekler.


ADO NESNELERİ

Command : Bir veri kaynağı üzerinde bir sorgu ya da deyimi işletir. Sorgu tanımının saklanmasını sağlar. SQL cümlesi, stored procedure,tablo adı ya da komut metni parametrelerini içerir.

Connection : Bir veri kaynağına doğrudan bağlantı kurar. Data provider hakkında bilgi verir. Cursor type, Connect string, sorgu ve komut zamanı ve diğer ADO özelliklerine sahiptir.

Error : Veri kaynağında oluşan bir hatayı geri döndürür.

Field : Bir kayıt içindeki alanı belirtir.

Parameter : Çalışacak bir komut için parametre tutar. Parmetreli Command nesnesi için parametre belirler.

Recordset : Bir komut tarafından üretilen verileri içerir.Bir query sonucu dönen bir ya da daha fazla kaydı gösterir.Bir kayıt seti bir bağlantı yaratmadan da açılabilir. Ancak bir bağlantı (Connection) oluşturulursa, bu bağlantıya göre birden fazla kayıt seti oluşturulabilir.


Recordset Nesnesi ile Access veri tabanına erişim

Dim rst As New ADODB.Recordset
rst.Open “select * From ogrenciler”, “DSN=ADRESLER”, adOpenKeyset
Set DataGrid1. DataSource = rst


ADO NESNELERİ
Connection

Bu nesne 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.
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çar.

Connection Nesnesinin Özellikleri

CommandTimeout : Komutun bekleme zamanı
ConnectionString : Veri kaynağını gösterir
ConnectionTimeout : Bağlantı için bekleme zamanı,
CursorLocation : Bir Server yada client taraflı cursor yaratır
Errors : Hataları tutar
Mode : Bağlantının erişim izinlerini düzenler. Yada programa döndürür.

CursorLocation Özelliği

Data provider’ e erişim düzenleyerek verilere erişim biçimini değiştirir.
Cursor istekte bulunan uygulamaya veriyi döndüren küçük bir yazılımdır.
Veri setinin konumunu izleyerek çok sayıda işlemin aynı anda yapılmasını sağlar
CursorLocation özelliğinin düzenlenmesi; düzenleme işleminden sonra olan bağlantıları etkiler.
Bir Recordset için belirtilmişse aktif connection’ ın özelliği yenilenir.


CursorLocation Değerleri

adUseClient : Yerel cursor kütüphanesi tarafından sağlanır.

adUseServer : Varsayılan olarak kullanılır. Data provider ya da veritabanı sürücüsü tarafından sağlanılan cursor.



Mode Özelliği

Bağlantı ile elde edilen veriler üzerinde değiştirme izinlerini belirtir.
Mode özelliği Connection nesnesi kapalıyken kullanılır.

adModeUnknown : İzin düzenlenmemiş. (0)
adModeRead : Read-Only izinler (1)
adModeWrite : Write – only iznler (2)
adModeReadWrite : Read/Write izinler (3)
adModeShareDenyRead : Diğer kullanıcıların bağlantıyı read iznini engeller (4)
adModeShareDenyWrite : Diğer kullanıcıların bağlantıyı write iznini engeller (8)
adModeShareExclusive : Diğer kullanıcıların bağlantıyı açmasını engeller(12)
adModeShareDenyNone : Diğer kullanıcıların bağlantıyı herhangi bir izinle açmasını engeller.(16)


Connection Metotları

BeginTrans : Aktif connection üzerinde yeni bir transaction’ a başlar.
Cancel : İşlemekte olan komutu iptal eder.
Close : Aktif bağlantıyı kapatır.
CommitTrans : Mevcut transaction işlemini tamamlar.
Execute : Bağlantıya ait bir komutu başlatır.
Open : Bir bağlantıyı açar.
RoolbackTrans : Mevcut trasaction’ u geri alır.


Connection Metotları

Execute metodu 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 recordset = connection.Execute (CommandText, RecordAffected, Options)

CommandText : Bir string değeridir. Bir SQL deyimi, tablo adı, storedprocedure içerir.
RecordsAffected : İşlemden etkilenen kayıt sayısını döndürür.
Options : Provider’ ın CommandText’ i nasıl işleyeceğini belirtir.











CommandText Değerleri

adCmdText : Komut metninin text olarak değerlendirilmesini sağlar.
adCmdTable : Tablodaki bütün kayıtlar için SQL sorgu kullanılması. Komut metninin bir tablo adı olarak değerlendirilmesi
adCmdTableDirect : Provider’ın tablodaki bütün kayıtları döndürmesi
adCmdStoredProc : Komut metninin bir stored procedure olarak değerlendirilmesi,
adCmdUnknown : Komut metni argümanının bilinmemesi
adExecuteAsync : Komutun zaman uyumsuz olarak işletilmesi
adFetchAsync : CacheSize özelliği ile belirtilen miktarın dışında kalan satırları belirtir.

SQL Veri Tabanına Bağlanma

Dim cnn as New ADODB.Connection

Cnn.Open “driver={SQL server};Server=;
uid=;pwd=;database=

Access Veri Tabanına Bağlanma

Dim cnn as New ADODB.Connection

With cnn
.ConnectionString=“c:\x\adresler.mdb”
provider = “Microsoft.Jet.OLEDB.3.51”
Open
End With

DSN Kullanarak Veri Tabanına Bağlanma

Dim cnn as New ADODB.Connection
With cnn
.mode=adModeReadWrite
CursorLocation = adUseServer
Open”ADRESLER”
End With


ADO NESNELERİ
Error

ADO’ yu içeren bir işlemde oluşan veri erişim hatalarının ayrıntısını içerir.
Description : Hatanın metnini içerir.
Number : Hatanın değerini gösterir
Source : Hataya neden olan nesneyi belirtir.
HelpFile HelpContext : Hata için uygun Microsoft Windows Help dosyalarını belirtir.
SQLState NativeError : ODBC veri kaynakları hakkında bilgi sağlar.


ADO NESNELERİ
Command

• Command nesnesi bir bağlantı üzerinde işletilecek özel bir sorgu ya da komut yaratmak için kullanılır.
• Bir komut nesnesi bir bağlantı üzerinde bağımsız olarak yaratılır. İşletilmeden önce veri kaynağına bağlı olan aktif bağlantı(connection) ile ilişkilendirilir.
• Command nesnesi ile bir veri kaynağına karşı işletilmek için kullanılacak bir komut yaratılır.
• Bu nesneler, bir recordset nesnesinin yaratılması ve kayıtların elde edilmesi için kullanılır.

Command nesnesinin özellikleri

Active Connection : İlgili bağlantıyı döndürür. Açık bir bağlantıyla bir komut nesnesi birleştirilebilir.
Command Text : Komut nesnesi. Komutun metinsel tanımını içerir.Özelliğin içeriği kullanıcıya özeldir. Command Type özelliğinin değerine göre ADO, Commad Text özelliğini değiştirebilir

Command nesnesinin özellikleri

Command Timeout : İşlenecek komutu bekleme süresi Bekleme süresi sn cinsinden belirtilebilir. Eğer komut bu sürede işletilemezse hata oluşur.
Command Type : İşlenecek komut tipi.
Performansı arttırmak için komutun çalıştırılmasından hemen önce komut metninde belirtilen komutun tipi belirtilir.

CommandType Özelliğinin Değerleri

AdCmdText : CommandText değerinin bir metin olarak değerlendirilmesini sağlar (1)
AdCmdTable : CommandText’ in bir tablo içermesini sağlar (2)
AdCmdStoredProc : CommandText’ in bir stored prosedürü içermesini sağlar (4)
AdCmdUnknown : CommondType bilinmiyor. (8)(varsayılan)
AdCmdFile : Verilerin dosyadan alınmasını sağlar (256)

Command nesnesinin özellikleri

Name : Bağlantı tipinin adı. Bir komut işletildiğinde dinamik bir bağlantının oluşturulmasını sağlar.
Parameters : Parameter nesnelerinin birleşimi
Prepared : Komutun derlenmiş olması
Properties : Özellikler birleşimi







Command nesnesinin özellikleri

Cancel : Bir command’ ın işletimin iptal eder.

CreateParameter : Bir parametre nesnesi yaratır.

Execute : Bir komutu ya da sorguyu işletir.


ADO NESNELERİ
Parameter

Parameter nesnesi ile Command nesnesi birlikte parametreleri ve argümanları temsil eder.

Çağrılmak istenen parametrik sorgu yada saklanmış prosedure’ ın parametrelerinin isimleri ve özellikleri biliniyor ise CreateParameter metodu ile parametre nesnesi yaratılabilir.


ADO NESNELERİ
Recordset

Recordset nesnesi veri kaynağından gelen verileri içerir.
Recordset nesneleri aktif connection ve command ile oluşturulur.
Recordset nesnesi bir tablonun bütün kayıt kümesini veya çalıştırılan bir komutun sonuçlarını içerir.
Kaydın yönetilmesi için kullanılırlar, kayıtlardan ve alanlardan oluşurlar. Birden fazla Recordset nesnesi oluşturularak aynı kayıt kümesi üzerinde çalışılabilir.
Recordset nesnesi yaratılırken kullanılacak cursor tipleri;

• Dynamic Cursor
• Keyset Cursor
• Static Cursor
• Forward-only Cursor

Recordset açılmadan önce Cursor Type özelliği ayarlanır.(Defult değer Forward-only dir)
Recordset ilk yaratıldığında ilk kaydı gösterir. Bu anda ;
BOF(Begining of file-Dosya başı) ve EOF (End of file- Dosya sonu) değerleri false dır.


Recordset Tanımlaması

Dim rst As New ADODB.Recordset
Rst.Open “select *From OGRENCILER”, “DSN=ADRESLER”, adOpenKeyset,adLockOptimictic



Recordset’in DataGrid’ Gösterilmesi

Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
With cnn
.CursorLocation=adUseServer
.Open “ADRESLER”
End With
With cmd
.CommandText =“Select * From OGRENCILER”
Set .ActiveConnection=cnn
End With
With rst
.CursorType=adOpenDynamic
.LockType=adLockOptimistic
.Open cmd
End With
Set DataGrid1.DataSource=rst

Recordset Özellikleri

AbsolutePage : Kayıt seti içindeki mutlak sayfayı döndürür. (Varsayım= -1; Aralık >=0)
AbsolutePosition : Aktif kaydın mutlak konumunu döndürür. (Varsayım = -1; Aralık= >=0)
ActiveCommand : Aktif komutu verir. (Varsayım = yok; Aralık= Komut nesnesi)
ActiveConnection : Aktif bağlantıyı verir.
BOF :Kayıt göstericisinin birinci, kayıttan önce olmasını sağlar. (Varsayım=True, Aralık =True/False)
Bookmark : Mevcut kaydı belirleyen bilgi. (Provider’ a bağlı)
CacheSize : Önbelleğe atılacak kayıt sayısını düzenler.(Aralık >=1)
CursorLocation= Göstericinin yerini düzenler. (Provider’ a bağlı)
CursurType : Cursor tipini verir. (Varsayım =Forward-only)
EditMode : Mevcut kaydın değiştirilme durumunu veririr. (Varsayım = adEditNone)
EOF : Kayıt göstericisinin son kayıtta olmasını sağlar. (Varsayım=True, Aralık True/False)

Fields : Veri alanlarını içeren bileşim nesnesi.
Filter . Filtre değeri (Varsayım = adFilterNone)
LockType : Kayıt kilitlemeyi düzenler. (Varsayım = adLockRead)
MaxRecords : Alınacak kayıt sayısını düzenler. (Varsayım =0, Aralık = >=0)
PageCount : Sayfa sayısını verir. (Varsayım =0, Aralık = >=0)
PageSize : Bir sayfadaki kayıt sayısını verir. (Varsayım =1, Aralık = >=0)
Sort : Kayıtların sıralama düzenini belirler.
Source : Komut kaynağını verir.
State : Recordset’in mevcut durumunu verir. (Varsayım =adStateClosed)
Status : Kayıtların Güncellenme durumunu ayarlar.

Bir recordset’in özelliklerinin düzenlenmesi için önce recordset bir connection ya da command ile ilişkilendirilir.
Recordset Özellikleri
LockType

Recordset’ in kilitlenmesi için kullanılır.
adLockReadOnly : 1 Verileri sadece okunur duruma getirir. Değiştirilemezler.
adLockPessimistic : 2 Üzerinde işlem yapılan veriler satır bazında kilitlenir. Başkaların erişimi engellenir.
adLockOptimistic: 3 Üzerinde işlem yapılan veriler kilitlenmez.Başkalarının erişimi kontrol edilir.
adLockOptimistic Batch : 4 Değişikliklerin toplu şekilde yapılmasını sağlar.


Recordset Özellikleri
Bookmark

Recordset içerisindeki mevcut bir kaydın konumunu kaydeder. Daha sonra istenildiğinde bu konuma kaydın geri dönmesini sağlar.

Dim yerimi as variant
Private sub kaydet_Click()
yerimi =rst.Bookmark
End Sub
Private sub GeriDön_Click()
rst.Bookmark = yerimi
End Sub


Recordset Metotları

AddNew :Yeni 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 recordset’i kopyalar.
Close : Aktif recordset’ kapatır.
Delete : Bir ya da çok sayıda kaydı siler.
Find : Bir kaydı 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 kayda recordset’in konumlanmasını sağlar.
MoveNext : Recordset’in bir sonraki kayda gitmesini sağlar.







Recordset Metotları

MoveFirst : Recordset’in ilk kayda gitmesini sağlar.
MoveLast : Recordset’in en son kayda gitmesin sağlar.
NextRecordset :Birleşik bir komut içindeki bir sonraki recordset’i açar.
Open : Bir komutu işletir ve cursor’ ı açar.
Requery :Bir komutu yeniden işletir ve recordseti yeniden oluşturur.
Resync : Ön belleğe alınan kayıtları siler.
Save : Açık bir recordseti bir dosyaya kayıt eder. Bu dosya daha sonra açılabilir.
Supports : Recordsetprovider’ın 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.


SQL Server Üzerinde Bir Recordset Nesnesinin Connection Nesnesi ile Yaratılması

Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Cnn.Open “driver={SQL Server};Server=svrsql; uid=sa; pwd=; database=adresler”
Rst.Open “SELECT * FROM OGRENCILER”, cnn, adOpenKeyset; adLockOptimistic
Set DataGrid1.DataSource= rst

Microsof Access Üzerinde Bir Recordset Nesnesinin Connection Nesnesi ile Yaratılması ve Doldurulması

Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Cnn.Open “ADRESLER”
Rst.Open “SELECT * FROM OGRENCILER”, cnn, adOpenKeyset; adLockOptimistic
Set DataGrid1.DataSource= rst


SQL Server Üzerinde Bir Recordset Nesnesinin Command Nesnesi ile Yaratılması ve Doldurulması

Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Cnn.Open “driver={SQL Server};Server=svrsql; uid=sa;pwd=;database=adresler”
With cmd
.CommandText =Select * Form OGRENCILER”
Set.ActiveConnection= cnn
End With
Rst.Open cmd, , adOpenKeyset; adLockBatchOptimistic
Set DataGrid1.DataSource= rst

0 yorum: