Einzelnen Beitrag anzeigen

urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#5

Re: DBgrid;überprüfen des Fieldinhalt vor dem Übernahme

  Alt 7. Feb 2005, 12:05
Hallo khalilazzz,

wie r_kerber geschrieben hat, ist Dein ursprünglicher Code im OnKeyDown-Event fehl am Platz (der ursprüngliche Code gibt für mich ehrlich gesagt gar keinen Sinn).

Was Du tun musst, ist, im OnBeforePost-Event Dein Feld zu prüfen:
Delphi-Quellcode:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
  // (Angenommen, das zu prüfende Feld heißt Feld1)
  If Table1Feld1.IsNull or (Table1Feld1.AsString = '') then abort // bzw. Fehlermeldung ausgeben
end
Damit prüfst Du, ob das Feld NULL ist oder einen leeren String hat.
Wenn Du die Felder nicht persistent hinzufügen willst (über den Feldeditor), musst Du mit Table1.Fields[n] arbeiten (evtl. in einer Schleife abarbeiten).
Diese Abfragen prüfen den aktuellen Wert in Deinen Komponenten, nicht den Wert in der DB.
Vielleicht kommt Dein Problem daher, dass TField.Text nicht den Inhalt des Feldes, sondern den Text angibt, der in einem Steuerelement angezeigt wird (z.B. wird bei einem Blob-Feld nicht der Inhalt angezeigt, sondern "(blob)" oder "(BLOB)"). Ich weiß nicht genau, was bei einem leeren Feld angezeigt wird...

Hoffe das hilft Dir weiter
Urs
  Mit Zitat antworten Zitat