ders 7: veritabanı işlemleri

advertisement
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.
Download