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

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

DbGrid, SQL [D6]


volodya_ ©   (2002-05-17 09:35:00) 

Почему когда я вывожу данные из таблицы в DbGrid вот таким запросом select * from table1 я потом могу редактировать данные, а когда - select * from table1 order by name то нет, как сделать чтобы можно было редактировать и при таком запросе?


VAleksey   (2002-05-17 11:41:00) [1]


> VictorT © (17.05.02 11:26)
да, но если есть несколько индексов по разным полям, то можно используя пункт ORDER BY сортировать по разным полям.


VictorT   (2002-05-17 11:26:00) [2]


> VAleksey © (17.05.02 11:15)

Согласен, но в данном случае, просто будет один и тот же результат SELECTа независимо от того, используется ORDER BY, или нет.


VAleksey   (2002-05-17 11:15:00) [3]


> - присутствует предложение принудительной сортировки результирующего
> набора данных ORDER BY;

Утверждаю, что если по полю Name есть обновляемый индекс и он сортирует по возрастанию, то при использовании подобного запроса таблица будет обновляемой !


VictorT   (2002-05-17 10:35:00) [4]

Цитата из книжки:

Набор данных будет доступен для редактирования, если синтаксис оператора SELECT при выполнении запроса будет признан "верным".
Иинтаксис оператора SELECT будет признан "неверным", если:
- НД формируется более чем из одной ТБД;
- присутствует предложение принудительной сортировки результирующего набора данных ORDER BY;
- значения хотя бы одного столбца сформировано с использованием агрегатных функций (SUM, COUNT, AVG, MIN, MAX);
- при доступе к СУБД Sybase в таблице отыутствует уникальный индекс.


vpevnev   (2002-05-17 10:06:00) [5]

Создай индекс по полю Name (посмотри в хелпе ссылку "Obtaining an editable result set")


Lord Warlock   (2002-05-17 09:58:00) [6]

если парадокс, попробуй поставить индекс на Name,
если уже есть, то ничего не поделаешь (можно вместо Query использовать Table)
а с order by ничего не получится(впрочем как и с where, group by,...), так в хелпе написано...


volodya_   (2002-05-17 09:52:00) [7]

Использую Paradox


vpevnev   (2002-05-17 09:44:00) [8]

Если используешь Оракул, используй ROWID
select a.rowid,a.* from table1 a order by name


Наверх

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