|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2009, 10:19 | #1 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
Ошибка при заполнении таблицы
Всем здрасьте!
Возникла селдующая проблема, не могу понять от чего! При заполнении DBGrid бывает вылетает ошибка (скрин ошибки ниже), Ошибка не постоянная, но если произошла - то всё! Restart! . Когда хочешь чтобы вылетела эта ошибка, ее как след простыл. Буду благодарен за любой совет! Да и, пользуясь случаем, как мне отключить перемещение по DBGrid с помощью Tab? Вот скрин ошибки:
Была бы цель - и всё получится!
|
13.01.2009, 13:45 | #2 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Что за база? Через какие компоненты и как вы к ней обращаетесь?
Могу предположить. Если для идентификации изменяемой записи используется не уникальный ключ, а сумма прежних значений полей, то, в момент отсылки серверу запроса на изменение, записи с такими значениями на сервере может уже не существовать так как они изменены другим пользователем. Об этом и говорит сообщение программы. Вообще-то в клиент-серверных приложениях при обращении через TQuery и его разновидности это не может быть критической ошибкой и вызывать зависание. Не прошло и не прошло. Бог с ним. Почему это вешает вашу программу - не знаю. По второму вопросу. Свойства DBGrid -> Options -> dgTabs = False
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
13.01.2009, 16:27 | #3 | |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
Обыкновенная локальная MS Access... В качестве ключей всех таблиц идет тип счетчик. Все данные выводятся с помощью запросов через AdoQuery.
Цитата:
Буду искать, спасибо за внимание...
Была бы цель - и всё получится!
|
|
13.01.2009, 17:06 | #4 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
а можно посмотреть как вы добавляете и какой запрос в AdoQuery?
|
13.01.2009, 19:36 | #5 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
На примере таблицы с отчетом по внесению оплаты студентом:
Вот запрос: Код:
Код:
Я сейчас пытался специально сделать ошибку и сделал! Допустим я добавляю новую строку, заполняю какое-нибудь поле, нормально, заполняю другое и щелкаю по другому полю. Вылетает сообщение, при закрытие вылетает снова и так бесконечно! Приходиться убивать процесс! Открываю программу снову, открываю туже таблицу, и строка там есть с теми данными которые я ввел... Строка соответствует запросу, т.е. связывающее поле заполнено верно! Ошибка вылетает тогда, когда ты знаешь что делать чтобы она вылетела! А так программа работает, все заполняется как нужно, связки все на месте! Но все же ошибка через чур критическая, надо найти в чем проблема... Тааак!!! Пока писал это сообщение, параллельно искал решение проблемы, несколько раз подряд выполнил абсолютно одинаковые действия при которых вылетала ошибка, после по событию onAfterEdit компонента tOplataQuery добавил сохранение: Код:
Жду комментарии, если кто еще сталкивался с такой проблемой... Вот еще раз скрин ошибки:
Была бы цель - и всё получится!
|
15.01.2009, 10:07 | #6 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
Продолжу тему.... Почти во всех таблицах проблема решилась, но вот только "почти"! Ошибка была найдена в одной большой таблице, и метод, описанный выше не помогал... Искал решение... Проблема решилась обновление таблицы после сохранения, т.е. по событию AfterPost компонента AdoQuery:
Код:
Спасибо за внимание...
Была бы цель - и всё получится!
|
26.01.2009, 01:16 | #7 |
Пользователь
Регистрация: 24.01.2009
Сообщений: 38
|
Существует некоректное добавление даных встроеными средствами АДО.
Для повышения надежности советую получать даные с помощью отдельного диалога и вставлять их запросами типа INSERT/UPDATE. Сдесь же помагает если ввести все даные сразу.... или для каждого поля в таблице (это надо сделать с помощью Access) присвоить значение по умолчанию!!! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при добавлении новой записи через форму подставлолось значение из другой таблицы | Baxxter | Microsoft Office Access | 1 | 07.01.2009 22:23 |
Ошибка при попытке вывода полей из таблицы в ORACLE | older | Общие вопросы Delphi | 2 | 04.06.2008 17:26 |
Возник вопрос при заполнении массива.. | SnakeMan | Помощь студентам | 8 | 15.01.2008 12:31 |
Создание связной таблицы при помощи SQL | Worms | БД в Delphi | 1 | 04.12.2007 16:18 |
Связанные таблицы - проблема при обращении к полю БД | nataly_ukr | БД в Delphi | 7 | 13.11.2007 10:47 |