Veritabanından Login Bilgilerini Doğrulama Yardım

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

ADOTable1:Field: 'KullaniciAdi' bulunamadı hatası alıyorum.
Şöyle yazdım:

if (StrToInt(edit1.text))=ADOTable1.FieldByName('KullaniciAdi').Value and (StrToInt(edit2.text))=ADOTable1.FieldByName('Sifre').Value then
AnaEkran2.Show
else
ShowMessage('Lütfen Kullanıcı Adı ve Şifrenizi Kontrol Edin!');




Sizce nerede hata var? ADOTable1'i veritabanına bağlayıp TableName'ine de Personel tablosunu ekledim. Ama Kullanıcı Adı Alanını bulamıyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

Merhaba.

(1) "KullaniciAdi" isimli alanın AdoTable1'in bağlı olduğu tablonuzda var olup olmadığını yeniden kontrol ediniz.

(2) Kullanıcı adı ve Şifre kesinlikle birere rakam mıdır ? StrToInt fonksiyonu, bir metnin içeriği eğer rakamsal bir ifade ise onu hata vermeden Integer tipine dönüştürür... Edit1.Text içinde 1973 varsa bu çalışır ama Edit1.Text içinde 'ARMAN' varsa hatalı bir kurgudur.

- Bunun için eğer isim ve /veya şifre; sadece nümerik değil alfanümerik karakterler de içeriyorsa StrToInt fonksiyonunu kaldırıp sadece Edit1.Text ve Edit2.Text yazmak gerekir.

(3) if sorgusunu olduğu gibi değiştirmeden yazıyorum, ama (2) nolu durumu değerlendirip yeniden yapılandırmanız lazım.

Kod: Tümünü seç

if   ( StrToInt(edit1.text) = ADOTable1.FieldByName('KullaniciAdi').Value  )
 and ( StrToInt(edit2.text) = ADOTable1.FieldByName('Sifre').Value         )
then AnaEkran2.Show
else ShowMessage('Lütfen Kullanıcı Adı ve Şifrenizi Kontrol Edin!');
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:Merhaba.

(1) "KullaniciAdi" isimli alanın AdoTable1'in bağlı olduğu tablonuzda var olup olmadığını yeniden kontrol ediniz.

(2) Kullanıcı adı ve Şifre kesinlikle birere rakam mıdır ? StrToInt fonksiyonu, bir metnin içeriği eğer rakamsal bir ifade ise onu hata vermeden Integer tipine dönüştürür... Edit1.Text içinde 1973 varsa bu çalışır ama Edit1.Text içinde 'ARMAN' varsa hatalı bir kurgudur.

- Bunun için eğer isim ve /veya şifre; sadece nümerik değil alfanümerik karakterler de içeriyorsa StrToInt fonksiyonunu kaldırıp sadece Edit1.Text ve Edit2.Text yazmak gerekir.

(3) if sorgusunu olduğu gibi değiştirmeden yazıyorum, ama (2) nolu durumu değerlendirip yeniden yapılandırmanız lazım.

Kod: Tümünü seç

if   ( StrToInt(edit1.text) = ADOTable1.FieldByName('KullaniciAdi').Value  )
 and ( StrToInt(edit2.text) = ADOTable1.FieldByName('Sifre').Value         )
then AnaEkran2.Show
else ShowMessage('Lütfen Kullanıcı Adı ve Şifrenizi Kontrol Edin!');
Merhaba,

1. ADOTable1'e veritabanını bağlayıp tablename kısmına personel tablosunu bağladım Personel tablosu içerisinde KullaniciAdi alanı var zaten onu oradan görmesi ve value değerini edit1.text'e eşitlemesi lazım.

2. Kullanıcı Adı ve Şifreyi rakam yaptım O yüzden StrToInt koydum EditTextlerin başına.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

Peki hatayı bize doğru aktardınız mı ?

KullaniciAdi alanı derken siz türkeç karakter kullanarak "KullanıcıAdı" yazmış olabilir misiniz ?

Kodlarınızı biraz daha geniş örneklerseniz hatanızı daha kolay buluruz. :idea:
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:Peki hatayı bize doğru aktardınız mı ?

KullaniciAdi alanı derken siz türkeç karakter kullanarak "KullanıcıAdı" yazmış olabilir misiniz ?

Kodlarınızı biraz daha geniş örneklerseniz hatanızı daha kolay buluruz. :idea:
Hayır veritabanında alan adlarında türkçe karakter kullanmadım. KullaniciAdi ve Sifre alanlarının türünü Number/Sayı olarak değiştirdim.

ADOTable1: Field 'KullaniciAdi' not found diye pop up çıkıyor kullanıcı adı ve şifreyi girip giriş yap'a tıkladığımda.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

@darrenjones

- Bu son mesajınız ile söyeleceğiniziz hepsi bu kadar ile sınırlı ve bitti öyle mi :?:

- "Kodlarınızı biraz daha geniş örneklerseniz hatanızı daha kolay buluruz." demiştim, bu son mesajınız kadarını yeterli mi gördünüz...?

- Bu durumda kusura bakmayınız. Ben sorununuza çözüm üretemedim. :roll:
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:@darrenjones

- Bu son mesajınız ile söyeleceğiniziz hepsi bu kadar ile sınırlı ve bitti öyle mi :?:

- "Kodlarınızı biraz daha geniş örneklerseniz hatanızı daha kolay buluruz." demiştim, bu son mesajınız kadarını yeterli mi gördünüz...?

- Bu durumda kusura bakmayınız. Ben sorununuza çözüm üretemedim. :roll:
Hocam kodları daha önce de yukarıda paylaşmıştım onun haricinde bir şey yazmadım. Oturum Açma sayfasında 1 tane ADODataSet1 1 tane ADOTable1 1 tane de Datasourse1 var. Daha önce ADODataset1'e bağlamaya çalışıyordum olmadı. Sonra ADOTable1'e bağladım veritabanını. Sonuca en yakın ulaştığım da bu oldu.

Buyrun bu da veritabanı:

http://www.dosya.tc/server21/HJcckM/db1.rar.html

Yalnız şöyle bir şey var: Datasource Dataset'e bağlanıyor. Table gözükmüyor.

Edit:

Table'ı Active yapmayı unutmuşum :) Ama şimdi de doğru girdiğim halde kullanıcı adınızı ve şifrenizi kontrol edin mesajı geliyor. Şifreyi doğrulamıyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

- Gördüğün gibi aslında sorun daha Tablo bağlantısının sağlıklı olmamasıymış.
- Bize aktardığınız kadarıyla devam etseydik, sanki tablodan veri doğru alınmış da, karşılaştırdığı halde neden olmuyor konusunu tartışıyor olacaktık.

- Şimdi TABLO'nun doğru açıldığını teyid için DBGrid'de görmenizi sağlayalım.

* Form'a bir tane DBGrid ekleyin.
- Bunu daha sonra silebilirsiniz. Sadece kontrol edebilmeniz için görsel olarak tabloya bağlandığınız bilebilmeniz için geçici olarak koyun.

* AdoTable var demiştiniz. Bağlantısını doğru yapıp yapmadığınızı test edicez :
Datasourse1'in : DataSet özelliğini AdoTable1 yapın.
DBGrid1'in : DataSource özelliğini DataSource1 yapın.

* Artık AdoTable1'i active ettiğinizde tablo içeriğini DBGrid'de görebileceksiniz. Bunu kontrol edin.
- Bağlantı sorununuz çözülene kadar IF ile yapacağınız karşılaştırmalarınızın hiç bir değeri yoktur. Çünkü henüz veri yoktur.
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:- Gördüğün gibi aslında sorun daha Tablo bağlantısının sağlıklı olmamasıymış.
- Bize aktardığınız kadarıyla devam etseydik, sanki tablodan veri doğru alınmış da, karşılaştırdığı halde neden olmuyor konusunu tartışıyor olacaktık.

- Şimdi TABLO'nun doğru açıldığını teyid için DBGrid'de görmenizi sağlayalım.

* Form'a bir tane DBGrid ekleyin.
- Bunu daha sonra silebilirsiniz. Sadece kontrol edebilmeniz için görsel olarak tabloya bağlandığınız bilebilmeniz için geçici olarak koyun.

* AdoTable var demiştiniz. Bağlantısını doğru yapıp yapmadığınızı test edicez :
Datasourse1'in : DataSet özelliğini AdoTable1 yapın.
DBGrid1'in : DataSource özelliğini DataSource1 yapın.

* Artık AdoTable1'i active ettiğinizde tablo içeriğini DBGrid'de görebileceksiniz. Bunu kontrol edin.
- Bağlantı sorununuz çözülene kadar IF ile yapacağınız karşılaştırmalarınızın hiç bir değeri yoktur. Çünkü henüz veri yoktur.
Hocam dediğinizi yaptım DBGrid içerisinde Personel Tablosu açılıyor onda sorun yok.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

O zaman bu da çalışacaktır...
(eğer Edit1 ve Edit2'nin isimlerini yanlış yazmamışsanız...)

Kod: Tümünü seç

  if   ( StrToInt(edit1.text) = ADOTable1.FieldByName('KullaniciAdi').Value  )
   and ( StrToInt(edit2.text) = ADOTable1.FieldByName('Sifre').Value         )
  then ShowMessage('AnaEkran2 gösterilecek') //AnaEkran2.Show
  else ShowMessage('Lütfen Kullanıcı Adı ve Şifrenizi Kontrol Edin!');
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:O zaman bu da çalışacaktır...
(eğer Edit1 ve Edit2'nin isimlerini yanlış yazmamışsanız...)

Kod: Tümünü seç

  if   ( StrToInt(edit1.text) = ADOTable1.FieldByName('KullaniciAdi').Value  )
   and ( StrToInt(edit2.text) = ADOTable1.FieldByName('Sifre').Value         )
  then ShowMessage('AnaEkran2 gösterilecek') //AnaEkran2.Show
  else ShowMessage('Lütfen Kullanıcı Adı ve Şifrenizi Kontrol Edin!');
Enteresan :)

else
ShowMessage('Lütfen Kullanıcı Adınızı veya Şifrenizi Kontrol Edin!');

şu kısmı sildiğimde bile Giriş Yap'a tıklıyorum bir şey olmuyor. Sanki if kısmını algılamıyormuş gibi davranıyor.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

Hocam son verdiğim çalıştı mı çalışmadı mı ?
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:Hocam son verdiğim çalıştı mı çalışmadı mı ?
Yok malesef sadece AnaEkran gösterilecek yazıcı çıktı. Veritabanı bağlantılarını bile denedim Gelişmişten sadece Read yaptım, sadece Share Deny None yaptım, sadece ReadWrite yaptım bana mısın demedi. Seni de yordum kusura bakma ama en sonunda if edit1.text='admin' edit2.text='admin' then AnaEkran2.Show; yazıcam :)

Edit:
Hocam bana gönderdiğin kodu yanlış yazmışsın inceleyince gördüm.
then ShowMessage('AnaEkran2 gösterilecek') //AnaEkran2.Show değil

then AnaEkran2.Show olacak

Tamam şimdi çalıştı çok sağolasın.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen mrmarman »

darrenjones yazdı:Yok malesef sadece AnaEkran gösterilecek yazıcı çıktı.
Yahu çalışmış ya...

Kod: Tümünü seç

then ShowMessage('AnaEkran2 gösterilecek') //AnaEkran2.Show
O mesajı neden ekledim, bir şeyi fark etmen için...

Kod: Tümünü seç

then AnaEkran2.Show
şeklinde değiştir o satırı...
Resim
Resim ....Resim
darrenjones
Üye
Mesajlar: 25
Kayıt: 12 Ara 2013 08:35

Re: Veritabanından Login Bilgilerini Doğrulama Yardım

Mesaj gönderen darrenjones »

mrmarman yazdı:
darrenjones yazdı:Yok malesef sadece AnaEkran gösterilecek yazıcı çıktı.
Yahu çalışmış ya...

Kod: Tümünü seç

then ShowMessage('AnaEkran2 gösterilecek') //AnaEkran2.Show
O mesajı neden ekledim, bir şeyi fark etmen için...

Kod: Tümünü seç

then AnaEkran2.Show
şeklinde değiştir o satırı...
Tamam tamam sonunda çözdük if satırlarını tek tek yazınca çalıştı Seni de yordum çok sağol :)
Cevapla