![]() |
|
![]() ![]() ![]() |
|
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
После модификации таблицы и сохранения полученных данных, обновляю ее.
Table1.Append; Table1.Post; Table1.Refresh; таблица отображаемая в компоненте DBGrid - обновляется. После чего я сново открываю эту таблицу в другом окне для чтения и таблица оказывается прежней, т.е. не обновленной. Почему? ![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вместо Refresh попробуй сделать
и посмотри что показывает? -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Делал я так и все равно ничего не получается.
Сама база обновляется, но при этом последующее ее открытие в новом окне выдает старую немодифицированную таблицу. Это сообщение отредактировал(а) Elyad - 24.10.2006, 08:29 |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Что-то похоже на битый индекс, или у тебя сама база не переиндексирует таблицу, попробуй индексы пересоздай вручную.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Почему сама база не переиндексирует таблицу? Из-за чего это? И поясни, please, что я должен сделать, чтобы решить эту проблему(поподробней, please).
![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Elyad, а ты кэширование используешь? Если, то выполняй:
1. Table1.ApplyUpdates; //сохраняй кэш таблицы. 2. Table1.FlushBuffers; //(принудительное физическое сохранение данных, т.к. винда всё ещё держит данные в своём кэше). |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Спасибо за совет, я вечером попробую.
![]() |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Elyad,
Скорее всего у тебя [email=http://forum.vingrad.ru/index.php?act=Help&CODE=01&HID=17]Ошибка в 17 строке[/email]. Без знания СУБД - ничего не скажешь. |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Akella
Вчера попробовал применить ваш совет, но прога выдает ошибку (не помню точно какую, что-то типа кэширования ни применяется). Хочу пояснить свою проблему: Когда я редактирую таблицу и сохраняю сделанные изменения, то и в таблице и компоненте DBGrid все отображается правильно. Но после я создаю 2 - дочернее окно, которое также содержит Table1, DataSource1, DBGrid1 и хочу,чтобы в этом окне также отображалась таблица с новыми изменениями, но не получается. В новом окне пишу следующее: Table1.Close; Table1.DataBaseName:="Name"'; Table1.TableName:="Towns"; Table1.Open; и получаю старые не измененые данные. ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Ставлю вашим телепатам оценку - 5(отлично)
![]() На счет " и в таблице и в компоненте" поясняю: имею ввиду, что данные действительно сохраняются в самой таблице и отображаются в компоненте. Теперь тем кто просил "немного кода" ![]()
В форме fd содержатся компоненты DBGrid, Table, DataSource При создании формы Table1.Close; Table1.DataBaseName:='' NAME"; Table1.TableName:='Town'; Table1.Open; Смысл состоит в том, что user вводит необходимое число добавлений в таблицу и добавляет, каждый раз подтверждая или отменяя сделанные изменения. А после нажатия кнопки Button2 появляется окно в котором отображена эта же таблица с сделанными изменениями. Это сообщение отредактировал(а) Elyad - 25.10.2006, 10:01 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Elyad, отредактируй сообщение и возьми код в теги "КОД".
И вот ещё http://emanual.ru/get/668/ Добавлено @ 09:53 Elyad, не вижу FlushBuffers.
Это сообщение отредактировал(а) Akella - 25.10.2006, 09:53 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
я бы на твоём месте использовал не DBGridKeyPress, а OnKeyDown
Добавлено @ 09:58 только я тебе на Delphi код даю Это сообщение отредактировал(а) Akella - 25.10.2006, 09:59 |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
На счет FlushBuffers я уже отмечал, что он выдает об ошибке.
Прочитав по ссылке я нашел, что для запуска приложения необходимо как min 512 байт оперативки, а у меня только 256. Может в этом проблема? Я описал еще такую функцию:
и получил такую ошибку stack overflow. т.е. в памяти не хватает места. Значит в этом, что ли ошибка ![]() |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
дамую, что так нельзя
Добавлено @ 10:38 мне кажеться, что ты реализуешь неверный подход к редактированию/добавлению данных Добавлено @ 10:38
убери Добавлено @ 10:45
может мегабайт. и про какой приложение ты имел ввиду? Это сообщение отредактировал(а) Akella - 25.10.2006, 10:38 |
||||
|
|||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
А вы считаете, что недостаток памяти не может влиять на своевременное обновление памяти? ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а напиши-ка нам параметры компьютера, на котором работает программа.
|
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Точно сказать не могу, но знаю что оперативки 256.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Ответ 256 мегабайт. А на счет первичного индекса я сегодня вечером посмотрю.
![]() |
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Elyad,
1.
2. При активации 2-й формы делай у ее датасета requery. Криво, но сработает. А правильно: иметь датамодуль и в нем 1 датасет на 1 таблицу для всех форм, которые эту таблицу используют. Т.е. RTFM. |
|||
|
||||
Elyad |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
SergeBS
Спасибо за совет, сегодня попробую и этот метод ![]() А так я проблему уже решил: оказывается я открывал таблицу в новом окне при ее создании А надо таки при каждой ее активизации. ![]() Поэтому тему закрываю!!! Всем, кто участвовал в обсуждении этой темы ----- большое спасибо !!! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |