0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
1

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

31.01.2018, 09:26. Показов 844. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
при запросе:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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). Что не так? в БД все отрабатывается...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2018, 09:26
Ответы с готовыми решениями:

Ошибка при сортировке
Для подключения использую компоненты FireDAC, для отображения - EhLib. При попытке отсортировать...

Ошибка при сортировке таблицы
В ADODataSet прописан CommandText SELECT osnovaZakupka.naimenovanie, sprOKPD2.kodOKPD2,...

Ошибка при сортировке dbgrid
народ проверьте пожалуйста код, на форме SortCB(combobox)(по какому полю будет сортировка),...

Ошибка при сортировке ADOTable по Lookup полям
При попытки сортировки ADOTable через установку свойства Sort равному имени поля с типом fkLookup...

19
5778 / 4521 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
31.01.2018, 10:06 2
а какое отношение имеет StandQuery к StandDS ?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 10:13  [ТС] 3
Цитата Сообщение от krapotkin Посмотреть сообщение
какое отношение имеет StandQuery к StandDS ?
не знаю, но ошибка такого рода.

Добавлено через 2 минуты
Ошибку убрала.
сейчас просто сортировка не идет при нажатии на заголовок таблицы. что не так в запросе? подскажите пожалуйста!
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 10:16 4
только то что Mark без алиаса, но если оно только в одной таблице встречается, то ничего
вообще все запросы сначала проверяются в БД, а только потом пишутся в делфи
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 10:18  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
все запросы сначала проверяются в БД, а только потом пишутся в делфи
запрос в БД отрабатывается, как надо

Добавлено через 46 секунд
Цитата Сообщение от qwertehok Посмотреть сообщение
только в одной таблице встречается
только в таблице Stand
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 10:25 6
Цитата Сообщение от tsareva Посмотреть сообщение
запрос в БД отрабатывается, как надо
тогда что за вопрос
Цитата Сообщение от tsareva Посмотреть сообщение
что не так в запросе? подскажите пожалуйста!
???
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 10:43  [ТС] 7
Цитата Сообщение от qwertehok Посмотреть сообщение
тогда что за вопрос
SQL
1
2
3
4
5
6
7
8
9
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
Запрос в БД
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 11:10 8
Цитата Сообщение от tsareva Посмотреть сообщение
Запрос в БД
и что?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 11:19  [ТС] 9
Цитата Сообщение от qwertehok Посмотреть сообщение
и что?
Так почему в delphi данные не сортируются?
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 11:48 10
у меня все сортируется
а у вас - я не знаю, нужно смотреть
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 12:21  [ТС] 11
Цитата Сообщение от qwertehok Посмотреть сообщение
нужно смотреть
понятно... Спасибо!
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 12:29 12
ну вы бы хоть показали скрин что не сортирует (без ORDER BY и с ним)
показали код вывода на форму, тогда можно что-то говорить

а так только гадать почему у вас по полю MARK не сортирует
может там данных нет...
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 13:08  [ТС] 13
Безымянный - это файл с таблицей, которую надо отсортировать (от наименьшего значения к наибольшему).
1 - это файл с заголовками столбцов таблицы, в которую выводятся данные. В столбце Обозначение (т.е. sName) и надо отсортировать данные. Столбец ОБОЗНАЧЕНИЕ (sName) состоит из Gost.Name + Stand.Mark.
Миниатюры
Ошибка при сортировке   Ошибка при сортировке  
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 13:10  [ТС] 14
сортировку произвожу
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
в БД сортирует, в программе - нет.
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 13:16 15
ха ха ха
с чего ты решила что не сортирует то?
посмотри ОЧЕНЬ внимательно

ГОСТ Р ИСО 4014 М1
потом идет
ГОСТ Р ИСО 4014 М5
ГОСТ Р ИСО 4014 М6
ГОСТ Р ИСО 4014 М8

все отсортировано.
Рекомендую почитать про сортировку строк))))))))))))
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 13:30  [ТС] 16
а не.... мне надо, чтобы сортировало не цифры, а числа,
например,
ГОСТ Р ИСО 4014 М5
ГОСТ Р ИСО 4014 М6
ГОСТ Р ИСО 4014 М8
ГОСТ Р ИСО 4014 М15
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 14:56 17
Цитата Сообщение от tsareva Посмотреть сообщение
мне надо
надо - так делай

сейчас запрос у тебя сортирует по полю Mark, далее ты добавляешь Gost.Name + Stand.Mark и хочешь что бы все работало
да.. и винишь во всем "неправильный" запрос

может стоит пронумеровать в невидимой колонке и сортировать по ней?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 15:04  [ТС] 18
Цитата Сообщение от qwertehok Посмотреть сообщение
винишь во всем "неправильный" запрос
я понимаю, что запрос правильный, потому что он в БД сортирует все, как надо.

Добавлено через 44 секунды
Цитата Сообщение от qwertehok Посмотреть сообщение
может стоит пронумеровать в невидимой колонке и сортировать по ней?
не совсем понимаю, о чем речь, можно подробнее...

Добавлено через 4 минуты
SQL
1
2
3
4
SELECT * FROM Stand 
ORDER BY CASE WHEN ISNUMERIC(Mark)<>0 THEN CAST(Mark AS INT) 
ELSE 2147483648 END ASC, CASE WHEN Mark LIKE '%[0-9]%' 
    THEN 1 ELSE 0 END ASC, Mark ASC
создала такой запрос, сортирует строки varchar как надо
0
5394 / 4322 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
31.01.2018, 15:40 19
Цитата Сообщение от tsareva Посмотреть сообщение
создала такой запрос
а что у вас за СУБД?
0
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 218
31.01.2018, 16:29  [ТС] 20
Цитата Сообщение от qwertehok Посмотреть сообщение
а что у вас за СУБД?
MS SQL Server
0
31.01.2018, 16:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2018, 16:29
Помогаю со студенческими работами здесь

Ошибка при сортировке: "no index for fields"
При попытке сортировки выдает ошибку &quot;no index for fields&quot; begin Table1.IndexFieldNames:='ФИО'; ...

Ошибка в сортировке
Попробовал cделать сортировка как показано в книге Библия Delphi. procedure TForm1.N8Click(Sender:...

Ошибка при сортировке
При сортировке массива вылетает причем именно на последнем числе сортирую так : for (int...

Ошибка при сортировке
нажимаю сортировка и получаю: &quot;project project1.exe raised exception class econverterror with...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru