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