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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2013, 09:06   #1
Sanuch89
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 17
Вопрос Поиск во всему наборе данных при включённом SetRange

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

Допустим, есть TTable с определённым набором данных (в данном случае таблицей).
Указываем ключевое поле и обрезаем этот набор данных:
Код:
Table1.IndexName := 'KeyField';
Table1.SetRange([0],[20]);
Потом делаю поиск:
Код:
Table1.FindKey([5]);
Но поиск производится только по усечённому ДатаСету.
Возможно ли при включённом SetRange производить поиск по всему ДатаСету?

Заранее спасибо!
Sanuch89 вне форума Ответить с цитированием
Старый 19.09.2013, 09:38   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В этом Table нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.09.2013, 10:15   #3
Sanuch89
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В этом Table нет
А какие-то отдельные компоненты с такой возможностью можете посоветовать?

Мне кажется, что это должно быть реализовано не в самом TTable, а в родительском TDataset. Отсюда вывод, что в стандартных компонентах этой функции вообще нет

Последний раз редактировалось Sanuch89; 19.09.2013 в 10:22.
Sanuch89 вне форума Ответить с цитированием
Старый 19.09.2013, 11:06   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Навряд-ли где-то реализовано. Смысл? Сам ограничил, а искать хочешь вне диапазона. SQL-запросом ищи. В этом Table нет - имел ввиду, что именно в этом датасете, а не тип компонента
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.09.2013 в 11:08.
Аватар вне форума Ответить с цитированием
Старый 19.09.2013, 11:34   #5
Sanuch89
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 17
По умолчанию

Согласен. Но в некоторых случаях, нужно отобразить клиенту не полностью все данные, а поиск вести по всем. А если делать CancelRange, то это влияет на производительность (если таблица огромная).

Есть небольшой минус sql-запроса - это работа с винчестером. В то время как наследники от ТДатаСета работают с оперативной памятью.

Последний раз редактировалось Sanuch89; 19.09.2013 в 11:39.
Sanuch89 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файла по всему диску Shouldercannon Общие вопросы Delphi 5 01.09.2012 19:18
База данных, SetRange, Filter, ColCount Gregorian Помощь студентам 0 09.11.2010 23:34
Замена слов при наборе medved6216 Общие вопросы Delphi 2 13.09.2010 17:54
[Макрос] поиск по всему документу с набором действий Polotenchik Microsoft Office Word 4 03.04.2010 07:50
Поиск файла по всему компьютеру!!!!! Flippp Общие вопросы C/C++ 17 05.08.2009 11:57