![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как не вставлять пустую запись? [D7, MSSQL]
Санёк © (2004-04-22 09:11:00)В конструкции:
with DataSet do if State in [dsInsert, dsEdit] then Post;
есть одно, но: вставляется пустая запись, как можно этого избежать, ведь DataSet знает, что она пустая, как это определить мне.
Санёк (2004-04-22 12:48:00) [1]Во вроде работает:
with DataSet do
if (State = dsEdit) or
( (State = dsInsert) and Modified ) then Post;
Всем спасибо.
stud (2004-04-22 12:20:00) [2]так если ты ничего в поля не вносил значит они не изменялись. у него же вроде есть св-во модифед или что-то подобное.
Санёк (2004-04-22 12:13:00) [3]Ну а как грид узнает? Он не знает же какие ключевые поля?
Соловьев (2004-04-22 11:16:00) [4]
> сохраняется, т.е. он как то узнает, что она новая, как?
if State in [dsInsert] then
stud (2004-04-22 11:13:00) [5]with DataSet do if State in [dsInsert, dsEdit] then Post;
ты постиш любую запись даже пустую. проверяй, например по значениям ключевых полей если они пустые значит не пост а кансел
Санёк (2004-04-22 10:33:00) [6]Вот так сделано в DevExpress, но как сделать на стандартном датасете
Result := EditState * [dceInsert, dceEdit] <> [];
Result := Result and (Provider.FEditingRecordIndex <> cxNullEditingRecordIndex);
Result - Это типа стоит вставлять или нет
Johnmen (2004-04-22 09:18:00) [7]>вставляется пустая запись,
Что говороит о безграмотно спроектированной таблице...
Санёк (2004-04-22 09:17:00) [8]Это по полю, а как узнать что новая запись? Ведь в гриде мы добавляем её, и если ничего не напишем в ней то она не сохраняется, т.е. он как то узнает, что она новая, как?
DenK_vrtz (2004-04-22 09:15:00) [9]Поставить у поля Required=true или в описании таблицы у поля not null
Reindeer Moss Eater (2004-04-22 09:14:00) [10]TField.IsNull