![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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