Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
Ayyf
Новичок
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
02.08.2011, 14:22     DBGrid и обновление.   #1
Здравствуйте, у меня есть БД Access, подключено все через ADOTAble.
На форме1 у меня происходит добавление данных в БД через кнопку "обновить", на ней же можно и отредактировать эти данные.
И эти же данные появляются в DBgrid, где заполняюся данные по этим записям, только другие поля.
Запись через DBgride у меня стоит такая:
Код Delphi
1
2
3
4
5
6
7
8
9
procedure TForm4.DBGrid2Exit(Sender: TObject);    
begin
     if DBGrid2.EditorMode or DBGrid2.DataSource.DataSet.Modified then
     begin
       DBGrid2.DataSource.DataSet.Post;
       Form1.ADOTable13.Close;
       Form1.ADOTable13.Open;        
     end;
end;
Все работает и "Обновить" и процедура DBgride. Но проблема в том, что, если данные сначала отредактировать в DBgride, а потом, например, изменив что-то через форму1 и нажав "обновить", выскакивает ошибка: Невозможно найти строку для обновления, данные были изменены ранее.
Не мого понять, что ему не нравится.... Подскажите, пожалуйста, замучала эта ошибка уже))
AdAgent
Объявления
02.08.2011, 14:22    DBGrid и обновление.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2011, 14:22    DBGrid и обновление.

Посмотрите здесь:

Delphi БД Автоматическое обновление DBGrid

Delphi БД DBGrid и его обновление

Delphi БД Обновление DBGrid

Delphi БД Как вывести в DBGrid информацию только по выбранной строке в другой таблице DBGrid?

Delphi БД обновление DBGrid

Delphi БД Обновление данных в DBGrid после изменения данных

Delphi БД Обновление DBGrid при открытии формы

Delphi БД DBGRID сложная проверка на обновление данных

Delphi БД Обновление данных в dbgrid

Delphi БД Dbgrid обновление

alexan0308
Форумчанин
42 / 42 / 2
Регистрация: 07.06.2011
Сообщений: 234
Записей в блоге: 2
03.08.2011, 10:26     DBGrid и обновление.   #2
Цитата Сообщение от Ayyf Посмотреть сообщение
На форме1 у меня происходит добавление данных в БД через кнопку "обновить", на ней же можно и отредактировать эти данные.
И эти же данные появляются в DBgrid, где заполняюся данные по этим записям, только другие поля.
выскакивает ошибка: Невозможно найти строку для обновления, данные были изменены ранее.
Привет! Одной дорогой идем товарищи! )) Я в итоге запретил редактирование в dbgrid , все поля присутствуют в форме. Если таблица большая, то целиком в дбгриде, а формы нет.
MsGuns
Форумчанин
519 / 519 / 3
Регистрация: 04.04.2011
Сообщений: 1,900
03.08.2011, 11:12     DBGrid и обновление.   #3
Ни в коем случае нельзя "пускать на самотек" фиксацию изменений в БД, да еще безо всяких проверок ! (в сабже это делается по уходу фокуса из сетки). Это во-первых.
Во-вторых, работать в эксельной манере с TDBGrid можно (иногда даже нужно), но чтобы эта работа была корректная, надо обрабатывать некоторые события и грида и датасета (OnExit, OnColExit, BeforePost/Insert/Delete, AfterScroll и т.д.), кроме 100% гарантию дает только TIBTable, сам по себе чрезвычайно вредный и нехороший.
Есть еще и в-третьих, и в-четвертых...

Короче, Вам как новичку лучше всего корректировку данных в IB делать через модальные формы, как советует alexan0308

И последнее. Если найдутся овощи, которые будут Вас лечить в плане того, что через "правильные" компоненты (например FIBPlus) грамотное редактирование любой таблицы сделать легко и быстро - сразу плюйте им в глаз !!!
SAMZ
Форумчанин
1248 / 691 / 12
Регистрация: 21.12.2009
Сообщений: 2,225
03.08.2011, 11:38     DBGrid и обновление.   #4
Цитата Сообщение от MsGuns Посмотреть сообщение
Если найдутся овощи, которые будут Вас лечить в плане того, что через "правильные" компоненты (например FIBPlus) грамотное редактирование любой таблицы сделать легко и быстро - сразу плюйте им в глаз !!!
Под овощем не меня имели ввиду?
Я в проектах действительно предпочитаю FB в связке с линейкой FIBPlus, но не вижу связи с поставленным в топике вопросом. Где редактировать в гридах, модальных формах, использовать компоненты редактирования с прямым доступом к БД или нет - это совсем другой вопрос!
MsGuns
Форумчанин
519 / 519 / 3
Регистрация: 04.04.2011
Сообщений: 1,900
03.08.2011, 14:09     DBGrid и обновление.   #5
Код Delphi
1
Под овощем не меня имели ввиду?
Нет, конечно. Удивлен, как Вы могли такое подумать ?

"Овощами" я назвал баклажанов, перцев, огурцов и т.д., научившихся простым бросанием компонент а-ля Фаронов-Архангельский "программировать" базовые программы (и даже сдавшие пару курсачей "преподам") и считающих себя крутыми до такой степени, что могут учить других.

Признаюсь, когда-то тоже думал примерно так, но на первом же "живом" проекте поломал себе ноги-руки, глазы-зубы, борясь с непонятными "чудесами", с завидным постоянством случающимся с базами (неполностью заполненные поля и записи, пропажа целых кусков документов (накладных) и наоборот появление "левых" и т.д.). Долго мучился с обработкой многочисленных событий, пока не плюнул и не сделал ввод и корректировку накладных "модалками".
Конечно, по желанию заказчика неоднократно делал "гридное" редактирование, но мороки с ним всегда было достаточно (имеются в виду базы несколько посложнее телефонного справочника)
Ayyf
Новичок
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
03.08.2011, 15:03  [ТС]     DBGrid и обновление.   #6
Спасибо, буду пробовать)
Yandex
Объявления
03.08.2011, 15:03    DBGrid и обновление.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему
Опции темы

Текущее время: 12:53. Часовой пояс GMT +4.
Поиск по форуму с помощью Yandex и Google
Loading
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.