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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 13:19   #1
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию Выборка из базы по неполным именам

При помощи такого кода выбираю данные из базы access:
Код:
ADOTable1.First;
        for k:=1 to ADOTable1.RecordCount do
        begin
        if ADOTable1.FieldByName(pole).Value = edit2.Text  then
                                 Begin
                                  sz:=sz+1;
                                  Ap.Cells[sz,1].Value :=   ADOTable1.FieldByName('fio').Value;
                                  Ap.Cells[sz,2].Value :=   ADOTable1.FieldByName('OtdUpr').Value;
                                  Ap.Cells[sz,3].Value :=   ADOTable1.FieldByName('otdel').Value;
                                  Ap.Cells[sz,4].Value :=   ADOTable1.FieldByName('dolg').Value;
                                  Ap.Cells[sz,5].Value :=   ADOTable1.FieldByName('Knomber').Value;
                                  Ap.Cells[sz,6].Value :=   ADOTable1.FieldByName('data_wyd').Value;
                                  Ap.Cells[sz,7].Value :=   ADOTable1.FieldByName('data_sda').Value;
                                  Ap.Cells[sz,8].Value :=   ADOTable1.FieldByName('wydana').Value;
                                  Ap.Cells[sz,9].Value :=   ADOTable1.FieldByName('prim').Value;
                                  Application.ProcessMessages();
                                  end;
        ADOTable1.Next;
        end;
Если указываю полное значение ячейки то работает. При неполном значении естественно результата нет.
Есть какой-нибудь финт, чтобы при минимальном изменении кода заставить работать выборкку по неполным значениям ?
Как это делают в "нормальном" виде ?
sergey113 вне форума Ответить с цитированием
Старый 29.03.2011, 13:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ужас... Зачем пытаться моделировать отборку на ADOTable,
когда давно уже придумали SQL !!!

Берите ADOQuery - заносите туда запрос (select * from Таблица where ЧтоТо Like ... )
и получите результат!


p.s. а вообще очень рекомендую ознакомится с основами SQL - это весьма интересно и полезно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2011, 14:34   #3
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

да. Это будет мой следующий шаг. Пока по быстрому делаю так, что быстрее понимаю.
Т.е. без sql и Query не получится ?
sergey113 вне форума Ответить с цитированием
Старый 29.03.2011, 14:57   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Т.е. без sql и Query не получится ?
да почему не получится, получится...

Только определитесь, что в Вашем случае означает: "выборкку по неполным значениям"

например, если в переменной pole - имя поля, которое хранит строковое значение (char, varchar и т.п.), а в edit2.Text находится текст, начало которого совпадает с требуемыми записями,
(например, pole - это фамилия.
в базе:
Андреев
Иванцов
Антонов
Иващенко
Ивлев
Анохин
Бариванов

и в
edit2.Text вы задали текст Ива и должны отобраться
Иванцов
Иващенко

(т.е. начало фамилии совпадает с заданным текстом, тогда напишите так:
Код:
 if Pos(edit2.Text, ADOTable1.FieldByName(pole).Value) =  1  then ...
исли при этом нужно, чтобы прописные/строчные буквы не различались:
Код:
 if Pos(AnsiUpperCase(edit2.Text), AnsiUpperCase(ADOTable1.FieldByName(pole).Value)) =  1  then ...
а если нужно, чтобы нашёл даже Бариванов
тогда:
Код:
 if Pos(AnsiUpperCase(edit2.Text), AnsiUpperCase(ADOTable1.FieldByName(pole).Value)) >0  then ...


как говорится - хотите извращений - извращайтесь на здоровье!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2011, 15:45   #5
sergey113
Форумчанин
 
Регистрация: 12.12.2007
Сообщений: 104
По умолчанию

ОГРОМНОЕ СПАСИБО.
работает.

Последний раз редактировалось sergey113; 29.03.2011 в 15:51.
sergey113 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из базы MS Access Provoking Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 06.03.2011 20:39
Выборка сведений из базы данных sinobithug PHP 4 08.12.2010 20:25
Выборка по очереди записей из базы данных mulatoschka1990 Помощь студентам 3 18.03.2010 16:31
Выборка из базы данных fygas1991 PHP 3 07.12.2009 23:54
выборка из базы Alex_2007_bur БД в Delphi 18 04.09.2009 12:14