Delphi’de Aynı Kayıt Girişini Engelleme
Delphi uygulamalarında, kullanıcıların aynı kaydı birden fazla kez girmesini engellemek önemli bir husustur. Bu, veri bütünlüğünü korumak ve hatalı verilerin sisteme girmesini önlemek için gereklidir. Delphi, bu görevi gerçekleştirmek için çeşitli mekanizmalar sağlar.
Benzersiz Anahtarlar Kullanma
En yaygın yöntem, benzersiz bir anahtar sütunu kullanmaktır. Bu sütun, her kaydın benzersiz bir şekilde tanımlanmasını sağlayan bir değer içerir. Bir kayıt eklenirken veya güncellenirken, benzersiz anahtar sütunu benzersiz bir değer içerip içermediği kontrol edilir. Değer zaten mevcutsa, kayıt eklenmez veya güncellenmez.
delphi
CREATE TABLE MyTable (
ID INTEGER PRIMARY KEY,
Name VARCHAR(255) UNIQUE
);
Kontrol Kısıtlamaları Kullanma
Delphi, benzersiz anahtarlar oluşturmanın yanı sıra, kontrol kısıtlamaları kullanarak da aynı kayıt girişlerini engelleyebilir. Kontrol kısıtlamaları, veritabanı düzeyinde uygulanır ve belirli sütunlar veya tablolar için geçerlidir.
delphi
ALTER TABLE MyTable ADD CONSTRAINT UniqueName UNIQUE (Name);
Olay İşleyicileri Kullanma
Olay işleyicileri, bir kayıt eklenmeden veya güncellenmeden önce tetiklenen kod parçalarıdır. Bu işleyiciler, benzersiz bir anahtar veya kontrol kısıtlaması kullanarak aynı kayıt girişlerini kontrol etmek için kullanılabilir.
delphi
procedure TForm1.MyTableBeforeInsert(DataSet: TDataSet);
begin
if DataSet.FieldByName('Name').AsString in DataSet.FieldByName('Name').LookupValues then
raise Exception.Create('Bu kayıt zaten mevcut.');
end;
İndeksler Kullanma
İndeksler, veritabanı tablolarındaki verileri hızlı bir şekilde aramak için kullanılır. Benzersiz anahtarlar veya kontrol kısıtlamalarıyla birlikte kullanıldığında, indeksler aynı kayıt girişlerini daha verimli bir şekilde engelleyebilir.
delphi
CREATE INDEX MyTable_Name_Index ON MyTable (Name);
Diğer Yöntemler
Yukarıda belirtilen yöntemlere ek olarak, aynı kayıt girişlerini engellemek için aşağıdaki yöntemler de kullanılabilir:
- Veri Doğrulama Kuralları: Delphi, veri doğrulama kuralları kullanarak kullanıcı girişini doğrulayabilir. Bu kurallar, benzersiz değerler veya belirli aralıklar gibi kısıtlamalar uygulayabilir.
- Veri Tabanı Tetikleyicileri: Veri tabanı tetikleyicileri, belirli olaylar gerçekleştiğinde otomatik olarak yürütülen SQL kod parçalarıdır. Aynı kayıt girişlerini engellemek için tetikleyiciler kullanılabilir.
- Uygulama Mantığı: Uygulama mantığı, aynı kayıt girişlerini engellemek için de kullanılabilir. Örneğin, bir kayıt eklenmeden önce, benzersiz bir anahtar veya kontrol kısıtlaması kullanılarak veritabanında bir kontrol yapılabilir.
Faydalı Siteler ve Dosyalar
- Delphi’de Benzersiz Anahtarlar
- Delphi’de Kontrol Kısıtlamaları
- Delphi’de Olay İşleyicileri
- Delphi’de İndeksler
- Delphi’de Veri Doğrulama Kuralları
- Delphi’de Veri Tabanı Tetikleyicileri