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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2008, 11:49   #1
Gooch
 
Регистрация: 30.03.2008
Сообщений: 4
Печаль поиск ни как не хочет работать

помогите плиз...хочу сделать поиск в БД асес через поле эдит по вводимому символу в столбце ФИО. я начинающий в кодинге. пересмотрел кучу форумов и справок везде одно и тоже:

procedure Edit1OnChange(...);
var i:integer;
begin
if not updating then exit; {сделайте обновление где-нибудь еще - например при срабатывании таймера}
updating:= false;
Table1.FindNearest([Edit1.text]);
ListBox1.clear;
i:= 0;
while (i < 5) and (not (table1.eof)) do

begin
listbox.items.add(Table1.fields[0].asString);
inc(i);
table1.next;
end;
listbox1.itemindex:= 0;
end;

или:

with MainForm.PatientTable do
begin
{ начинаем поиск имени }
IndexName := 'Name';
FindNearest([SearchFor.Text]);
end




не могу запустить ни чего из ентого...как только уже не пробывал редоктировать...прошу подсказать как сделать. если что то из кода проги выложить надо то обращайтесь. если всю прогу надо то пишите в личку я на маил скину.

Последний раз редактировалось Gooch; 30.03.2008 в 11:53.
Gooch вне форума Ответить с цитированием
Старый 30.03.2008, 12:12   #2
Professor Hubert
Пользователь
 
Аватар для Professor Hubert
 
Регистрация: 29.03.2008
Сообщений: 35
По умолчанию

Делай через ADOQuery.
Формируешь простейший запрос и результаты выводишь куда тебе надо. DBGrid например.
Пример использования.
Код:
Var uslovie:string;
Uslovie:= '%'+edit1.text+'%';

With ADOQuery1 do begin
       Close;
       SQL.Clear;
       SQL.ADD('SELECT * FROM maintable ');
       SQL.ADD('WHERE name LIKE '+quotedstr(Uslovie)')
       Open;
end;
Конечно если у тебя несколько таблиц, надо их связать.

Есть другой вариант, попроще через filter. Используешь компонент ADOTable.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
     if Length(Edit1.Text)>0 then
         ADOTable1.Filtered:=true
     else
         ADOTable1.Filtered:=false;
         
     ADOTable1.Filter:='name  like '+'%'+Edit1.Text+'%';

end;
Professor Hubert вне форума Ответить с цитированием
Старый 30.03.2008, 13:15   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Если хочется через ADOTable сделать, посмотрите хэлп по Table.Locate - там есть готовые примеры использования.
mihali4 вне форума Ответить с цитированием
Старый 30.03.2008, 21:16   #4
Gooch
 
Регистрация: 30.03.2008
Сообщений: 4
По умолчанию

поиск сделал спасиб...а вот ещё такой вопрос...как сделать так чтоб скомпелированному файлу не нано было постоянно указывать где БД расположенна?
Gooch вне форума Ответить с цитированием
Старый 30.03.2008, 22:12   #5
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
как сделать так чтоб скомпелированному файлу не нано было постоянно указывать где БД расположенна
Код:
ExtractFilePath(Application.ExeName)
dron-s вне форума Ответить с цитированием
Старый 04.04.2008, 20:30   #6
Gooch
 
Регистрация: 30.03.2008
Сообщений: 4
По умолчанию

Цитата:
Код:
view plaincopy to clipboardprint?

ExtractFilePath(Application.ExeName )
хм...а можно поподробнее с этим кодом...и я посетил указанный форум...там написано что если через бде делать то работать не будет...а у меня через адо сделано...
Gooch вне форума Ответить с цитированием
Старый 05.04.2008, 20:53   #7
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Либо как выше..либо...:

Код:
Table1.TableName:=GetCurrentDir+'\data_cb.dbf' ;
Table1.open;
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестал работать поиск в ХРюше. Adamant Свободное общение 5 23.08.2008 01:30
Кто хочет кнопку? Altera Компоненты Delphi 23 12.05.2008 17:01
почему не хочет увеличыватся digit2.Value? ZhekON Помощь студентам 2 19.04.2007 18:23
кто хочет бесплатные скрипты? Sjava Свободное общение 9 17.11.2006 07:26