Форум программистов, компьютерный форум CyberForum.ru

Delphi и базы данных

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.88
Ayyf
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
#1

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

02.08.2011, 14:22. Просмотров 3263. Ответов 5
Метки нет (Все метки)

Здравствуйте, у меня есть БД 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 и нажав "обновить", выскакивает ошибка: Невозможно найти строку для обновления, данные были изменены ранее.
Не мого понять, что ему не нравится.... Подскажите, пожалуйста, замучала эта ошибка уже))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2011, 14:22     DBGrid и обновление.
Посмотрите здесь:

Обновление DBGrid - Delphi БД
Здравствуйте! Обновить дбгрид, чтобы фокус остался в той же ячейке. При двойном клике у меня происходит обновление информации в ячейки по...

Обновление DBGrid - Delphi БД
Ребят, проблема такая: есть форма с DBGrid куда выводится база, есть вторая форма на которой реализовано добавление записи в базу! Запись...

Dbgrid обновление - Delphi БД
ВОт есть код unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

обновление DBGrid - Delphi БД
Всем доброго вечера. Возник вопрос. Есть 1 DBGrid и 2 DataSource. Как сделать как чтобы сразу грид выводил значения одного сорса, а...

Обновление данных в DBgrid - Delphi БД
Доброй ночи! Delphi + Access 2010. Забегая вперед, скажу, что вычисляемые поля сделанные в БД - это обдуманный подход, который в моем...

Обновление данных в dbgrid - Delphi БД
Как обновить данные в дбгриде после добавления? вот код добавления Form1.ADOQuery1.Close(); Form1.ADOQuery1.SQL.Clear(); ...

Автоматическое обновление DBGrid - Delphi БД
Здравствуйте! Подскажите, пожалуйста, как осуществить автоматическое обновление таблицы на форме, если к БД ххх.mbd подключено несколько...

DBGrid и его обновление - Delphi БД
доброе время суток! возникла проблема. плагином из стороннего приложения выбираю необходимые данные, которые помещаются в таблицу на...

Обновление DBGrid при открытии формы - Delphi БД
Добрый вечер! Как сделать, что бы записи в DBGrid обновлялись автоматически при открытии формы, или хотя бы при нажатии на кнопку...

DBGRID сложная проверка на обновление данных - Delphi БД
Здравствуйте. Есть DBGRID DATASOURCE ADOQUERY всё связанно между собой. Данные берутся из db файла Таблица выгляит след. образом: ...


Искать еще темы с ответами

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

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

И последнее. Если найдутся овощи, которые будут Вас лечить в плане того, что через "правильные" компоненты (например FIBPlus) грамотное редактирование любой таблицы сделать легко и быстро - сразу плюйте им в глаз !!!
SAMZ
1260 / 703 / 13
Регистрация: 21.12.2009
Сообщений: 2,255
03.08.2011, 11:38     DBGrid и обновление. #4
Цитата Сообщение от MsGuns Посмотреть сообщение
Если найдутся овощи, которые будут Вас лечить в плане того, что через "правильные" компоненты (например FIBPlus) грамотное редактирование любой таблицы сделать легко и быстро - сразу плюйте им в глаз !!!
Под овощем не меня имели ввиду?
Я в проектах действительно предпочитаю FB в связке с линейкой FIBPlus, но не вижу связи с поставленным в топике вопросом. Где редактировать в гридах, модальных формах, использовать компоненты редактирования с прямым доступом к БД или нет - это совсем другой вопрос!
MsGuns
527 / 527 / 6
Регистрация: 04.04.2011
Сообщений: 1,936
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 и обновление.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru