Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск(ADOTable+MSAccess) 
V
    Опции темы
Palladin
Дата 23.4.2009, 10:44 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



В триллионый раз поднимаю тему поиска, т.к. в поисковике не нашел ничего подходящего. Задача такова, есть таблица по ней необходимо сделать поиск на выбор по одному либо по ругому полю(все зависит от выбора в радиогруппе) Но именно поиск, не фильтр. И поиск не на 100%, а к примеру введем букву В указатель переместится на первую строку в которой В первая, наберем Валь, Указатель на первую строку в которой в поле встретилось Валь и т.п.
Попробовал Locate вообще ничего не ошибок не результата



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Данкинг
Дата 23.4.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А запрос с where... чем плох? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Palladin
Дата 23.4.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Не владею smile Если можешь напиши плз эту часть кода:
у меня поле 'ФИО' искать то что в FindEdit


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Данкинг
Дата 23.4.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



В общем случае - 
select * from BASE where FIO like ' "%'+trim(FindEdit.Text)+'%" '

Это сообщение отредактировал(а) Данкинг - 23.4.2009, 11:04


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Palladin
Дата 23.4.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Хм=) как бы это помягче сказать=) я даже незнаю где это писать smile с запросами вообще никогда не работал smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
insoft
Дата 23.4.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

Репутация: 3
Всего: 3



выброси ADOTable и используй ADOQuery...
в ADOQuery в SQL пишешь запрос которой тебе необходим (в текущем случае это то что написал тебе Данкинг
или же можно всё сделать программным путём ;)
PM MAIL WWW   Вверх
Данкинг
Дата 23.4.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Palladin @ 23.4.2009,  12:14)
Хм=) как бы это помягче сказать=) я даже незнаю где это писать smile с запросами вообще никогда не работал smile

Ну так это (приёмы работы с БД) в любых книгах для начинающих описываются. А так ты в любом случае не поймёшь...

Код

Query.Close;
Query.SQL.Clear;
Query.SQL.Add(select * from BASE where FIO like ' "%'+trim(FindEdit.Text)+'%" ');
Query.Open;





--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Palladin
Дата 23.4.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Как я понял к ADOTable мне это не прикрутить, он SQL не держит да?
А для ADOTable есть какойнить метод, а то как-то переписывать много где придется:(


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
insoft
Дата 23.4.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

Репутация: 3
Всего: 3



Palladin
только использовать Filter и Filtered
PM MAIL WWW   Вверх
Данкинг
Дата 23.4.2009, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Palladin @  23.4.2009,  12:30 Найти цитируемый пост)
Как я понял к ADOTable мне это не прикрутить, он SQL не держит да?

Или
Цитата(insoft @  23.4.2009,  12:32 Найти цитируемый пост)
только использовать Filter и Filtered 

 - но ИМХО это извращение, хотя в редких случаях бывает удобно. Но лучше не привыкай к фильтрам.




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
insoft
Дата 23.4.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

Репутация: 3
Всего: 3



Цитата(Данкинг @  23.4.2009,  11:41 Найти цитируемый пост)
но ИМХО это извращение, хотя в редких случаях бывает удобно. 

самый полный
но если нет времени разбираться а сделать всё тап-ляп, то пойдёт smile
PM MAIL WWW   Вверх
Palladin
Дата 23.4.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Лана значит будет урок на будущее, придется программно, т.к. очень многое уже написано при замене ADOTable на ADOQuery придется считай заново всю программу написать smile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
insoft
Дата 23.4.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 14.2.2007
Где: Тюменская область , г.Тобольск

Репутация: 3
Всего: 3



Palladin
да не мучайся  ты
используй Filter и Filtered
Код

ADOTable.Filter := 'select * from BASE where FIO like ' +QuotedStr(FindEdit.Text)+'%');
ADOTable.Filtered := True;

тоже самое будет

Это сообщение отредактировал(а) insoft - 23.4.2009, 12:05
PM MAIL WWW   Вверх
Palladin
Дата 23.4.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Маразм крепчал и я нашел выход из положения smile 
была фильтрация, сделал поиск
было:
Код

...............................................................................
if(RadioGroup1.ItemIndex=0)then
begin
if Length(Edit1.Text)>0 then
ADOTable1.Filtered:=true
else
ADOTable1.Filtered:=false;

ADOTable1.Filter:='ФИО>='''+Edit1.Text+'''';
end;
...............................................................................


стало:
Код

var
i:integer;
............................................................................................
if(RadioGroup1.ItemIndex=0)then
begin
if Length(Edit1.Text)>0 then
ADOTable1.Filtered:=true
else
ADOTable1.Filtered:=false;

ADOTable1.Filter:='ФИО>='''+Edit1.Text+'''';
if(adotable1.Filtered=true) then begin i:=ADOTable1.RecNo; ADOTable1.Filtered:=false; ADOtable1.RecNo:=i; end;
end;
............................................................................................


Как видно по коду идет фильтрация, при ней находится нужная запись, запоминается номер строки, потом отключаем фильтрацию и по рекно переходим к нужной записи smile 
Интересно что будет происходит на экране если в таблциу забить 10к записей smile 

P.S. Такого маразма давно не писал smile

Добавлено через 1 минуту и 37 секунд
2insoft, При фильтрации скрываются не подходящие условию записи, мне это ненадо, мне надо чтобы были видны все, а коретка так сказать подгонялась к найденной


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Kbl4AH
Дата 23.4.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Palladin @  23.4.2009,  11:44 Найти цитируемый пост)
Попробовал Locate вообще ничего не ошибок не результата

Ничего подобного, все работает, проверено smile 
Код

procedure TForm1.Edit1Change(Sender: TObject);
begin
  ADOTable1.Locate('ename', Edit1.Text, [loPartialKey]);
end;

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1241 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.