![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка
kostik78ua © (2002-11-21 10:29:00)Всем привет!
Заметил глюк. Объясните, почему простой запрос
"Select id from mytable order by name"
в Query - отрабатывает, а в ClientDataSet - не хочет.
BorisUK (2002-11-21 12:10:00) [1]У тебя в запросе одна таблица или несколько?
Попробуй "order by mytable.id" у меня этих сортировок тьма
и все работает также трехзвенке просто поточнее запросы пиши чтоб сервак не парился.
ИМХО это все что нужно.
Valeron (2002-11-21 12:07:00) [2]> select id test_id from mytable order by id
А может все-таки написать после id слово as? а то как-то не работает. А с этим словом все ОК
Я вот попробовал такой запрос
select field1 as f1 , field2 as f2
from table
order by field2
Так все ОК
kostik78ua (2002-11-21 11:49:00) [3]> сортировать по полю, которого нет довольно сложно, ты не находишь?
Тем не менее с этой "сложной" задачей вполне удачно справляется обычный Query.
Кроме того я как раз и пытаюсь сортировать по полюid.
Повторюсь: "select id test_id from mytable order by id".
Valeron (2002-11-21 11:42:00) [4]stone все правильно говорит, сортируй по полю который есть, т.е сушность, а не псевдоним.
stone (2002-11-21 11:38:00) [5]
> Псевдонимом является test_id, а я сортирую по полю id
псевдоним - это псевдоним, а поле - сущность.
> Важно, чтобы в select отсутствовало поле, по которому будешь
> сортировать (в order by).
сортировать по полю, которого нет довольно сложно, ты не находишь?
kostik78ua (2002-11-21 11:32:00) [6]Псевдонимом является test_id, а я сортирую по полю id
Сортировка по test_id сразу приводит к ошибке. Ну это и понятно.
Единственное что сейчас смог придумать, так это сортировать выборку уже на клиенте. Но хотелось бы обойти этот глюк. :(
Valeron (2002-11-21 11:22:00) [7]а если сортировать не по псевдониму?
kostik78ua (2002-11-21 11:18:00) [8]Вообще, иногда надо. Ну, а попробуй задать псевдоним для поля.
т.е.
"select id test_id from mytable order by id".
Псевдонимы ведь часто нужны?
Тут тоже выдает ошибку: "Не найдено поле id".
Valeron (2002-11-21 11:06:00) [9]У меня присутсвует, а зачем чтобы отсутсвовало?
kostik78ua (2002-11-21 11:04:00) [10]> Valeron
К какой у тебя запрос? Важно, чтобы в select отсутствовало поле, по которому будешь сортировать (в order by).
kostik78ua (2002-11-21 11:00:00) [11]В трехуровневой технологии это практически тот-же Query.
По идее не должно быть ни какой разницы если писать:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("select...");
Query1.Open;
или
ClientDataSet1.Close;
ClientDataSet1.CommandText:="Select...";
ClientDataSet1.Open;
Да ее (разницы) и нет, за исключением глюка с "order by Name". Да и то в случае, если поле "Name" не прописано в Select-е.
Но почему??? Не знаю.
Valeron (2002-11-21 10:55:00) [12]А ClientDataSet завязан с Query?
У меня все обрабатывает
stone (2002-11-21 10:35:00) [13]потому что ClientDataSet предназначен для других целей