|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2007, 22:07 | #1 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Потеря данных в Grid
Неожиданно возникла такая проблема. Приложение работает с базой через IBTable, данные отображаются в DBGrid. Так вот - добавляю строку, вношу данные в Gridе например в поле Field_1, добавляю еще строку вношу данные снова в поле Field_1 и т.д. Затем возвращаюсь на первую строку, добавляю данные в поле Field_2, перехожу на следующую
строку, и добавляю данные в поле Field_2 и т.д. Вроде бы все нормально, в Gride видно все что я внес, но после повторного открытия приложения данные остаются только в поле Field_1. Не пойму в чем тут проблема. Заранее благодарен за помощь.
Уже Чему-то научился Но этого мало
|
26.07.2007, 22:19 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Грид тут вообще ни при чём. Данные либо добавляются в таблицу, либо нет. А Грид лишь ее отображение. Вообще то, добавлять данные через Грид -последнее дело. И ДБНавигатор - это фигня.
Пишем Table1.Insert; Table1.FieldByName('Field_2').AsStr ing:='Привет'; Table1.Post; ... и уж после Post-а данные точно не убегут... |
26.07.2007, 22:40 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Дело в том что данное приложение уже в эксплуатации около года а эта бяка вылезла только сейчас, поэтому кординально менять логику программы не хотелось бы. Насчет того что после поста данные не пропадут - согласен, но дело в том что если после этого поста добавить
данные в эту же строку то они волшебным образом кудато улетучиваются. Наверное дело в транзакциях, пробовал commit, все равно такая же ерунда. Если строку запостить, открыть приложение заново, то добавляй в строку все что угодно, любым способом, никуда ничего не денется. А вот если строку запостить и тутже добавить в нее данные то после нового открытия приложения данных то нет - Че за фокусы?
Уже Чему-то научился Но этого мало
|
26.07.2007, 22:55 | #4 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
А если написать
procedure TForm1.Table1AfterEdit(DataSet: TDataSet); begin Table1.Edit; Table1.Post; end; .. то все равно то же самое? |
26.07.2007, 23:11 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Не знаю завтра попробую, скажу.
Уже Чему-то научился Но этого мало
|
27.07.2007, 18:14 | #6 | |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Цитата:
До открытия таблицы ....... IBTable.CachedUpdates:=True; ...... Вношу данные в грид, добавляю несколько строк, вношу в них данные... ....... И при закрытии формы IBTable.ApplyUpdates; После повторного открытия приложения все данные на месте. Пока меня это устраивает, что будет дальше посмотрим. Кстати данные тоже никуда не пропадают, если не кэшировать данные, а после добавления каждой записи делатьTable.Refresh, после этого можно добавлять данные в эти записи в любое время до закрытия таблицы. Правда Table.Refresh занимает некоторое время да и грид надо перерисовывать.
Уже Чему-то научился Но этого мало
|
|
27.07.2007, 18:18 | #7 | |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Цитата:
Насчет ДБнавигатора на самом деле - фигня.
Уже Чему-то научился Но этого мало
|
|
27.07.2007, 18:34 | #8 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
IBTable - представляет данные из таблицы БД.
DBGrid - отображает данные из полей БД в табличной форме. Т.е. результат (таблицу) Вы видите в Gridе, а работаете непосредственно с Table.
Life is too short, play more...
Как правильно задавать вопросы |
29.07.2007, 00:17 | #9 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Если есть возможность, сооруди SQL монитор. Проблема похоже в том, что у тебя не подтверждается транзакция. После выполнения запроса в листинге SQL монитора, дожен идти Commit. Если транзакция не подтвержлена, она откатывается.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
потеря параметров при вызове формы из dll... | Roof | Общие вопросы Delphi | 4 | 22.08.2008 22:08 |
Потеря данных при изменении рамера раздела | Drandulet | Софт | 5 | 06.07.2008 07:52 |
Grid | nimf | Общие вопросы Delphi | 2 | 22.04.2008 13:16 |
Потеря переменной при выходи из процедуры | Kaz | Помощь студентам | 3 | 07.06.2007 03:24 |
Help!Grid и Edit | Дамир | БД в Delphi | 1 | 16.02.2007 02:05 |