Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чайник простит помочь! [D6, IB6.x]


Амир ©   (2003-09-23 07:50:00) 

Подскажите пжл как производится поиск в базе данных, как это написать, поподробнее если можно.
пробовал
Table1.IndexName := "ind_Name";
Table1.Active := True;
Table1.SetKey;
Table1.FieldByName("Name").AsString := Edit1.Text;
Table1.SetKey;
ввожу в edit1.text фамилию, а не пашет!


Anatoly Podgoretsky   (2003-09-23 12:21:00) [1]

Во второй раз надо Table1.GotoKey;

ЮЮ © (23.09.03 08:50) [2]
Для FindKey - первые два неприменимы, это ошибка.


kaif   (2003-09-23 12:19:00) [2]

IB 6.x - сервер баз данных.
Все общениес ним происходит с помощью SQL-запросов.
Даже компонент TTable на самом деле посылает серверу SQL-запросы:
для получения набора данных:
select * from <имя таблицы>
для модификации строки:
update <имя таблицы> set <поле>=<значение>,<поле>=<значение>,...
where <поле>=<старое значение> and <поле>=<старое значение>...
для удаления строки:
delete from <имя таблицы>
where <поле>=<старое значение> and <поле>=<старое значение>...
для вставки строки:
insert into <имя таблицы> (<список полей>)
values (<список значений>)

Изучив эти 4 незамысловатые команды, ты можешь делать с таблицами все, что угодно с помощью компонентов TQuery, а еще лучше - TIBQuery (они напрямую обращаются к серверу без использования BDE)

Например, для того, чтобы найти все записи в одной таблице, удовлетворяющие условию, нужно написать текст запроса в свойстве IBQuery1.SQL.Text =
select * from <имя таблицы>
where <условие>
и вызвать метод
IBQuery1.Open.

Изучи SQL - не пожалеешь. Так как ты сможешь не только делать поиск по одной таблице, но и поиск с объединением таблиц и вообще очень быстро и красиво работать с данными.


ZoKr   (2003-09-23 11:59:00) [3]

Ещё можно использовать фильтрацию через TQuery, тогда не нужны индексы, но нужно знание хотя-бы основ SQL.


BAYES   (2003-09-23 11:58:00) [4]

IB6.x????
Ты точно постаил галочки там где надо. Если да, то запросом будет намного лучше.


BAYES   (2003-09-23 11:53:00) [5]

Добавлю к сообщению >ss300
Table1.Locate("Fam",Edit1.Text,[locaseInsensitive, loPartialKey]);
т.е. locaseInsensitive-без учета регистра
loPartialKey-удов. поиск если будет даже часть поискового контекста.


ЮЮ   (2003-09-23 08:50:00) [6]

Table1.SetKey;
Table1.FieldByName("Name").AsString := Edit1.Text;
Table1. FindKey;


ss300   (2003-09-23 08:21:00) [7]

Table1.Lacate("Name",Edot1.Text,[]);
если с индексов, то моно использовать Table1.Lookup


Наверх

Титульная страница Поиск, карта сайта Написать письмо