Ошибка при сортировке

при запросе:
procedure TMainForm.DetalDBGridEhTitleBtnClick(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
begin
With StandQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add ('Select Stand.*,');
  SQL.Add ('Gost.Gost_ID AS GostID, Gost.Name AS GostName,');
  SQL.Add ('Okp.Okp_ID AS OkpID,Okp.Klass,Okp.Naim');
  SQL.Add ('FROM Stand');
  SQL.Add ('INNER JOIN Gost');
  SQL.Add ('on Stand.Gost_Id=Gost.Gost_Id');
  SQL.Add ('INNER JOIN Okp');
  SQL.Add ('on Stand.Okp_Id=Okp.Okp_Id ');
  SQL.Add ('ORDER BY Mark');
  Open;
  end;
end;
вылетает ошибка StandDS: Field index out of range. (StandDS - это dataset). Что не так? в БД все отрабатывается...
14 ответов

а какое отношение имеет StandQuery к StandDS ?


какое отношение имеет StandQuery к StandDS ?
не знаю, но ошибка такого рода.Ошибку убрала. сейчас просто сортировка не идет при нажатии на заголовок таблицы. что не так в запросе? подскажите пожалуйста!


только то что Mark без алиаса, но если оно только в одной таблице встречается, то ничего вообще все запросы сначала проверяются в БД, а только потом пишутся в делфи


все запросы сначала проверяются в БД, а только потом пишутся в делфи
запрос в БД отрабатывается, как надо
только в одной таблице встречается
только в таблице Stand


запрос в БД отрабатывается, как надо
тогда что за вопрос
что не так в запросе? подскажите пожалуйста!
???


тогда что за вопрос
SELECT Stand.*,
       Gost.Gost_ID AS GostID, Gost.Name AS GostName,
       Okp.Okp_ID AS OkpID,Okp.Klass,Okp.Naim 
FROM standart.dbo.Stand 
INNER JOIN standart.dbo.Gost 
ON Stand.Gost_Id=Gost.Gost_Id
INNER JOIN standart.dbo.Okp 
ON Stand.Okp_Id=Okp.Okp_Id
ORDER BY Mark
Запрос в БД


Запрос в БД
и что?


и что?
Так почему в delphi данные не сортируются?


у меня все сортируется а у вас - я не знаю, нужно смотреть


нужно смотреть
понятно... Спасибо!


ну вы бы хоть показали скрин что не сортирует (без ORDER BY и с ним) показали код вывода на форму, тогда можно что-то говоритьа так только гадать почему у вас по полю MARK не сортирует может там данных нет...


Безымянный - это файл с таблицей, которую надо отсортировать (от наименьшего значения к наибольшему). 1 - это файл с заголовками столбцов таблицы, в которую выводятся данные. В столбце Обозначение (т.е. sName) и надо отсортировать данные. Столбец ОБОЗНАЧЕНИЕ (sName) состоит из Gost.Name + Stand.Mark.


сортировку произвожу
procedure TMainForm.DetalDBGridEhTitleBtnClick(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
begin
With StandQuery do
  begin
  Close;
  SQL.Clear;
  SQL.Add ('Select Stand.*,');
  SQL.Add ('Gost.Gost_ID AS GostID, Gost.Name AS GostName,');
  SQL.Add ('Okp.Okp_ID AS OkpID,Okp.Klass,Okp.Naim');
  SQL.Add ('FROM Stand');
  SQL.Add ('INNER JOIN Gost');
  SQL.Add ('on Stand.Gost_Id=Gost.Gost_Id');
  SQL.Add ('INNER JOIN Okp');
  SQL.Add ('on Stand.Okp_Id=Okp.Okp_Id ');
  SQL.Add ('ORDER BY Mark');
  Open;
  end;
end;
в БД сортирует, в программе - нет.


ха ха ха с чего ты решила что не сортирует то? посмотри ОЧЕНЬ внимательноГОСТ Р ИСО 4014 М1 потом идет ГОСТ Р ИСО 4014 М5 ГОСТ Р ИСО 4014 М6 ГОСТ Р ИСО 4014 М8все отсортировано. Рекомендую почитать про сортировку строк))))))))))))