Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Сортировка массивов в базе данных
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 12.05.2006, 23:20

Цитата:
Originally posted by SH@DOW
[b]Ага неопытным нужно сначала немножечко литературы почитать, причем в любой книжке по базам данных написано, как сартировать и зачем.
Не в любой. Наиболее содержательная книга предлагала сортировать, не используя индексирование, и вообще встроенных методов. Полностью описывался алгоритм сортировки. И, между прочим, с фильтрацией также.
Ответить с цитированием
  (#17 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 13.05.2006, 04:15

"Сортировать, не используя индексирование..." Это что-то... Типа, завести бензиновый двигатель без бензина... Уж и не знаю, что это за книги. Читай хэлп, блин! Там всё написано!

Хочешь, используй IndexFieldNames.
Код:
PhoneTable->IndexFieldNames = "LastName;FirstName";
Хочешь, используй IndexName
Код:
CustomersTable->IndexName = "CustDescending";
Вариантов - масса! Ты хоть что-нибудь пробовал? Или только самокопаниями занимаешься "понимаю-не понимаю"
Ответить с цитированием
  (#18 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 13.05.2006, 04:15

"Сортировать, не используя индексирование..." Это что-то... Типа, завести бензиновый двигатель без бензина... Уж и не знаю, что это за книги. Читай хэлп, блин! Там всё написано!

Хочешь, используй IndexFieldNames.
Код:
PhoneTable->IndexFieldNames = "LastName;FirstName";
Хочешь, используй IndexName
Код:
CustomersTable->IndexName = "CustDescending";
Вариантов - масса! Ты хоть что-нибудь пробовал? Или только самокопаниями занимаешься "понимаю-не понимаю"
Ответить с цитированием
  (#19 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 14.05.2006, 00:05

Цитата:
Originally posted by FataLL
[b]Или только самокопаниями занимаешься "понимаю-не понимаю" :x
Ну ты приколист! Хотел ответить раньше, но ИНет кончился.
Попробовал конечно. Table1->IndexFieldNames = "Год"; Работает.
В хэлпе написано что с IndexFieldNames можно сортировать только по возрастанию. С IndexName аналогично. Можно сделать по убыванию используя AddIndex. Первый параметр - имя создоваемого индекса являющегося базовым для полей, идущих в качестве второго параметра, третий параметр - константа. Пишу:

TIndexOptions Options;
Options << ixDescending;
Form1->Table1->AddIndex("Index", "Год", Options);

Table cannot be opened for exclusive use.
Поле год изначально не индексировано.
Ответить с цитированием
  (#20 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 14.05.2006, 00:05

Цитата:
Originally posted by FataLL
[b]Или только самокопаниями занимаешься "понимаю-не понимаю" :x
Ну ты приколист! Хотел ответить раньше, но ИНет кончился.
Попробовал конечно. Table1->IndexFieldNames = "Год"; Работает.
В хэлпе написано что с IndexFieldNames можно сортировать только по возрастанию. С IndexName аналогично. Можно сделать по убыванию используя AddIndex. Первый параметр - имя создоваемого индекса являющегося базовым для полей, идущих в качестве второго параметра, третий параметр - константа. Пишу:

TIndexOptions Options;
Options << ixDescending;
Form1->Table1->AddIndex("Index", "Год", Options);

Table cannot be opened for exclusive use.
Поле год изначально не индексировано.
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 14.05.2006, 09:58

Закрой Table!!!
Код:
Table->Active = false;
А потом уже AddIndex.
Ответить с цитированием
  (#22 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 14.05.2006, 09:58

Закрой Table!!!
Код:
Table->Active = false;
А потом уже AddIndex.
Ответить с цитированием
  (#23 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 14.05.2006, 23:23

Код:
TIndexOptions Options;
Options << ixDescending;
Form1->Table1->Active = false;
Form1->Table1->AddIndex("Ind", "Год", Options);
Form1->Table1->DeleteIndex("Ind");
Form1->Table1->Active = true;
Ничего не делает.
Ответить с цитированием
  (#24 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 14.05.2006, 23:23

Код:
TIndexOptions Options;
Options << ixDescending;
Form1->Table1->Active = false;
Form1->Table1->AddIndex("Ind", "Год", Options);
Form1->Table1->DeleteIndex("Ind");
Form1->Table1->Active = true;
Ничего не делает.
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 15.05.2006, 06:41

А что должно делать? Добавил индекс. Потом удалил его. А чего ты ждал?
Ответить с цитированием
  (#26 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 15.05.2006, 06:41

А что должно делать? Добавил индекс. Потом удалил его. А чего ты ждал?
Ответить с цитированием
  (#27 (permalink)) Старый
SergeyV SergeyV вне форума
Member
 
Сообщений: 542
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.06.2005
По умолчанию 15.05.2006, 11:38

Да все проще, думаю. Индексирование не работает с русскими именами полей. Проверено, факт. Вот имена таблиц русские можно делать, а имена полей - ни в коем случае. Пока вы где-нибудь в MS Access балуетесь, все проходит, но как только начинает сортировать по индексу - всё, приехали. Измените ГОД на GOD и другие поля переименуйте.
Ответить с цитированием
  (#28 (permalink)) Старый
SergeyV SergeyV вне форума
Member
 
Сообщений: 542
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.06.2005
По умолчанию 15.05.2006, 11:38

Да все проще, думаю. Индексирование не работает с русскими именами полей. Проверено, факт. Вот имена таблиц русские можно делать, а имена полей - ни в коем случае. Пока вы где-нибудь в MS Access балуетесь, все проходит, но как только начинает сортировать по индексу - всё, приехали. Измените ГОД на GOD и другие поля переименуйте.
Ответить с цитированием
  (#29 (permalink)) Старый
VELIKAN VELIKAN вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 15.05.2006, 21:27

Ждал сортировки по убыванию. Удаление индекса может повлиять на результат?
Я знаю единственную функцию, которая по описанию сортирует по убыванию. Это AddIndex. Она создаёт индекс. А если пользователь захочет ещё раз отсортировать по-убыванию - появится сообщение о том, что индекс уже есть. Поэтому я каждый раз его удаляю. Может удалять надо в другом месте?
Ответить с цитированием
  (#30 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 17.05.2006, 05:04

Почему ты не почитаешь спраку? Там вся теория разжёвана. Индексов может быть несколько, и их можно попеременно использовать. Добавляешь индекс, а потом сразу удаляешь, и чего ты хочешь? Прибавил 2, а потом сразу же отнял 2, что в итоге? Есть увеличение на 2?
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара).Сортировка фрагмента массива[C++] druger С/С++ 1 20.04.2012 16:45
Сортировка одномерных массивов palemupro Pascal 1 01.12.2011 20:19
Обработка массивов данных в С++ MASOFF Вопросы начинающих программистов 0 21.05.2011 13:26
Обработка одномерных массивов данных Dimon278 Pascal 7 14.12.2009 03:03
Обработка огромных массивов данных AD С/С++ 1 24.08.2009 20:06
Есть ли в базе данных ограничение на запись данных vixen MySQL 1 03.03.2007 18:58
Сортировка массивов бинарным способом ninyl4ik Вопросы начинающих программистов 27 03.05.2006 17:10
CLASS & ARRAYS создание нескольких массивов с заполнением данных Wish Visual C++ 10 13.12.2004 13:34
База данных и сортировка данных -=MonstriK=- Delphi 2 26.04.2004 09:55
Функции оптимального, переопределения массивов, с сохранение данных в VC++ Rem Visual C++ 1 20.01.2004 15:20
Фактический объём данных в базе данных proger MSSQL Server 1 10.11.2003 22:45
Описание структуры данных, список массивов, выделяемых при необходимости Glory C++ Builder 1 10.02.2003 16:23



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов