Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 23:15   #1
luminescent
Новичок
Джуниор
 
Регистрация: 20.05.2015
Сообщений: 5
Печаль Помогите с кнопкой сортировки записей в подключенной бд access на языке c++

Здравствуйте,


Прошу помочь с кодом для 2х кнопок на языке c++(именно на c++). Нужно выполнить сортировку по полю дата(тип date) и цена(числовой тип).

Программа сделана через формы. Подключена таблица access через ADOconnection, ADOtable, DATAsource.

буду благодарен за код для копки или за наводку как это сделать. у меня основной затык - как применить алгоритм сортировки пузырьком для подключенной таблицы access:


A[n] --- как то надо указать поле сортировки (цена)
j=[порядок записей из таблицы аксес]
n=[количество записей]
Код:
for (int i=n; i>0; i--)  
        for (int j = 0; j < i; j++) 
            if (A[j]>A[j + 1])
            {
                int t(0);  
                t = A[j];
                A[j] = A[j+1];
                A[j + 1] = t;
            }

Последний раз редактировалось Stilet; 21.05.2015 в 07:16.
luminescent вне форума Ответить с цитированием
Старый 21.05.2015, 05:29   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Что такое А?
Чем не устроил стандартный способ с указаним кода выборки сразу с сортировкой?
Например, так:
Код:
ADOQuery1->CommandText = "SELECT Name, Value FROM MyTable ORDER BY Name";
ADOQuery1->Open();
phomm вне форума Ответить с цитированием
Старый 21.05.2015, 12:15   #3
luminescent
Новичок
Джуниор
 
Регистрация: 20.05.2015
Сообщений: 5
По умолчанию

про условию моего задания решение обязательно должно быть на c++
luminescent вне форума Ответить с цитированием
Старый 21.05.2015, 12:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е. препод приказал тебе считать весь набор данных из БД в массив и только там сортировать? О_о
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 13:41   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от luminescent Посмотреть сообщение
про условию моего задания решение обязательно должно быть на c++
Так код от того, что сортировку делает БД не перестают быть С++...
p51x вне форума Ответить с цитированием
Старый 21.05.2015, 20:25   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от luminescent Посмотреть сообщение
про условию моего задания решение обязательно должно быть на c++
У DBGrid есть свойства OnTitleClick = это значить при нажатие заголовка поля и пишу
Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
  String col;
  {
	  if (ADOQuery1->FieldByName(Column->FieldName)->Tag==0)
	  {
	   col=" ASC ";
	   ADOQuery1->FieldByName(Column->FieldName)->Tag = 1;
	  }
	  else
	  {
		 col=" DESC ";
		 ADOQuery1->FieldByName(Column->FieldName)->Tag = 0;
	  }
	   ADOQuery1->Sort = Column->FieldName + col;
	  }
  }

//---------------------------------------------------------------------------
сортрирует при нажатие заголовки ... Код переводил из Delphi ... на Delphi он работает так
Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn); //сортировка в DBGrid
Var 
  col:string;
begin
  if ADOQuery1.FieldByName(Column.FieldName).Tag=0 then
   begin
    col := ' ASC';
    ADOQuery1.FieldByName(Column.FieldName).Tag := 1;
   end
  else
   begin
    col := ' DESC';
    ADOQuery1.FieldByName(Column.FieldName).Tag := 0;
   end;
 ADOQuery1.Sort:=Column.FieldName + col;
end;
А преподу не слушайте они 99% все расказчики и у них кривой мозг... читайте книгу и что будет не понятно пишите на форуме

Последний раз редактировалось xxbesoxx; 21.05.2015 в 20:41.
xxbesoxx вне форума Ответить с цитированием
Старый 21.05.2015, 21:59   #7
luminescent
Новичок
Джуниор
 
Регистрация: 20.05.2015
Сообщений: 5
По умолчанию

спасибо большое за все предложенные варианты, но в моем случае мне надо сделать именно используя алгоритмы сортировки c++ (например пузырьком). я уже показывал решения через sort и adoquery, но преподаватель все равно хочет чтобы я сделал как я описал выше.

я уже нашел как выцепить значение из интересующей ячейки и посчитать количество записей.

но я никак не могу найти где хранится порядок вывода записей таблицы (j из моего алгоритма) ИЛИ самому их проиндексировать и найти способ как поменять записи местами. буду благодарен если подскажите как решить эту часть проблемы.
luminescent вне форума Ответить с цитированием
Старый 21.05.2015, 22:13   #8
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
я уже нашел как выцепить значение из интересующей ячейки и посчитать количество записей
да ладно, причем тут это ? если мы обсуждаем сортировку ...
xxbesoxx вне форума Ответить с цитированием
Старый 21.05.2015, 22:24   #9
luminescent
Новичок
Джуниор
 
Регистрация: 20.05.2015
Сообщений: 5
По умолчанию

при том, что сортировать мы будем записи по значению ячеек одного из столбцов. а чтобы их отсортировать, их надо сравнивать.
luminescent вне форума Ответить с цитированием
Старый 21.05.2015, 22:25   #10
luminescent
Новичок
Джуниор
 
Регистрация: 20.05.2015
Сообщений: 5
По умолчанию

а количество записей для количества раз выполнения цикла
luminescent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записей в БД access itea4you.ru C# (си шарп) 7 20.02.2015 12:42
Добавление записей в БД Access DjoNik135 Помощь студентам 0 18.04.2012 15:09
Помогите с кнопкой в vba aleksha Microsoft Office Excel 0 27.11.2009 14:38
Учусь помогите с кнопкой сворачивать rE90 Общие вопросы C/C++ 4 10.09.2008 03:40
Народ помогите с кнопкой empy PHP 0 23.05.2007 19:46