![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вылетает
div © (2003-06-19 13:55:00)Здравствуйте. Имеется база Рaradox, вызываю Edit, потом пытаюсь записать - ругается "dataset not in edit or insert mode"
with DataModule1.Chet do begin
if not CanModify then
begin
ShowMessage("Редактирование запрещено");
FormWork.Bit_D.Visible:=False;
end
else
begin
s:=StrToFloat(Edit3.Text);
Edit; // перевожу в режим редактирования
if State in [dsEdit, dsInsert] then ShowMessage("Испавлять можно!!");
// Специально вставил, сообщение выдается, т.е вроде все в норме, но после строки
FieldByName("SUM_N").asFloat:=S;
// и выскакивает ошибка
// dataset not in edit or insert mode
FieldByName("SUM_V").AsFloat:=FieldByName("Ost_v").AsFloat+s;
Post;
FlushBuffers;
end;
end;
Т.е. судя по всем проверкам все должно быть в норме.
В других программах такого нет. Помогите, совсем запутался.
Соловьев (2003-06-19 14:56:00) [21]
> Это TTable, в ней > 140 тыс. строк
мда.... а зачем же столько?
а активна хоть? Active=true?
div (2003-06-19 14:52:00) [22]Это TTable, в ней > 140 тыс. строк
DevMaster (2003-06-19 14:48:00) [23]1. Одна из причин(возможно)
Обрати внимание на запись!!! Есть ли запись хоть одна в базе???!!! если нет то нужно писать Insert
if Table1.CountRec > 0 then ~чтото в этом роде
Edit else Insert(Append)
Max Zyuzin (2003-06-19 14:47:00) [24]>div © (19.06.03 13:55)
А что у нас из себя представляет DataModule1.Chet ? TQuery или TTable
div (2003-06-19 14:44:00) [25]Так у меня ее раньше и не было. Это потом, чтобы удостовериться.
Соловьев (2003-06-19 14:39:00) [26]убери тогда эту строчку:
if State in [dsEdit, dsInsert] then ShowMessage("Испавлять
> можно!!");
div (2003-06-19 14:25:00) [27]а зачем,
if State in [dsEdit, dsInsert] then ShowMessage("Испавлять
> можно!!");
я это просто вставил, чтобы себя проверить
Соловьев (2003-06-19 13:59:00) [28]
> редактирования
> if State in [dsEdit, dsInsert] then ShowMessage("Испавлять
> можно!!");
> // Специально вставил, сообщение выдается, т.е вроде
> все в норме, но после строки
> FieldByName("SUM_N").asFloat:=S;
> // и выскакивает ошибка
> //dataset not in edit or insert mode
> FieldByName("SUM_V").AsFloat:=FieldByName("Ost_v").AsFloat+s;
> Post;
> FlushBuffers;
> end;
а где begin после then