VERİTABANI İŞLEMLERİ
Ders sonunda
yapabilecekleriniz:
-Veritabanı kullanım
açıklamak.
-ADO veri erişim yöntemini
açıklamak.
-Veritabanına yazmak ve
okumak.
-SQL Server ve Access
veritabanlarına erişim.
I. ADO VERİ ERİŞİM YÖNTEMİ
Visual Basic uygulamalarına
baktığınızda çoğunun veritabanı uygulaması olduğunu görürsünüz. Bu nedenle
Visual Basic 6.0 ile veritabanı uygulaması geliştirmek için çok sayıda
yenilikler yapılmıştır. Bu yeniliklerin başında yeni veri erişim yöntemi ADO
(ActiveX Data Objects) gelir.
NOT: ADO ve Visual Basic,
Microsoft firmasının tescilli
markasıdır.
NOT: ADO konusunda ayrıca
sitemizin ASP kursuna bakınız.
A. ADO'YU KULLANMAK
ADO nesnelerini kullanmadan
önce, diğer bir deyişle programınızda ADO kullanarak veritabanı işlemlerini
yapmadan önce ADO nesnelerini ve referanslarını Visual Basic ortamına
eklemeniz gerekir.
1. Project menüsünden
References komutu kullanılır.
2. Microsoft ActiveX Data Objects 2.0 ya da daha
ilerisi seçilir.
İPUCU: ADO versiyonları ve
Visual Basic Service Pack'leri konusunda daha geniş bir araştırma yapınız.
www.microsoft.com.
Örneğin formlarınızdaki
metin kutularını ya da gridleri veritabanına bağlamak için ADODC bileşenin
eklenmesi gerekir. Bu durumda ortama ADO kontrollerini de eklemeniz gerekir.
1. Project menüsünden
Components komutu kullanılır.
2. Microsoft DataGrid
Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş
olması gerekir.
3. OK düğmesine tıklanarak
kontrol projeye eklenmiş olur.
Ardından ADO DC üzerinde
sağ tıklayarak elde ettiğiniz iletişim kutusunda veritabanı erişiminin birçok
işlemini yapabilirsiniz. Geriye bir tek şey kalır, o da verileri
görüntüleyecek olan DataGrid'in DataSource özelliğini ADODC olarak
düzenlemek.
1. FORM ÜZERİNDEKİ
KONTROLLERİ ADO DATA CONTROL'E BAĞLAMAK
ADO Control aracılığıyla
veri kaynağı ile bağlantı kurulduktan sonra, TextBox, ComboBox, ListBox, Grid
gibi kontrollerle birlikte kullanılabilir.
NOT: Bu dokümanlar Faruk
Çubukçu tarafından hazırlanmıştır. Burada adı geçen ticari
ünvanlar ve markalar bilgi amaçlı kullanılmışlardır ve kendi imtiyazlarına
sahiptirler. Bu dokümanlar ticari amaçlı olarak kullanılmaz. Daha fazla bilgi
için www.farukcubukcu.com adresine bakınız.
Bir kontrolün tasarım
zamanında ADODC'e bağlanması için DataSource özelliğinin düzenlenmesi
gerekir. Yine aynı şekilde bu işlemler çalışma zamanında da yapılabilir.
Kullanılan kontrole göre kullanılan özellikler değişir. Örneğin bir TextBox
kontrolünü ADODC ile ilişkilendirerek veri alışverişi yapmasını istersek
DataField özelliği kullanılır:
Text1.DataField = "ADI
"
Set Text1.DataSource =
ADODC1
Aşağıdaki örnekte DataGrid
kontrolü ile Access veritabanındaki veriler bir gride bağlanır.
Bu işlem için:
1. Project menüsünden
Components komutu kullanılır.
2. Microsoft DataGrid
Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş
olması gerekir.
3. OK düğmesine tıklanarak
kontrol projeye eklenmiş olur.
Private Sub
Command1_Click()
ADODC1.ConnectionString
="Provider=Microsoft.Jet.OLEDB.3.51; Data Source=c:\my
documents\adresler.mdb"
ADODC1.CommandType =
adCmdTable
ADODC1.RecordSource =
"ogrenciler"
Set DataGrid1.DataSource =
ADODC1
End Sub
B. ADO NESNELERİ
ADO veri erişim sistemi
oldukça basit bir nesne modeline sahiptir. Bu modelde birçok nesne seçimli
olarak (birlikte) ya da bağımsız olarak kullanılabilir.
Tablo: 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
(kolon).
Parameter Bir komut için parametre tutar.
Recordset Bir komut tarafından üretilen (dönen)
verileri içerir.
Örneğin bir Access
veritabanına bağlantı kurmak için şu nesneler kullanılır:
Veri: ADRESLER.MDB
Connection: MUSTERI.MDB
Command: Select * from
musteriler
Recordset: elde edilen
bilgi.
Aşağıdaki örnekte sadece
Recordset nesnesi ile bir Microsoft Access veritabanına erişilmektedir:
Dim rst As New
ADODB.Recordset
rst.Open "Select *
From musteriler", "DSN=MUSTERI", adOpenKeyset
Set DataGrid1.DataSource =
rst
NOT: Yukarıdaki kodda yer
alan DSN tanımlaması işletim sistemi tarafından yaratılabilir. Control
Panel'de ODBC tanımlamalarına bakınız.
1. Recordset Nesnesinin
Kullanımı
Aşağıdaki örnekte bir
Recordset nesnesi ile Access veritabanındaki veriler DataGrid üzerinde
gösterilmektedir:
Dim rst As New
ADODB.Recordset
rst.Open "Select *
From musteriler", "DSN=MUSTERI", adOpenKeyset
Set DataGrid1.DataSource =
rst
2. 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.
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.
Dim cnn As New
ADODB.Connection
cnn.Open
"MUSTERI"
3. 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ğlamaktır. Bir komut nesnesi bir bağlantı
üzerinde bağımsız olarak yaratılır ve işletilmeden önce veri kaynağına bağlı
olan aktif connection ile ilişkilendirilir.
Bir komut herhangi bir
recordset döndürmeden de kullanılabilir. Örneğin aşağıdaki program parçasında
bir UPDATE komutu veritabanı üzerinde işletilmektedir.
strSQL = "UPDATE BORCU
SET BORCU = BORCU * 1.15"
cmd.Execute
4. 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.
Örnek: Recordset
tanımlaması
Dim rst As New
ADODB.Recordset
rst.Open "Select *
From Ogrenciler", "DSN=ADRESLER",
adOpenKeyset,
adLockOptimistic
Örnek: Bir recordset'in
DataGrid üzerinde gösterilmesi
Dim con As New
ADODB.Connection
Dim rst As New
ADODB.Recordset
Con.Open="Provider=Microsoft.Jet.OLEDB.4.0
; Data Source=c:\data\sirket.mdb"
Rs.Open "SELECT * FROM
musteriler", Con
Set DataGrid1.DataSource =
rs
NOT: DSN tanımlı olan
bağlantılar için bilgisayarda Control Panel üzerinde ODBC bağlantısını
tanımlanmalıdır.
II. GÖZDEN GEÇİRME
1. Recordset nedir?
2. Bir recordset nasıl
yaratılır?
3. Bir recordset'e ekleme
yapmak için hangi metot kullanılır?
4. ADO nesneleri nelerdir?
III. VİSUAL BASIC UYGULAMASI
ER-FA ecza deposu bin kadar üyesine ilaç toptan ilaç
pazarlamak üzere kurulmuştur. ER-FA ecza ilaç siparişlerini takip etmek için
bir Visual Basic uygulaması geliştirmek istemektedir.
Yapılacak ana işlemler:
. Visual Basic programlama ortamında ana menü ve veri
giriş formlarını tasarlamak.
. Veritabanını tasarlamak.
. Veri girişi ve raporlama için kodlar yazmak.
Yapılacak işlemlerin
ayrıntıları:
. Visual Basic formu olarak veri giriş formlarını
tasarlamak.
. Microsoft Access ya da SQL Server üzerinde
veritabanlarını tasarlayın.
. Veri girişi sayfalarında form validation (form
alanlarının kontrolü) yapın.
. KAYDET düğmeleriyle verilerin veritabanına kaydını
yapın.
. Veritabanı işlemlerini ADO kullanarak yapın.
. İstenen raporlar için Data Environment ve Data Reports
bölümlerinden yararlanın.
Sipariş sisteminin yanı
sıra bir süre sonra ER-FA ecza deposu müşterileri için bir anket yapmaya
karar vermiştir. Anketler de veritabanına bir metin bilgisi olarak
eklenecektir. Bu koşullar altında; tabloları ve kayıtların birbiriyle
bütünlüğün sağlayacak olan olası ilişkileri tanımlayın.
Bilgiler:
STOK KARTI MUSTERİ KARTI SİPARİŞ ANKET
Kodu Kodu Tarih Kodu
Tanımı Unvanı Sip No Anket Metni
Grup Kodu Grubu Mus Kodu
Satıcı Firma Adresi Stok
Kodu
Birimi İlçesi Birimi
Birim Fiyatı İli Adet
KDV Tel Taşıyıcı
Firma
Depo Kodu Fax Siparişi Alan
Paket Kodu Vergi Dairesi
Açıklama Vergi No
Resmi Kredisi Hesap
Açılış Tarihi
Resmi
Web sitesi
PERSONEL (SİPARİŞİ ALANLAR) TAŞIYICI FİRMA
Kodu Kodu
Adı Soyadı Ünvanı
Adresi Adresi
İli İli
İşe Giriş Tarihi Güzergah
Öncelikle, Microsoft Access
ile veritabanını tasarlayın.
Notlar:
. Genellikle kodu alanlarını Primary Key yapın.
. Birim fiyatlar genellikle "Adet" olarak
düzenlenecektir. Onu Default yapın.
. Fiyat ve adet bilgilerine mutlaka pozitif bir değer
girilecektir.
. Sipariş tarihi "günün" tarihi olarak otomatik
olarak düzenlenecektir.
. Grup kodları, iller ve diğer seçenekli girişler bir
Combo box olarak düzenlenecektir.
Bu veriler sabit ya da
veritabanından gelerek doldurulabilir.
1. Veritabanını Yaratın ve
Tabloları Tasarlayın.
Yukarıdaki bilgiler
temelinde SIPARIS-TAKIP veritabanını yaratın. Ardından tabloları tasarlayın.
2. İlişkileri Kurun
Kodu alanları PK olduktan
sonra ilgili tablolar arasındaki ilişkileri kurun.
Müşteri-Sipariş
Müşteri-Anket
Stok-sipariş
Personel-sipariş
Taşıyıcı firma-sipariş
arasındaki ilişkileri kurun.
3. Örnek veriler girin:
Test amaçlı örnek veri
girin.
4. Ana Menü Yapın
Programın veri giriş
kartlarına yönlenmesini sağlayacak ve ilk olarak çalıştırılacak bir ana menü
formu hazırlayın.
Visual Basic projelerinde
genellikle menü çubuğu yaparak ana işlemleri onun üzerinde belirtirsiniz.
5. Veri Giriş Formları
Yukarıdaki tablolara veri
girişi için Visual Basic formları hazırlayın.
İstenen formlar
Yapılacaklar:
. Stok kartı için columnar bir form
. Müşteri kartı için columnar bir form
. Anket için columnar bir form
. Personel için columnar bir form
. Taşıyıcı için columnar bir form
. Sipariş için tabular bir form
Yapılacaklar (öneriler)
. Müşteri formu için olası alanlara combo box ekleyin.
. Müşteri formu için olası alanlara Validation Rule
ekleyin.
. Müşteri formu için form zeminini değiştirin.
. Müşteri formunun altına kendi
hazırladığınız bir bitmap dosyayı koyun.
. Müşterinin Web sitesi bilgisini tablo tasarımına
ekleyin. Daha sonra bunun form üzerinden girilmesini sağlayın. Web sitesi
alanına www.microsoft.com girin. Ardından üzerine tıklayarak ona ulaşmaya
çalışın.
. Sipariş formunun alt başlık kısmına adet toplamı alın.
. Sipariş formunda birim fiyat ve tutarın görünmesini
sağlayın.
. Sipariş formunun alt başlık kısmına tutar toplamı alın.
Ayrıca altına KDV'li toplamı hesaplattırın.
. Sipariş formunda taşıyıcı firma ve siparişi alan
müşterinin combo'larla seçilmesini sağlayın.
NOT: Veri girişi için form
üzerinde metin kutuları (text box) ve gridler kullanın.
Uygulamanın Çalıştırılması:
Program yazım aşamalarında
F5 tuşu ile program test edilir ve çalıştırılır. Ardından paketleme sihirbazı
ile programın kullanıcı bilgisayarına yüklenir hale getirilmesi gerekir.
|