Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Mükerrer Kayıt Uyarısı
#11
Önce gidip bir select çekin. Select top 1 den dönüş varsa kayıt var, yoksa insert atın.
Cevapla
#12
Ben Bir uygulamamda aşağıdaki şekilde personel var mı yok mu kontrolünü yapıyorum. FireDAC ve Firebird kullanmıştım. Belki fikir verebilir.



function UpCaseTR(str: string): string;
const
 KucukHarf: string = 'iışğüöç';
 buyukHarf: string = 'İIŞĞÜÖÇ';
var
 j: byte;
begin
 for j := 0 to length(str) do
 begin
   if Ansipos(str[j],KucukHarf) > 0 then
     str[j] := BuyukHarf[Ansipos(str[j],KucukHarf)]
   else
     str[j] := UpCase(str[j]);
 end;
 Result := str;
end;

function TPersonelTanımlaForm.PersonelKontrol(PersonelAdiSoyadi: String): Boolean;
var
  Personel: TFDQuery;
begin
  Result := false;

  if AboneAnaForm.DBBaglanti.Connected then
  begin
    try
      Personel := TFDQuery.Create(self);
      with Personel do
      begin
        Connection := AboneAnaForm.DBBaglanti;
        Sql.Clear;
        Sql.Add('SELECT PERSONEL_ADI FROM PERSONEL_KART WHERE UPPER(PERSONEL_ADI)=' +
          QuotedStr(UpCaseTR(PersonelAdiSoyadi)));
        Open;
      end;
      if Personel.RecordCount > 0 then
        Result := true;
    finally
      FreeandNil(Personel);
    end;
  end;
end;
Cevapla
#13
(19-04-2019, Saat: 10:38)SercanTEK Adlı Kullanıcıdan Alıntı: Ben Bir uygulamamda aşağıdaki şekilde personel var mı yok mu kontrolünü yapıyorum. FireDAC ve Firebird kullanmıştım. Belki fikir verebilir.



function UpCaseTR(str: string): string;
const
  list1: string = 'iışğüöç';
  list2: string = 'İIŞĞÜÖÇ';
var
  j: byte;
begin
  for j := 1 to length(list1) do
  begin
    if pos(list1[j], str) > 0 then
      str[pos(list1[j], str)] := list2[j]
    else
      str[j] := UpCase(str[j]);
  end;
  result := str;
end;

function TPersonelTanımlaForm.PersonelKontrol(PersonelAdiSoyadi: String): Boolean;
var
  Personel: TFDQuery;
begin
  Result := false;

  if AboneAnaForm.DBBaglanti.Connected then
  begin
    try
      Personel := TFDQuery.Create(self);
      with Personel do
      begin
        Connection := AboneAnaForm.DBBaglanti;
        Sql.Clear;
        Sql.Add('SELECT PERSONEL_ADI FROM PERSONEL_KART WHERE UPPER(PERSONEL_ADI)=' +
          QuotedStr(UpCaseTR(PersonelAdiSoyadi)));
        Open;
      end;
      if Personel.RecordCount > 0 then
        Result := true;
    finally
      FreeandNil(Personel);
    end;
  end;
end;

Merhaba,
 
Bende bu mantıkla yapıyorum. Aklıma takılan birkaç şey var tabi; acaba fazla kayıt olduğunda bu işlem ne kadar mantıklı olur? Performans açısından sorun çıkmaz mı   Confused
kisisel_logo_dark.png
WWW
Cevapla
#14
(19-04-2019, Saat: 15:10)Halil Han Badem Adlı Kullanıcıdan Alıntı:
(19-04-2019, Saat: 10:38)SercanTEK Adlı Kullanıcıdan Alıntı: Ben Bir uygulamamda aşağıdaki şekilde personel var mı yok mu kontrolünü yapıyorum. FireDAC ve Firebird kullanmıştım. Belki fikir verebilir.

Merhaba,
 
Bende bu mantıkla yapıyorum. Aklıma takılan birkaç şey var tabi; acaba fazla kayıt olduğunda bu işlem ne kadar mantıklı olur? Performans açısından sorun çıkmaz mı   Confused

benim uygulamamda kayıt sayısı en fazla 1000 civarı olduğu için sorun olmuyor. Ama çok yüksek değerlerde ne oluyor bilmem. Tecrübeli arkadaşlar bu konuya açıklık getirir herhalde.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 350 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.238 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 2.438 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  MSSQL Kayıt yöntemi nevzatc 2 709 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar
  Belirli sayıda kayıt çekmek cinarbil 2 956 17-05-2024, Saat: 08:35
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi