Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.005 c
4-90425
Gennady
2001-11-29 11:25
2002.01.28
Clipboard снова...


4-90406
vov1
2001-11-24 10:59
2002.01.28
ToolBar


6-90348
evgen_2001
2001-11-05 16:10
2002.01.28
Передача структуры по сокету


4-90429
Yuriy
2001-11-25 22:13
2002.01.28
ShellExecute ?


1-90314
Teapot
2002-01-08 14:30
2002.01.28
Печать на матричный принтер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский