Hi liebe Delphianer,
Ich frage mich nur wie die anderen das lösen?
Was passiert wenn ihr einen kunden (stammdatensatz!) aus der Tabelle löscht? Dann existiert möglicherweise noch ein "verwaister" Datensatz in der Rechnungstabelle, die mit ihrem Fremdschlüssel auf einen nun nicht mehr vorhandenen Kunden zeigt.
Ich weiß das das bei Paradox mit der Referentiellen Integrität geht, aber bei Access2000 hab ich schwierigkeiten.
HAb das ganze in Ordner Delphi Anfänger diskutiert und bräuchte Hilfe bei folgendem Code!
<pre>procedure TForm1.KundenTableBeforeDelete(DataSet:TDataset);
var aKey :String;
DelQuery:TQuery;
begin
// Kunde der gelöscht wird
aKey:=DataSet.FieldByName('e_key').AsString;
// Löschabfrage generieren und die Datensätze löschen, bei denen
// e_Key=aKey ist
DelQuery:=TQuery.Create(Self);
with DelQuery do
try
SQL.Add('DELETE FROM "..\detailtabelle"');
SQL.Add('WHERE e_key=:loeschkey');
Params[0].AsString:=aKey;
ExecSQL;
finally
Free;
end; // with DelQuery
end; // TForm1.KundenTableBeforeDelete </pre>
Ich habe ein problem bei <pre>Params[0].AsString:=aKey; </pre>
den bei ADOQuery gibts das Params nicht, und ich kann irgendwie nicht auf die parameters zugreifen (weiß auch den Code nicht!)
WER HILFT MIR?
BINE :_)
Ich frage mich nur wie die anderen das lösen?
Was passiert wenn ihr einen kunden (stammdatensatz!) aus der Tabelle löscht? Dann existiert möglicherweise noch ein "verwaister" Datensatz in der Rechnungstabelle, die mit ihrem Fremdschlüssel auf einen nun nicht mehr vorhandenen Kunden zeigt.
Ich weiß das das bei Paradox mit der Referentiellen Integrität geht, aber bei Access2000 hab ich schwierigkeiten.
HAb das ganze in Ordner Delphi Anfänger diskutiert und bräuchte Hilfe bei folgendem Code!
<pre>procedure TForm1.KundenTableBeforeDelete(DataSet:TDataset);
var aKey :String;
DelQuery:TQuery;
begin
// Kunde der gelöscht wird
aKey:=DataSet.FieldByName('e_key').AsString;
// Löschabfrage generieren und die Datensätze löschen, bei denen
// e_Key=aKey ist
DelQuery:=TQuery.Create(Self);
with DelQuery do
try
SQL.Add('DELETE FROM "..\detailtabelle"');
SQL.Add('WHERE e_key=:loeschkey');
Params[0].AsString:=aKey;
ExecSQL;
finally
Free;
end; // with DelQuery
end; // TForm1.KundenTableBeforeDelete </pre>
Ich habe ein problem bei <pre>Params[0].AsString:=aKey; </pre>
den bei ADOQuery gibts das Params nicht, und ich kann irgendwie nicht auf die parameters zugreifen (weiß auch den Code nicht!)
WER HILFT MIR?
BINE :_)
Comment