Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.28.48] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Подскажите как Зделать поиск по базе данных если я ввожу в Edit1 и мне надо чтобы точно я ввёл в поле Edit1 нашлось в поле базы
|
Сообщ.
#2
,
|
|
|
if Table1.Locate(SomeFieldName,Edit1.Text,[]) then ShowMessage('Запись найдена !');
|
Сообщ.
#3
,
|
|
|
Дважды щелкнуть по Эдиту и написать:
edit1.Text:=AnsiUpperCase (edit1.Text); TTable.SetKey; TTable.FieldByName(' тут пишеш имя поля по которому искать ').AsString:=Edit1.Text; Как только начинаеш вводить сразу идет поиск. (особый шик что без кнопки ;D); |
Сообщ.
#4
,
|
|
|
2Lexus: Да, но ведь база может быть огромной... и соответственно поиск может занимать уйму времени...
2All: Как произвести поиск через ADO по части слова находящемся в любом месте... т.е. например: есть база с одним полем "модели" и строками "BMV M3", "BMV M5", "Mercedes 320", "BMV Z3", ..... мне надо найти все записи где есть цифра "3" или буква "M"... Спасибо! |
Сообщ.
#5
,
|
|
|
BDQ: насчет скорости ты ошибаешся т.к. я достал БД телефонов и адресо своего города и написал прогу под нее, так вот у меня именно такой поиск и я незамечаю задержки. Потому что допустим ты набрал цифру "4", он покажет тебе первыйже номер начинающийся с нее, а не все существующие с первой цифрой "4".
|
Сообщ.
#6
,
|
|
|
Цитата Lexus, 16.02.03, 18:03:26 BDQ: насчет скорости ты ошибаешся т.к. я достал БД телефонов и адресо своего города и написал прогу под нее, так вот у меня именно такой поиск и я незамечаю задержки. Потому что допустим ты набрал цифру "4", он покажет тебе первыйже номер начинающийся с нее, а не все существующие с первой цифрой "4". Я называю это контекстным поиском. Когда-то я тоже написал телефонный справочник для своего города. Но добавил еще такую функциональную возможность, что-бы пользователь ChekBox-м мог переключать с режима контекстного поиска, на режим фильтрации, который осуществляется методом SetRange: procedure TfMain.Edit1Change(Sender: TObject); begin if Edit1.Text <> '' then begin if Length(Edit1.Text) <= 60 then begin if ChekBox.Cheked then begin fDm.tTel.CancelRange; fDm.tTel.SetRange([Edit1.Text],[Edit1.Text+'яя']); end else begin fDm.tTel.Locate('Phone', Edit1.Text,[loCaseInsensitive, loPartialKey]); end; end; end else begin if ChekBox.Cheked then fDm.tTel.CancelRange; fDm.tTel.First; end; end; |
Сообщ.
#7
,
|
|
|
И все же подскажите как в Delphi через ADO найти запись "Hammer" введя "mm"...
|
Сообщ.
#8
,
|
|
|
Цитата BDq, 18.02.03, 03:29:56 И все же подскажите как в Delphi через ADO найти запись "Hammer" введя "mm"... В ADO ничего быстрее квери не работает... Если по полю что ты ищешь есть индекс то работать будет пракически мгновенно при любых размерах (у меня на 50Gb таблице (MS SQL Server )во много миллионов рекордов при количестве пользователей несколько сотен подобные квери идут меньше секунды) <br>Select top 1 * From MyTable<br>Where MyField like '\%mm\%'<br> |