Delphi’de SQL Mükerrer Kayıt Engelleme
Mükerrer kayıtlar, veritabanı yönetiminde yaygın bir sorundur ve veri bütünlüğünü ve tutarlılığını tehlikeye atabilir. Delphi, mükerrer kayıtları engellemek için çeşitli mekanizmalar sağlar ve bu makale bu mekanizmaları ayrıntılı olarak inceleyecektir.
Birincil Anahtarlar
Birincil anahtarlar, bir tablodaki her kaydı benzersiz bir şekilde tanımlayan sütun veya sütun kümeleridir. Birincil anahtarlar oluşturulduğunda, veritabanı yönetim sistemi (DBMS), aynı birincil anahtara sahip mükerrer kayıtların eklenmesini otomatik olarak engeller.
Delphi’de birincil anahtarlar, TTable.PrimaryKey
özelliği kullanılarak oluşturulabilir. Örneğin:
delphi
table.PrimaryKey := ['ID'];
Benzersiz İndeksler
Benzersiz indeksler, birincil anahtarlara benzer, ancak bir tabloda birden fazla benzersiz indeks olabilir. Benzersiz indeksler, belirli sütunlar veya sütun kümeleri için mükerrer değerleri engeller.
Delphi’de benzersiz indeksler, TTable.Indexes.Add
yöntemi kullanılarak oluşturulabilir. Örneğin:
delphi
table.Indexes.Add('Idx_Name', ['Name'], [ixUnique]);
Kontrol Kısıtlamaları
Kontrol kısıtlamaları, veritabanı tablolarına uygulanan kurallardır. Mükerrer kayıtları engellemek için UNIQUE
kontrol kısıtlaması kullanılabilir.
Delphi’de kontrol kısıtlamaları, TTable.Constraints.Add
yöntemi kullanılarak oluşturulabilir. Örneğin:
delphi
table.Constraints.Add('Con_UniqueName', [ckUnique], ['Name']);
Olay İşleyicileri
Olay işleyicileri, veritabanı tablolarında belirli olaylar meydana geldiğinde tetiklenen kod parçalarıdır. Mükerrer kayıtları engellemek için BeforeInsert
olay işleyicisi kullanılabilir.
Delphi’de olay işleyicileri, TTable.Events.OnBeforeInsert
özelliği kullanılarak eklenebilir. Örneğin:
“`delphi
table.Events.OnBeforeInsert := @BeforeInsertHandler;
procedure BeforeInsertHandler(Sender: TObject; var ARecord: TDataset; var AError: Boolean);
begin
if ARecord[‘Name’] in table.FieldByName(‘Name’).Values then
AError := True;
end;
“`