Как вы решаете проблему пустой таблицы БД

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Как вы решаете проблему пустой таблицы БД

Сообщение Ser-Robotiaga » 14.03.2010 (Вс) 19:19

Уважаемые форумчане, столкнулся с такой проблемой.
Когда в таблице БД удаляется последняя запись, т.е. таблица становится пустой, то возникают всякие глюки, связанные с отсутствием текущей записи. В частности ошибки вылазят если при вводе первой записи в пустую таблицу пользователь передумает и даст команду "Отмена", которая вызовет метод CancelUpdate. А так как нет текущей записи, происходит ошибка.
Пока как временный вариант запрещаю удаление последней записи.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как вы решаете проблему пустой таблицы БД

Сообщение alibek » 14.03.2010 (Вс) 21:26

Ser-Robotiaga писал(а):Когда в таблице БД удаляется последняя запись, т.е. таблица становится пустой, то возникают всякие глюки, связанные с отсутствием текущей записи.

Глюки связаны только с кривыми руками программиста.
Проверять на EOF/BOF нужно независимо от того, пустая таблица или не пустая.
Lasciate ogni speranza, voi ch'entrate.

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Как вы решаете проблему пустой таблицы БД

Сообщение Ser-Robotiaga » 14.03.2010 (Вс) 23:40

Спасибо за критику. :oops:
Проанализировал как ведут себя свойства BOF и EOF.
Что интересно, при пуске программы (когда таблица пуста) они равны true. Если я ввел запись, а потом удалил, а потом опять ввожу, то свойства BOF и EOF равны false. А когда BOF и EOF равны false вызов метода AddNew вызывает ошибку.
Уточняю вопрос: как правильно удалить последнюю запись, что бы BOF и EOF были равны true?

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Как вы решаете проблему пустой таблицы БД

Сообщение Ser-Robotiaga » 15.03.2010 (Пн) 19:15

Только лег спать, сразу осенило. Метод Refresh :!: . Проверил и действительно, если его применить после удаления последней записи, вроде все нормально. Пока глюков не обнаружил. И что интересно, всеравно после удаления последней записи и метода Refresh свойства BOF и EOF равны false. Но несмотря на это ошибок уже не возникает.

elsmir1973
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 18.05.2010 (Вт) 13:46

Сообщение elsmir1973 » 18.05.2010 (Вт) 14:13

Изначально Refresh нужно было использовать)
если знаешь ЗАЧЕМ преодолеешь любые КАК (с) Продажа квартир

Ser-Robotiaga
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 19.01.2007 (Пт) 0:45

Re: Как вы решаете проблему пустой таблицы БД

Сообщение Ser-Robotiaga » 29.05.2010 (Сб) 23:25

Изначально он и так использовался. Весь фикус в том, что когда таблица становится пустой, его надо использовать снова.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 242

    TopList