Помощь - Поиск - Пользователи - Календарь
Полная версия: Поиск в БД
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
BAEVIK
Есть БД PARADOX нада сделать так чтобы когда водиш любое слова в edit оно его искала в таблице в колонке Название и потом выводила результат поиска ! Если кто знает подскажите !
Client
Table1.IndexName:='';// имя индексного файла (по полю название)
if table1.FindKey([edit1.Text]) then begin
...
end
else ShowMessage('не найдено!');
BAEVIK
Спасибо вот теперь такой вопрос как сделать так чтобы когда нашло выводила всю строку в DBGRID и если нашло не раз водимае слово то выводила все строчки в которых есть это слова ! Помогите пожалуйсто если не трудно просто мне это для курсача нада я всё сделал тока с поискам не как не могу додуматься !
Client
Попробуй сделать фильтрацию
BAEVIK
Спасибо когнечно за совет но я попрошу помогите пожалуйсто написать весь код просто я вообще поиск не понимаю пытался как-то разобраться но всё равно не чево не понял . Если вам не трудно напишите код полностью.
Client
procedure TForm3.Button8Click(Sender: TObject);
var
s:string;
begin
s:=Edit1.Text;
if CheckBox1.Checked then // это ПОЛНОЕ СОВПАДЕНИЕ ИЛИ ЧАСТИЧНОЕ
edit1.Text:='Adres='+chr(39)+edit1.Text+chr(39) //адрес это мое поле было
else edit1.Text:='Adres='+chr(39)+edit1.Text+'*'+chr(39);
table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s;
end;
Это пример из моей проги по фильтрации по полю АДРЕС
Для фильтрации по нескольким полям сам не знаю как сделать(
Что не понятно?
BAEVIK
Цитата(Client @ 2.06.2009 21:54) *

procedure TForm3.Button8Click(Sender: TObject);
var
s:string;
begin
s:=Edit1.Text;
if CheckBox1.Checked then // это ПОЛНОЕ СОВПАДЕНИЕ ИЛИ ЧАСТИЧНОЕ
edit1.Text:='Adres='+chr(39)+edit1.Text+chr(39) //адрес это мое поле было
else edit1.Text:='Adres='+chr(39)+edit1.Text+'*'+chr(39);
table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s;
end;
Это пример из моей проги по фильтрации по полю АДРЕС
Для фильтрации по нескольким полям сам не знаю как сделать(
Что не понятно?

Спасибо,Попробую сделать!
BAEVIK
ДА чёт я делал не фига не получилась, может поможете я код вставил на кнопку всё проходит вроде без ошибак но когда вожу слова или букву кидает ошибку и всё ! Я вот за архивировал курсач помагите если можете и пожалуйсто если не трудно напишите в чём ошибка !
Client
Ни одной строки кода твоего не видно,чтоб говорить
Цитата
ДА чёт я делал не фига не получилась
BAEVIK
Вот я так попробывал сделать !
procedure TForm3.Button1Click(Sender: TObject); 
var s:string;
begin Table1.IndexName:='Name';// имя индексного файла (по полю название)
if table1.FindKey([edit1.Text]) then begin
s:=Edit1.Text;
if CheckBox1.Checked then // это ПОЛНОЕ СОВПАДЕНИЕ ИЛИ ЧАСТИЧНОЕ edit1.Text:='Name='+chr(39)+edit1.Text+chr(39) //name это мое поле было
else edit1.Text:='Name='+chr(39)+edit1.Text+'*'+chr(39);
table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s; end; end;

Когда запускаю всё без ошибак но потом когда в едит вожу букву то вот такое получаеться на скринах сматри !
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Client
Table1.IndexName:='Name';// имя индексного файла (по полю название)
Это я пример привел. Для фильтрации не нужен индексный файл
procedure TForm3.Button1Click(Sender: TObject); 
var s:string;
begin
edit1.Text:='Name='+chr(39)+edit1.Text+chr(39) //ВМЕСТО NAME= пишешь СВОЕ ПОЛЕ и знак =
table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s;
end;

На скрине не видно чтоб дбгрид был привязан к таблице
BAEVIK
Цитата(Client @ 3.06.2009 13:21) *

Table1.IndexName:='Name';// имя индексного файла (по полю название)
Это я пример привел. Для фильтрации не нужен индексный файл
procedure TForm3.Button1Click(Sender: TObject); 
var s:string;
begin
edit1.Text:='Name='+chr(39)+edit1.Text+chr(39) //ВМЕСТО NAME= пишешь СВОЕ ПОЛЕ и знак =
table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s;
end;

На скрине не видно чтоб дбгрид был привязан к таблице


У меня поле называеться Name дбгрид забыл привезать счас ! !

Добавлено через 11 мин.
Всё проходит без ошибак только вот один вопрост не чево не показывает ? Нада писать полностью название я писал одно слова !
Client
Поиск идет по слову целиком, а не по части слова. Для этого и нужна была *
BAEVIK
Поиск может идёт но не чево не показывает на скринах показана 1 скрин это типа запуск проги 2 скрин это вот слова которое ищём 3 скрин это что получается после нажатия на кнопку поиска !
1)Нажмите для просмотра прикрепленного файла
2)Нажмите для просмотра прикрепленного файла
3)Нажмите для просмотра прикрепленного файла
А это текс который вставлен на кнопку поиска !

procedure TForm3.Button1Click(Sender: TObject);
var
s:string;
begin
edit1.Text:='Name='+chr(39)+edit1.Text+chr(39); //адрес это мое поле было
Table1.Filtered:=True;
Table1.Filter:=edit1.Text;
edit1.Text:=s;
end;
BAEVIK
Что не кто не знает (((( unsure.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.