DERS 7: 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.

 

ŞEKİL: ADO VE VERİ ERİŞİM NESNELERİNİN KARŞILAŞTIRILMASI

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.