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

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

Упорядочение по возрастанию в IBTable [D7, IB6.x, FireBird 1.5]


Страницы:   1 2

grav ©   (2008-05-15 12:03:00) 

Есть таблица с примари ключом ID. С помощью IBTable данные грузятся в DBGrid. Записи в гриде отображаются по убыванию ID, т.е. 9, 8,7,6...
А хотелось бы 1,2,3,...


grav   (2008-05-15 16:52:00) [21]

Вообщем нашел компромис. У меня было 8 IBTable для трех гридов и кучи DBEdit'ов в двух группах. Три IBTable заменил на IBDataSet, три IBTable стали  не нужны (были поля lookup, стали JOIN). Два IBTable осталось.
В итоге один грид и DBEdit'ы можно редактировать, еще с двумя завтра разберусь :)
Спасибо


Sergey13   (2008-05-15 16:30:00) [22]

> [11] grav   (15.05.08 15:14)
> И 5 никак не может попасть вперед 2 или 3.

Ну если там всего 5 записей, то может и так - они все будут лежать на одной странице (вроде так это называется - что-то запамятовал) файла БД. Как только этих страниц станет больше - уже не так все очевидно. А если с таблицей идет интенсивная работа с удалением/вставкой - шансы еще более уменьшаются.


grav   (2008-05-15 15:14:00) [23]


> Sergey13 ©   (15.05.08 15:06) [8]


> Твой ТТабл фактически транслируется в запрос
> select * from table

В IBExpert такой запрос выдает нормальный порядок 1,2,3,4,5.... Хотя бы потому, что вводились они последовательно с использованием генератора. И 5 никак не может попасть вперед 2 или 3. И уж тем более 1 не может отобразится после 5.


Sergey13   (2008-05-15 15:09:00) [24]

> [7] grav   (15.05.08 15:03)
> Но надо еще и на вставку, обновление и удаление.

Это опять же говорит о нелюбви к чтению. Эти запросы генерируются автоматически с минимальным участием программиста (на уровне 2-3 кликов мышкой).


Sergey13   (2008-05-15 15:07:00) [25]

> [7] grav   (15.05.08 15:03)
> Лениво как то

Это серьезный аргумент. Только обычно, если самому что-то делать ЛЕНИВО, надо другим за выполняемую за тебя работу ПЛАТИТЬ.


Sergey13   (2008-05-15 15:06:00) [26]

> [6] grav   (15.05.08 15:01)
> Почему?

Потому что предпочитаешь сомнительные эксперименты чтению литературы.
Твой ТТабл фактически транслируется в запрос
select * from table
(просто сервер ничего другого не понимает)
Это запрос БЕЗ сортировки. Порядок записей при таком запросе ВОБЩЕ непредсказуем, потому что случаен. То, что он повторяется - частный случай.


grav   (2008-05-15 15:03:00) [27]


> Sergey13 ©   (15.05.08 14:53) [5]

Написать запросы на выборку мастер-детайл я и без книг могу. Но надо еще и на вставку, обновление и удаление. Лениво как то, если есть готовые компоненты.


grav   (2008-05-15 15:01:00) [28]

Читаю справку по DefaultIndex

Description

When this property is set to false, an ORDER BY clause is not used when opening a table on the server. When DefaultIndex is true, the data is ordered based on the primary key or a unique index when opening the table. DefaultIndex defaults to true.

Удаляю примари кей. Отображает в гриде вообще фигню, типа 9,10,8. Откуда?
Снова создал примари кей. То же самое, не поменялось ничего. Почему?


Sergey13   (2008-05-15 14:53:00) [29]

> [4] grav   (15.05.08 14:50)
> Уж больно много запросов писать надо.

Это если книг никаких и прочей литературы перед этим не читать. 8-)


grav   (2008-05-15 14:50:00) [30]


> Как раз  с помощью IBDataSet это удобнее

Уж больно много запросов писать надо.
Я бы лучше индексы создал, вот только не знаю куда их прикрутить.
Поле IndexName занято, т.к. используется IndexFieldName для мастер-детайл.


Mery   (2008-05-15 13:13:00) [31]

>мастер-детайл заставляет, удобно.
Как раз  с помощью IBDataSet это удобнее. И его запросе можно прописать
order by ....., который и отсортирует как надо. А с IBTable прийдётся создавать индексы.


grav   (2008-05-15 12:46:00) [32]


> Sergey13 ©   (15.05.08 12:12) [1]

мастер-детайл заставляет, удобно.
Неужеле так плохо все и нет возможности упорядочить по возрастанию?


Sergey13   (2008-05-15 12:12:00) [33]

> [0] grav   (15.05.08 12:03)
> С помощью IBTable

Что заставляет использовать сей компонент? Есть и более продвинутые, например IBDataSet. Заботать с SQL сервером значительно удобнее и правильнее через этот SQL.


Страницы:   1 2

Наверх

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