Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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 ответа действительно нет?
Мистика какая-то...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.026 c
14-90372          Digitman              2001-12-03 15:27  2002.01.28  
Win32.Invictus + I-Warm.Toil !!!!!!!!!


4-90419           bob green             2001-11-29 08:57  2002.01.28  
WinAPI


1-90267           elk                   2002-01-09 13:24  2002.01.28  
перекодировка hello <-> руддщ


6-90329           Alexandr              2001-11-05 12:14  2002.01.28  
Print Server и печать из-под DOS


14-90355          limon                 2001-12-03 18:31  2002.01.28  
Пример диалога со службой технической поддержки