Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.19;
Скачать: CL | DM;

Вниз

Вопрос про Grid, Table, Query (ZeosDBO)   Найти похожие ветки 

 
vegarulez ©   (2008-09-15 13:41) [0]

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


 
Sergey13 ©   (2008-09-15 13:46) [1]

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

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

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

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


 
vegarulez ©   (2008-09-15 13:55) [2]

Ёмко. Чем?


 
Jeer ©   (2008-09-15 14:07) [3]


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


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


 
vegarulez ©   (2008-09-15 14:17) [4]

ок. хорошо. Наверно я так полагаю из-за занимаемой памяти и т.п.
Ладно прочту.
Вопрос 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, но неё не переходит. нид хелп.


 
Sergey13 ©   (2008-09-15 15:50) [5]

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

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

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

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

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


 
vegarulez ©   (2008-09-15 18:50) [6]

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

...
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-16 08:28) [7]

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

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


 
vegarulez ©   (2008-09-16 10:17) [8]

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

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


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


 
Sergey13 ©   (2008-09-16 10:27) [9]

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

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

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


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

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

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


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


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



Страницы: 1 вся ветка

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
15-1220089316
Kostafey
2008-08-30 13:41
2008.10.19
С днем рождения ! 30 августа


2-1221288881
Alexandr_5
2008-09-13 10:54
2008.10.19
Sendmessage на TStatusbar


2-1220944731
Кирей
2008-09-09 11:18
2008.10.19
ошибка при работе с экселем OLE error 800A03EC


2-1221213675
interandry
2008-09-12 14:01
2008.10.19
MDI окна


2-1220850278
FIL-23
2008-09-08 09:04
2008.10.19
Отправка смс