Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Позиционирование в DBGrid после Insert [D6, IB6.x]


Страницы:   1 2 3

Pike ©   (2002-04-04 23:49:00) 

Хотелось бы узнать, как решают эту проблему другие.
Проблема в том, что при добавлении новой записи в TQuery, DBGrid не корректно отображает последовательность записей, пока не переоткроешь TQuery. В свое время я решил эту проблему с помощью обработчиков событий BeforePost и AfterPost. Но до сих пор остаюсь неудовлетворенным – люблю изящные решения. А тут еще столкнулся с похожей проблемой у TIBQuery. Может есть более красивые решения, возможно я чего-то не допонимаю в этих Query? А может существуют более проработанные Query-компоненты? Подскажите, плиз.


Leonid1   (2002-04-17 00:02:00) [1]

На сайте http://fibplus.com.ua/rus/news.htmlвыложены исправления к последней версии FIBPlus 4.6 - библиотеки всех времен и народов


Pike   (2002-04-16 19:00:00) [2]

Зря, ребята. Думаю все было по теме - и FIBPlus, и DBGridEh. Все это связано с заявленой здесь темой о проблеме в BDE и IBX с Ggid-ом и Insert-ом. Всем, привет! И огромное спасибо за море полезной информации.
PS: Кстати, я хотел начать новую ветку по вопросам с FIBPlus, но как то жалко стало рушить обсуждение.


Alexandr   (2002-04-16 11:37:00) [3]

а что такое?

P.S. Я модератора не боюсь, почему-то...


Slava   (2002-04-16 11:07:00) [4]

Ну всё! Жди МОДЕРАТОРА.


Alexandr   (2002-04-16 10:59:00) [5]

Да.
Но мне, однако, совсем не нравится, что в ветках так далеко уходят от исходного поста.
Что, людям влом новую ветку начать?


Slava   (2002-04-16 10:52:00) [6]

> alexandr

Ветка одна, а сколько в ней помощи неоценимой оказано было. И стольким людям...
:о)))))))))))


alexandr   (2002-04-16 06:38:00) [7]

ну его обычно все берут здесь

http://www.farpost.com/personal/dmitryb


Blond   (2002-04-15 21:36:00) [8]

To Alexandr:
> DBGridEh - бесплатный, хороший.
Подскажите плз новичку, где взять.
Заранее спасибо


Alexandr   (2002-04-15 07:13:00) [9]

DBGridEh - бесплатный, хороший.
Остальные Очень сильно платные


Pike   (2002-04-14 21:30:00) [10]

Кстати, вопрос. В FIBPlus есть логический тип, а как сделать в Grid-е чекбоксы? И вообще, кто подскажет хорошую библиотеку компонентов визуального представления для баз данных?


Pike   (2002-04-14 15:55:00) [11]

`Очень советую. Сам только вот узнал про него. Попробовал кайф!
Вся информация, о том где его взять, здесь в этой теме.


kaif   (2002-04-14 02:29:00) [12]

>Pike ©
Хорошо бы попробовать как-нибудь FIBPlus. Я с ними не работал.


Pike   (2002-04-14 00:01:00) [13]

> kaif © (13.04.02 22:11)
Согласен. Такое решение более красивое.
Хотя с FIBPlus таких проблем уже нет.


kaif   (2002-04-13 22:16:00) [14]

Извиняюсь, упустил, в наборе-списке:
Locate(next_key_value)
Insert;
FieldByName(key_field_name).Value := key_value;
Post;
Refresh;
чтобы Refresh увидел новую запись с ключом key_value.
Хотя ерунда все это, ИМХО...


kaif   (2002-04-13 22:11:00) [15]

Вообще не очень понятно, что значит "DBGrid не корректно отображает последовательность записей".
В принципе, существует Insert и Append у наборов TIBQuery. Если считать корректным добавление новой записи в конец, то можно использовать метод Append. Если же речь идет о каком-то порядке (ORDER BY) и хочется, чтобы запись сразу попала в нужное место, то можно что-то придумать и без переоткрытия запроса, например, использовать один IBQuery для вставки (Insert) записи (в диалоговом окне), а другой для отображения всего набора. В первом делать настоящий Post, а во втором, после того, как стало ясно, куда запихать запись делать Locate нужного места и Insert + Post + Refresh (Refresh пересвечивает только одну строку).
Для того, чтобы Post всего набора ничего не изменял, можно вставить в InsertSQL какой-нибудь дурацкий текст, который ничего не делает, к примеру "SET NAMES 1251". А можно просто включить CachedUpdates и не применять ApplyUpdates.
А вообще, мне кажется, что очень правильно, что для Insert не требуется Fetch всего набора, который может отнять время и память. В этом весь кайф IBQuery, который сведется на нет, если делать Append или то, как я предложил.
Хотя в случае небольших наборов, может это и оправдано...


Alexander Vasjuk   (2002-04-13 19:57:00) [16]

>Shirson © (08.04.02 09:08)
В последних версиях работа с букмарками проще
var
SavePlace: TBookmarkStr;

begin
SavePlace := Query1.Bookmark;
... //insert-edit-delete here
if Query1.ValidBookmark(SavePlace) then Query1.Bookmark := SavePlace; //



Pike   (2002-04-13 14:09:00) [17]

Спасибо, уже разобрался сам. Недооценил AutoUpdateOptions.


Pike   (2002-04-12 21:14:00) [18]

Почему после добавления записи в Grid-е, не могу ее тут же изменить без переоткрытия? Это касается только новой записи.
Как только не менял настройки свойств - итог тотже.


alexandr   (2002-04-12 06:51:00) [19]

да и еще. Самое главное.
Если разработчик увидит, что в сети ходит кряк, он сильно улучшит защиту, а пока это не защита, а предупреждение.


alexandr   (2002-04-12 06:49:00) [20]

главное если заплатить
1) Дают исходники
2) Тех. поддержка на высоком уровне
3) Чистая совесть


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо