Форум: "Начинающим";
Текущий архив: 2008.10.19;
Скачать: [xml.tar.bz2];
ВнизВопрос про 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c