![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка Событий TTable [D5, Paradox]
MishaS © (2003-03-28 17:02:00)Имеется таблица Paradox :
Id:первичный ключ, autoincrement
Name:Alpha(50)
N: LongInteger
F:Number
Все поля должны быть обязательно заполнены
Редактирование данных выполняется прямо в TDBGrid, который вязан с Table3 . Как предотвратить следующую ситуацию:
создана новая запись, но не все поля в ней заполнены и производится попытка создать ещё одну запись или перейти на одну из уже существующих. Для этого я написал в обработчике
события OnAfterScroll следующий код, но это не помогло
procedure TForm1.Table3AfterScroll(DataSet: TDataSet);
Var R_C:Integer;
Num:Integer;
begin
//ShowMessage("OnBeforeSkroll");
R_C:=Form1.Table3.RecordCount;
Num:=Form1.Table3.RecNo;
Form1.Caption:="T3RecCount="+IntToStr(R_C)+" Num="+IntToStr(Num);
Form1.Caption:="T3RecCount="+IntToStr(R_C)+" Num="+IntToStr(Num);
if (Trim(Table3.FieldByName("Name").AsString)="")or
(Form1.Table3.FieldByName("F").AsFloat<0)or
(Trim(Form1.Table3.FieldByName("F").AsString)="")or
(Form1.Table3.FieldByName("N").AsString="") then
Begin
If(R_C<>0)and(not(Table3.Eof))then
Begin
ShowMessage("Ошибка при перемещении");
Abort;
end;
end;
end;
MsGuns (2003-03-28 17:40:00) [21]Причем здесь AfterPost, усли надо проверка ДО (Before) ?
MishaS (2003-03-28 17:29:00) [22]Я пробовал всёэто запихать в onAfterPost, но это не помогло.
Mike Kouzmine (2003-03-28 17:26:00) [23]А если raise Exception.Create("ОШИБКА")
Leran2002 (2003-03-28 17:22:00) [24]Попробуй запихать этоже в OnAfterPost - до сохранения записи...
MishaS (2003-03-28 17:16:00) [25]Я попробовал, но это не помогло
procedure TForm1.Table3BeforeInsert(DataSet: TDataSet);
begin
if(Table3.FieldByName("Name").isNull)or
(Table3.FieldByName("N").isNull)or
(Table3.FieldByName("F").isNull)
then
Begin
ShowMessage("Ошибка");
Abort;
end;
Mike Kouzmine (2003-03-28 17:05:00) [26]BeforeInsert
if Pole1.isNull or Pole2.isNull .... then Abort; Или что-то в этом роде.