![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемма с последней строкой в Query [D5, Paradox]
NIKI © (2002-08-20 12:32:00)Мастера, подскажите.
Проблема в том, что:
В query получены данные (SQL - запрос).
Одно из полей имеет тип Integer.
При перемещении в пределах полученного набора всё нормально(При этом разрешено редактирование записей).Как только курсор достигает последней записи и я снова нажимаю кнопку "Вниз"(должна получиться пустая строка), сразу всё виснет
и сообщение "is not a valid integer value".Причина, наверное, в том , что поле ещё пустое, а он пытается сразу причилить его к integer.
Есть ли св-во (или другой способ) запретить у Query выходить за пределы полученного набора (чтобы курсор нельзя было опустить ниже последней записи).
Nina (2002-08-20 13:32:00) [1]може автоинкременное поле?
NIKI (2002-08-20 13:04:00) [2]А впрочем, придумал.
Переменная "а" нужна была для поиска. Буду просто искать по значению DBGrid(переводить формат только при поиске).
А SysUtils.Abort помог. Всем спасибо. Это я стормозил.:)))
Reindeer Moss Eater (2002-08-20 12:57:00) [3]Проверяй в обработчике State набора данных.
if not (DBGrid.DataSource.DataSet.State in dsEditModes) then
преобразовывать
else
не делать этого;
NIKI (2002-08-20 12:57:00) [4]А как это избежать???
Reindeer Moss Eater (2002-08-20 12:53:00) [5]Не переменная, а обработчик события.
NIKI (2002-08-20 12:51:00) [6]Наверное это исключение вызывает переменная а, пытающаяся сразу перевести пустое значение в число???
NIKI (2002-08-20 12:50:00) [7]Вычисляемых полей нет.
Есть DBGrid, который связан с этим полем
Afteropen-> DBEdit1.datasourse:=Datasourse1;
DBEdit1.datafield:=num;
А с DBEdit1 связана переменная а:integer на событие OnChange;
Reindeer Moss Eater (2002-08-20 12:47:00) [8]Наверное у тебя есть calculated fields, значения которых расчитываются на основе этого целочисленного физического поля
Val (2002-08-20 12:42:00) [9]хм, если НД редактируемый, то подобная ошибка может возникнуть при попытке поста записи, а у вас он вроде как еще не происходит.
странно это...
..запретить у Query выходить за пределы полученного..
для этого нужно запретить Insert, можно потупить так: в BeforeInsert НД вызвать SysUtils.Abort;
asafr (2002-08-20 12:40:00) [10]В таблице этому полю разрешить значение NULL