Hi,
ich arbeite in vielen Großprojekten mit der
ADO und verschiedenen
SQL-Servern. Die
ADO hat so ihre Eigenheiten mit Postfehler unlustigen Löschfehlern.
Meine Lösung die bei tausenden Kunden nach Jahren des reifens problemfrei läuft ist, das ich mit eigene Komponenten gebastelt habe, die diese ganzen Eigenheiten abfangen:
z.B. gibt es die PostError, dort legt man eine Funktion hin, die das SQLStatemant manuell zusammenbastelt und dann via Command Komponente abschickt.
Dies ist aber nicht trivial und geht weit über die Möglichkeiten des Formum hinaus
Nur mal damit man den Anfang findet:
procedure TADOTable.PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
.....
if State=dsInsert then begin
if Trim(xInsertField)<>'' then begin
c.CommandText:='INSERT INTO '+c1+XADOTable.TableName+c2+' ('+xInsertField+') VALUES ('+xInsertValue+')';
....
c.CommandText:='UPDATE '+ADOTable.TableName+' SET ....'+xUpdate+' WHERE '+ADOTable.FieldDefs[0].Name+'='+MakeSQLValue(FieldByName(XADOTable.Field Defs[0].Name));