Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как правильно удалять записи из таблицы? Остается пустая строка!!!

6.2K
16 мая 2004 года
terega
15 / / 16.05.2004
Добрый день.

Помогите с удалением записей из таблицы.

Таблица Paradox.
Добавляю записи при помощи Append.

Когда удаляю из таблицы последнюю запись ВСЕГДА остается пустая запись в таблице и никак не удаляется. Все бы ничего, но когда снова заполняешь таблицу эта запись остается пустой и далее.

Из-за чего такое может быть. Удаляю записи Table->Delete();
Сохраняю Post().

Очень прошу помочь. Очень надоела сия бяка!
10
16 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by terega
Из-за чего такое может быть. Удаляю записи Table->Delete();


Если данные отображаются через TDBGrid, надо иметь в виду, что он всегда отображает хотя бы одну строку, даже если нет данных. Наличие или отсутствие данных можно проверить вызовом метода RecordCount() таблицы.

6.2K
16 мая 2004 года
terega
15 / / 16.05.2004
Цитата:
Originally posted by smartsoft

Если данные отображаются через TDBGrid, надо иметь в виду, что он всегда отображает хотя бы одну строку, даже если нет данных. Наличие или отсутствие данных можно проверить вызовом метода RecordCount() таблицы.



Спасибо за ответ, но наверное я не совсем верно сформулировал вопрос. Дело в том что пустая запись остается в таблице и при просмотре ее в Database Desktop она видна как запись в таблице! Как раз DB Grid корректно отображает что записей нет.

Более того, я проверяю
if (DM1->Table->RecordCount < 1)
DeleteBtn->Enabled = false;
то есть гашу кнопку "удалить запись" если таблица пуста (не знаю насколько корректно проверяю, но работает) и кнопка гасится, то есть записей в таблице больше нет.

Но главная проблема, что когда я снова начинаю заполнять таблицу (добавляю первую запись), то выскакивает "Key violation" так не заполнено поле первичного ключа в той самой пустой записи!

Если можно хотя бы подскажите как наиболее корректно добавлять и удалять записи. Может что с этим я мудрю. Сейчас я не могу полностью удалять записи из таблицы, приходится всегда оставлять одну строчку. Может быть никогда и не возникнет ситуация, когда не будет в таблице ни одной записи, но как то неполноценно чувствую себя зная что есть такая, на первый взгляд ерундовая, ошибка.

terega

10
16 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by terega
Дело в том что пустая запись остается в таблице и при просмотре ее в Database Desktop она видна как запись в таблице! Как раз DB Grid корректно отображает что записей нет.


При наличии отсутствия вирусов и прочих злонамеренных программ и черных духов в операционной системе метод Delete() таблицы работает корректно, и удаляет записи верно. Следовательно, если RecordCount() показывает, что записей нет, их действительно нет. Может быть, проблема в DBD, сам я им практически не пользовался предпочитая SQL Explorer. Он использует привычный грид, и правила отображения для него те же.

В твоем случае также можно сделать предположение о наличии фильтра записей таблицы при редактировании ее из программы. Ничего другое в голову просто не приходит.

6.2K
17 мая 2004 года
terega
15 / / 16.05.2004
Наконец-то разобрался. Дело было в моём 'суперзнании' Builder'а :-)

После собственно удаления строки:
Table1->Edit();
Table1->Delete();

находилось следующее:

Table1->Edit();
Table1->Post();

Вот сей Post и мешал. Все работает хорошо. Надеюсь что удаленные записи будут пропадать бесследно :-)

Спасибо за мысли, поэкспериментировал зато по полной.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог