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

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

Вопрос про Grid, Table, Query (ZeosDBO) [D7, XP]


vegarulez ©   (2008-09-15 13:41:00) 

Привет всем мастерам.
Использую БД и компонеты ZeosDBO. Для отображения в DBGrid использую TZtable. Вопрос можно ли TZtabl`ом отобразить данные в гриде в обратном порядке? (т.е. допустим order by `id` DESC)
Или лучше всё же для грида в этом случае использовать Zquery?


ЮЮ   (2008-09-16 10:59:00) [1]

Чтобы текущей записью стала его первая запись достаточно выполнить его метод First.

Обычно, после Open именно первая запись и является текущей.
Если это не так, то значит в коде, скрытом за ... ты где-то перемещаешься по НД.


> ZQuery2.Open;
> ...
>
> DataModule2.ZQuery2.Active:=true;
> DataModule2.ZQuery2.Refresh;


если это один и тот же Zquery, зачем столько танца с бубнами?


Sergey13   (2008-09-16 10:27:00) [2]

> [8] vegarulez ©   (16.09.08 10:17)
> Это не суть важно.

Это принципиально важно.

> В гриде записи тоже после этого должны обновиться
Если дожны, то почему не обновляются?


vegarulez   (2008-09-16 10:17:00) [3]

Отдельным запросом. Это не суть важно.
В гриде записи тоже после этого должны обновиться так как грид привязан на Query то после каждого инзерта делаю

ZQuery2.SQL.Text:='select * from `a` order by `id` desc'
ZQuery2.Open;


как и писал выше. и обновляю грид. вопрос всё тот же. как попасть на самую верхнюю запись.


Sergey13   (2008-09-16 08:28:00) [4]

> [6] vegarulez ©   (15.09.08 18:50)
> Я добавляю запись

Каким образом? Можно отдельным запросом Insert, а можно методом датасетаInsert. Во втором случае ничего не надо ни переоткрывать ни позиционировать.


vegarulez   (2008-09-15 18:50:00) [5]

Почитаю в обяз, но сечас некогда. чесна.

...
ZQuery1.SQL.Text:='insert into `a`...;
ZQuery1.ExecSql;
...
ZQuery2.SQL.Text:='select * from `a` order by `id` desc'
ZQuery2.Open;
...

DataModule2.ZQuery2.Active:=true;
DataModule2.ZQuery2.Refresh;
DBGrid1.SetFocus;
DBGrid1.Refresh;
DBGrid1.SelectedField.Index:=0;

Я добавляю запись, и потому обновляю грид, она (новая запись появляется в гриде) и я хочу выделение переместить автоматически на самую первую запись. но после добавления следующей записи, после рефреша курсор остаётся на той записи на которой был т.е. уже получается на 2-ой. а в гриде появляется боковой скрол и первая запись она как бы вообще за гридом сверху :( Пока мышкой скролл вверх не переместишь и не встанешь мышь на неё...


Sergey13   (2008-09-15 15:50:00) [6]

> [4] vegarulez ©   (15.09.08 14:17)

А какой собственно реакции ты ждешь?

> хотя в таблице новая запись появляется после Insert
Какого Insert?

> но неё не переходит
А должен?

Ты все таки почитай сначала про кверики. С ними можно работать практически как тейблами, потому что они то-же датасеты. Но имеются и отличия, поэтому слепое копирование методов работы не всегда приемлемо.


vegarulez   (2008-09-15 14:17:00) [7]

ок. хорошо. Наверно я так полагаю из-за занимаемой памяти и т.п.
Ладно прочту.
Вопрос 2.
Делаю

...
ZQuery2.SQL.Text:='select * from `a` order by `id` desc'
...

DataModule2.ZQuery2.Active:=true;
DataModule2.ZQuery2.Refresh;
DBGrid1.SetFocus;
DBGrid1.Refresh;
DBGrid1.SelectedField.Index:=0;


в первый раз становится на нулевую ячейку. Второй раз остаётся на ней же... хотя в таблице новая запись появляется после Insert`a, но неё не переходит. нид хелп.


Jeer   (2008-09-15 14:07:00) [8]


> Вопрос можно ли


Для начала почитай о различиях в стандартных компонентах TTable и TQuery, способах сортировки выборки, визуализации сортировки и т.п.
Глядишь многие вопросы отпадут.


vegarulez   (2008-09-15 13:55:00) [9]

Ёмко. Чем?


Sergey13   (2008-09-15 13:46:00) [10]

> [0] vegarulez ©   (15.09.08 13:41)

> Использую БД и компонеты ZeosDBO
Крута!

> Или лучше всё же для грида в этом случае использовать Zquery?

Лучше. И грид тут совсем не при чем.


Наверх

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