Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка Событий TTable [D5, Paradox]


Страницы:   1 2

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; Или что-то в этом роде.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо