Mega Code Archive

 
Categories / Delphi / ADO Database
 

Ado ile access veritabanına bağlantı

ADO ile ACCESS BAĞLANTISI Delphi ile veritabanı uygulamaları geliştiren hemen her kullanıcının ilk karşılaştığı veritabanı PARADOX tabloları olmuştur. Paradox bana göre bugün de SQL kullanımına olanak vermesi, tek bir tablonun güncellenmesiyle eski uygulama dağıtımlarının veritabanı desteğini kolaylaştırması ve inanılmaz hızı ile local veritabanı uygulamaları için çekiciliğini ve kolaylığını sürdürüyor. Ancak, Paradox’un Access, Interbase gibi tek bir database yapısı içindeki tablolardan oluşmaması yukarıda belirttiğimiz olumlu yönüne karşın özellikle yedeklemede dağınıklılığıyla bazen sorunlar da yaratabilmektedir. Çok kullanıcılı veritabanı uygulamaları için Delphi’nin bize sunduğu üstelik ücretsiz bir İlişkisel Veritabanı olan Interbase dışında tek bacaklı veritabanı uygulamalarında Delphi 5 ve sonrası ile Delphi programcılarına sunulan yeni bir olanak Microsoft’un yeni veritabanı sistemlerini Delphi programcıların kullanımına sunan ADO bileşenleridir. Bu bileşenler Microsoft Data Access Components (MDAC) yüklü bilgisayarlarda Access Veritabanı ile tek kullanıcılı hatta çok kullanıcılı uygulamalar geliştirmeyi kolaylaştırmakta, Win 98 ve sonrasıyla birlikte gelen MDAC karşı bilgisayarda varsayılan olarak zaten kurulu olduğundan ayrıca BDE yüklemeye gerek kalmamakta, kurulum dosyalarının boyutu örneğin 5 MB ‘tan 2 MB’lara düşmekte bu da bana göre ADO ve Access kullanımını çekici kılmaktadır. Ayrıca MS Access Database Desktop yanında kullanıcıya çok daha gelişmiş kolaylıklar, olanaklar ve konfor sunmaktadır. ADO Bileşenleri: resimde görüldüğü gibi ADO bileşenleri: sırasıyla ADConnection, ADOCommand, ADODataset, ADOTable, ADOQuery, ADOStoredProc, RDSConnection’dan oluşmaktadır. Delphi programcılarının uyum kolaylığı için sunulan ADOTable ve ADOQuery’nin kullanımı ise ufak tefek farklılıklar dışında gerçekten ilginç, kolay ve güzel. Bu yazımda ben ADO’yu ilk kez kullanacaklara ADOTable bileşenini bir Access veritabanına nasıl bağlayacaklarını anlatacağım: Forma yukarıda görüldüğü gibi bir ADOConnection, bir ADOTable ve bir bildiğimiz Datasource, DBGrid ve DBNavigator koyuyoruz. ADOConnection bileşenini çift tıkladığımızda açılan diyalog penceresinde ConnectionString ile bağlantı için Build butonunu tıklıyoruz. Çıkan pencerede sağlayıcı olarak Microsoft Jet 4.0 OLE DB Provider’ı seçiyoruz. Daha önce Access’te oluşturduğumuz örneğin Adres1.mdb adlı veritabanını seçip Test Connection adlı düğmeyi tıklıyoruz. Sorun yoksa “Test connection succeeded. “ diyaloğunu göreceğiz. Diyalogları kapatıyoruz. ADOConnection bileşeninin şifre ve kullanıcı adını soran-ki her zaman pek istenmiyor- diyaloğunun çıkmasını önlemek için “LoginPromt “ özelliğine False değerini atayıp “Connected” özelliğini True yapıyoruz. Sonuçta yaptığmız bu işlemlerle ADOConnection bileşeninin “ConnectionString” özelliğine: “Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Myprojects\Adres2_Ado\Adres1.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False “ değerlerinin atandığını göreceksiniz. Aslında ADOTable bileşeninin ConnectionString özelliğini düzenleyip tabloyu doğrudan bağlamak ta mümkün ancak çok sayıda tablo kullanmak için en iyi çözüm Database bileşeninin kullanımındaki gibi tablo, query ve diğerlerini ADOConnection’a bağlamak olacaktır. Artık Tablonun Connection özelliğine ADOConnection1’ı, Datasource1’in Dataset özelliğine ADOTable1’i, DBGrid’i ve DBavigator’un Datasource özeliğine Datasource1’i atayıp ADOTable’ın Active özelliğini True yapabiliriz. Adres Defteri veritabanına bağlantımız gerçekleşmiştir. //Korkmaz Başgök, Karşıyaka