Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi'de Veritabanı İle Kullanıcı Giriş Ekranı
#1
Hayırlı akşamlar,

Bu konuyu açmamda ki en büyük etken, yeni başlayanların çoğunun veritabanı giriş ekranı yapma isteğidir(Nedenini bende keşfedebilmiş değilim  Angel ). İsterseniz bu yazımda bir kullanıcı girişi nasıl yapılır onu anlatayım, hem soranlara direkt link ile yardımcı olabilir, olabilirim  Shy


Idea  SENARYO: ACCESS VERİTABANI İLE KULLANICI ADI VEYA TELEFON İLE ŞİFRE EŞLİĞİNDE GİRİŞ SAĞLANMASI.



1) Veritabanı Oluşturma

 Öncellikle Access veritabanızı oluşturup, gerekli kolonları oluşturuyoruz.

XEk6Jo.png


 Veritabanımızı oluşturduktan sonra ise tablomuzu oluşturuyoruz;

Ey8Dp9.png


 Bu şekilde oluşturduğumuz tablomuzu kaydediyoruz. Hemen sonrasında Delphi ile projemizi açıp veritabanımızın yanına projemizi kaydedip, bir sefere mahsus derliyoruz.(Data.mdb dosyasını uygulamanın yanına koymak için.)

Bu işlemleri halletikten sonra bu şekilde bir win32>Debug klasörünüzün olması gerekir;

2E1a8v.png


Bu şekilde ise sorun yok! Şimdi forum tasarımımızı halledelim;

9DoN2Q.png


Bu şekilde forum tasarımını yaptık(Buna bağlı kalmanıza gerek yok Sad ). Şimdi ise gerekli bileşenleri sürükleyelim;

WGkD1L.png


Şimdi isterseniz biraz bileşenlerimizden bahsedelim;

Baglanti(UniConnection): Veritabanı ile bağlantı sağlamanızı sağlar.
Sorgu(UniQuery): Veritabanı içinde sorgu yapmanızı sağlar.
Provider(AccessUniProvider): UniConnection çalışabilmesi için driver görevi görür.

Bu işlemleri hallettikten sonra artık kodlama merasimine geçebiliriz;

Exclamation  Formun OnCreate olayına;

procedure TForm1.FormCreate(Sender: TObject);
begin
try
  with Baglanti do
 begin
  ProviderName := 'Access';  //Veritabanı türünü belirler.
  Database := 'Data.mdb'; //Uygulamanın bulunduğu yolu işaret eder.
  // Password := **** --> Şifre olduğunda bu parametre kullanır.
  Connected := True; //Bağlantıyı açtıran komut.


     with Sorgu do
     begin
       Connection := Baglanti; //Baglanti connection bileşenimizi query bileşenine tanıtıyoruz.
     end;

 MessageBox(handle, 'Veritabanı ile bağlantı başarıyla sağlandı!', 'Başarılı!', MB_OK + MB_ICONINFORMATION);

 end;
except
  MessageBox(handle, 'Veritabanı bağlantı hatası!', 'Hata!', MB_OK + MB_ICONERROR);
  Application.Terminate;  ///Program kapatma komutu.
end;
end;

Yorum satırlarıyla kodları açıklamaya çalıştım biraz. :ss

 Bu kodlar, program açılışında(Create edilirken) bize veritabanı bağlantısını sağlayacaktır;

QpB2M3.png

Gibi...

Forma eklediğimiz Buttonun OnClick olayına;

procedure TForm1.Button1Click(Sender: TObject);
begin
with Sorgu do
begin
  Close;  //Sorgu kapatılıyor.
  SQL.Clear; //Ne olur ne olmaz SQL tahtamız siliniyor.
  SQL.Text := 'select * from KullaniciGiris where (KAdi=:Kadi or KTelefon=:KTelefon) and KSifre=:KSifre'; //SQL sorgumuzu ekliyoruz.
  ParamByName('KAdi').Value := Edit1.Text;  //Parametlereler tanımlanıyor..
  ParamByName('KTelefon').Value := Edit1.Text;  //Parametlereler tanımlanıyor..
  ParamByName('KSifre').Value := Edit2.Text;   //Parametlereler tanımlanıyor..
  Open;  //Sorgu açılıyor.
end;

 if Sorgu.RecordCount > 0 then    /// Kayıt sayısı eğer 0'dan büyük ise kullanıcı var ve giriş izni verilir.
 begin
   MessageBox(handle, 'Giriş başarıyla gerçekleşti, tebrikler!', 'Tebrikler!', MB_OK + MB_ICONINFORMATION);
 end
 else
 begin
   if Sorgu.RecordCount <= 0 then     /// Kayıt sayısı 0 veya 0'dan küçük bir sayı ise kullanıcı yok ve izin verilmez.
   begin
     MessageBox(handle, 'Kullanici Adi veya Şifre Yanlış!', 'Bi Yanlışlık Var!', MB_OK + MB_ICONWARNING);
   end;
 end;

end;

 Bunlar ise bizim kullanıcımızın olup olmadığını sorgulayan kodlar;




Sonuçlar;

zJ5MaY.png
(Sadece kullanıcı adı ile giriş)



GyRDP2.png
(Telefon numarası ile giriş)



yz5qNL.png
(Şifre yanlış olduğunda.)


NOT: KAdi('DelphiCan'), KTelefon('666666'), KSifre('123456') olarak kaydedilmiştir.
 

Blush  Bu proje hakkında bir video hazırlamıştım, belki fazlaca acemi olabilir ama umarım katkısı olur.

https://www.youtube.com/watch?v=thycuEaV4ms


Cool Proje GitHub linki:

https://github.com/halilhanbadem/AccessKullaniciGirisi



Saygılarımla,
İyi çalışmalar.
Cevapla
#2
Çok güzel anlatım gerçekten, elinize sağlık hocam.
- Namyelus
WWW
Cevapla
#3
Merhaba,
Alıntı: Bu proje hakkında bir video hazırlamıştım, belki fazlaca acemi olabilir ama umarım katkısı olur.

Paylaşım ve eğitim videosu için teşekkür ederiz. Acemilik her seviyede vardır. Her seviye, bir üst kademeye göre acemidir. Smile
Önemli önemli olan az da olsa paylaşımda bulunabilme isteğidir.
Tekrar teşekkürler.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#4
Anlatımın sade ve yalın olması çok güzel. Konuyu çok iyi ifade etmişsiniz. Bilgi için teşekkürler, elinize sağlık.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 7 ile ACCDB Dosyalarına Compact İşlemi [Çözüldü] SenayAkgun 11 528 Dün, Saat: 20:43
Son Yorum: muratcelik64
Bug Filter property cannot be used for detail tables, Delphi 7 [ÇÖZÜLDÜ] SenayAkgun 9 254 11-02-2019, Saat: 11:56
Son Yorum: SenayAkgun
  Veritabanı Güncelleme Mericx 5 1.532 17-02-2017, Saat: 12:33
Son Yorum: DelphiCanR



Konuyu Okuyanlar: 1 Ziyaretçi