Форум: "Базы";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
ВнизПоиск в базе данных (Очень срочно!!!) Найти похожие ветки
← →
Кнопка (2001-12-07 09:32) [0]В моей базе данных(Dbase) существует несколько полей. В одном из них есть несколько одинаковых (текстовых) записей. Я пытаюсь найти эти записи, т.е. чтобы отобразились все записи с одинаковым значением. Я использую Filter почему не получается?
Посоветуйте что-нибудь ещё!!!!!!!!!
← →
Alexandr (2001-12-07 09:36) [1]да, наверное тебе действительно очень срочно надо...
Так что ты даже объяснить толком не смог в чем проблема, что не получается, и что тебе посоветовать.
Знаешь, честно говоря, по твоему вопросу хочется посоветовать забросить нафиг программирование из заняться чем-нибудь другим.
Это не наезд это шутка
← →
Дмитрий Д. (2001-12-07 10:03) [2]попробуй добавить поле для флага и сделать такую обработку (первое что пришло в голову, так что заранее извеняюсь):
// допустим твоя таблица Table1 а поле с одинаковыми значениями Field_str
//(стринговое), поле для флага Field_f (булеан),var_str стринговая
// переменная
// сортирни таблицу по полю Field_str
Table1.first;
var_str := Table1.FieldByName("Field_str").asstring;
Table1.Edit;
Table1.fieldbyname("Field_f").value := false;
Table1.post;
Table1.Next;
while not Table1.eof do
begin
if var_str = Table1.FieldByName("Field_str").asstring then
begin
Table1.Edit;
Table1.fieldbyname("Field_f").value := true;
Table1.post;
end
else
begin
Table1.Edit;
Table1.fieldbyname("Field_f").value := false;
Table1.post;
var_str := Table1.FieldByName("Field_str").asstring;
end;
Table1.Next;
end;
// после этого сделай фильтр по Field_f
// у тебя будут все записи в которых есть дубляж по полю Field_str
еще раз извиняюсь за сей код...
всего этого гемороя можно избжать если ты используешь SQL...
← →
sudiv (2001-12-07 12:14) [3]Через фильтр должно работать, это кстати проще всего.
А Filtered = = true ? Свойство такое еще есть.
← →
Smile (2001-12-10 09:44) [4]В моей базе данных допустим в поле name есть несколько одинаковых записей. При использовании Locate отображается только самая первая найденная запись. Я пытаюсь поставить фильтр, но при поиске выскакивает такая надпись “filter expression incorrectly terminated”. Только при использовании фильтра в числовых полях нет никаких ошибок. Использовать методы GoToNearest не могу, так как база не проиндексирована. Вообщем одни проблемы.
← →
Alex Y (2001-12-10 10:13) [5]Попробуй
Select * From Table1 Where Name = Any(Select Name,Count(*) as k From Table1 Where k > 1 Group By Name)
Медленно, но должно сработать.
← →
KMZ (2001-12-20 08:12) [6]Попробуй так:
Table1.filter:="Поле1="+edit1.text;
Table1.filtred:=true;
← →
Петрович (2001-12-20 09:21) [7]Smile, Кнопка звучит лучше! ;o)
По твоей проблеме! Как я понял, при фильтрации по числовым полям все нормально, а при строковым выскаивает ошибка?! Которая в переводе означает, что "выражение фильтра некорректно завершено". Т.о. решение проблемы следующее (слегка правим совет KMZ):
Table1.filtred:=false;
Table1.filter:="Поле1="""+edit1.text+""""; { Или вместо "" ставим ", я точно не помню, что там работает ;o) }
Table1.filtred:=true;
И все равно, "Кнопка" лучше звучит! ;o)
← →
Evgen1 (2001-12-20 17:05) [8]Если все еще нужно то маленькое дополнение
пример
Table1.filtred:=false;
Table1.filter:="Поле1="""+edit1.text+""""; { Или вместо "" ставим ", я точно не помню, что там работает ;o) }
Table1.filtred:=true;
будет работать в такой редакции
Table1.filtred:=false;
Table1.filter:="Поле1="+#39+edit1.text+#39;
Table1.filtred:=true;
#39 - код кавычки
← →
Smile (2001-12-25 11:31) [9]НЕт, это у меня что-то с глазами или моих 22 ответа действительно нет?
Мистика какая-то...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c