![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему появляется ошибка "Dataset not in edit or inser mode" [D6, Paradox]
MakedoneZ © (2005-01-31 17:40:00)Почму выдает ошибку "Dataset not in edit or inser mode"
Это из-за Table.Post,да?
Он добавляет последнее значение введенное в TDBGrid,но все равно выдает ошибку.
Как исправить?
procedure TfrmWomen.btnSaveAndCloseClick(Sender: TObject);
begin
Table.Post;
{Освобождаем ресурсы}
Table.Close;
Table.Free;
DataSource.Free;
HALT;
end;
MakedoneZ (2005-01-31 21:41:00) [1]Спасибо.
Anatoly Podgoretsky (2005-01-31 21:02:00) [2]MakedoneZ © (31.01.05 20:42) [7]
Это просто пример где грубость, а где нет.
Уже лучше, особенно if. Нудно ли остальное или нет, сказать можешь только ты, но скрывая подробности, ты возможно не получишь более правильного решения.
Вероятнее всего
Table.Close;
Table.Free;
DataSource.Free;
Лишнее, поскольку ты далее закрываешь приложение и все эти действия будут выполнены автоматически.
а те кто отвечают говорята нечего сказать, поскольку подробности скрыты и это единственно корректный ответ, другой же гадания с определенными последствиями. Я бы задумался почему мне так сказали, видимо из-за того, что я где то неправ или не конкретен и мне просто нечего сказать более конкретного. Ну далее по разному, или я попытаюсь уточнить информацию, дать объяснение или уйду обиженным и голодным.
Насчет орфографии, да не по этому я написал это, а чтобы продемонстрировать, как на наезд могут реагировать. Так что считай или шуткой или учебой, по вкусу.
MakedoneZ (2005-01-31 20:42:00) [3]Anatoly Podgoretsky >
Мне нравиться ваш подход к делу :-) :-)
Да вы правы,тут я лишнего сказал,просто вспылчивый.
Halt заменил на Application.Terminate и добавил if( Table.State in [dsEdit, dsInsert] ) then
Table.Post;
А остальное поверьте нужно.
Извиняюсь.
Просто понимаете...часто я задаю вопрос,а те кто отвечают говорят "грубо,примитивно,почему так почему этак",так и неответив на вопрос.
На сколько бы кто-то не был умным,всегда найдеться кто-то умнее.
И что если он будет над вами смеяться? Будет ли вам приятно?
PS. А насчет орфографии я живу в Азербайджане.
И очевидно Русский язык знаю неважно.
Anatoly Podgoretsky (2005-01-31 20:24:00) [4]Нет мы хотели услышать причины такого странного кода, вот тогда может быть подскали правильное решение. На мой взгляд здесь только одна строчка нормальная Table.Close;, но это так предположение, может так и нужно, но весьма сомнительно - особенно HALT, прямой путь к разного рода неприятностям.
Хотя если не хочешь рассказывать, то не рассказывай, а продолжай наезды, в то время когда народ к тебе с душой отнесся.
Можно и мне наезд? А то несправедливо. делитантнадо писать так дилетант.
MakedoneZ (2005-01-31 19:58:00) [5]Я делитант! Не хрена не умею! И вообще не имею права называться программистом. В Delphi вообще ничего не понимаю. Мое дело печатать документы и то не редактировать,а просто набирать текст.Так просто разбираюсь в компьютерах.
Это хотели слышать. Теперь приятно?
msguns (2005-01-31 18:40:00) [6]Каким образом Post освобождает ресурсы ?
И зачем free ? Да еще два раза ?
Очень напоминает как убивали Гришку Распутина: сначала обкормили стрихнином, затем изрешетили пулями, а потом уже бросили под лед в Неву. И все равно, по заключению врачей, он жил еще под водой довольно долго.
MakedoneZ (2005-01-31 18:20:00) [7]Огромное спасибо!
Соловьев (2005-01-31 18:02:00) [8]
> а вместо Halt лучше Application.Terminate, хотя тоже грубо
Тут все грубо :)
где блок try?
Какой смысл генерить таблицу? Уж лучше TQuery.
Desdechado (2005-01-31 17:58:00) [9]Post нужен только после Edit или Insert
поэтому поставь проверку
if( Table.State in [dsEdit, dsInsert] ) then
Table.Post;
а вместо Halt лучше Application.Terminate, хотя тоже грубо