Страница 1 из 1

ПРОБЛЕМА!!!

Добавлено: 16 дек 2005, 13:05
krecha
Народ подскажите как реализовать следующую задачу. Есть программа телефонный справочник, написанная на Delphi 7+IBX Firebird. Необходимо добавить функцию поиска абонента по первой букве фамилии (ну то есть вводишь в EditBox букву, жмёшь на кнопку, и тебе выдаётся список людей, фамилия которых начинается на введённую букву). Дак вот вопрос как это реализовать?
PS. Сильно не пинайте, вопрос вроде сформалировал понятно:)

Добавлено: 16 дек 2005, 13:30
krecha
AlexandrS писал(а):Выполни запрос:

Код: Выделить всё

SELECT ... FROM ... WHERE FIELD STARTING WITH 'A'
Имеется ввиду прописать этот код при нажатии на кнопку (то есть как событие)?

Добавлено: 16 дек 2005, 13:39
krecha
AlexandrS писал(а):
krecha писал(а):Имеется ввиду прописать этот код при нажатии на кнопку (то есть как событие)?
Так, понятно, новичек, программу явно чужую дорабатываем.

Раз так, то давайте с самого начала, скорей всего у вас есть DBGrid, в котором отображается информация, при поиске скорей всего вам нужно отобразить в этом гриде, только тех людей, у которых фамилия начинается с введенной буквы. Если все, так как я описал, то теперь самый главный вопрос, кто является источником данных для грида (ibTable, ibQuery или ibDataSet)?
Нет свою:)
Да, вы все правильно описали.
Источником является ibDataSet.

Добавлено: 16 дек 2005, 13:52
krecha
AlexandrS писал(а):Свою, так свою :)

Раз DataSet, то ваша задача сводится к тому, что по кнопке поиска вы закрываете DataSet и в Where часть выборки (DS.Sql.Select и DS.Sql.Refresh) должны добавить условие фильтрации
FIELD STARTING WITH 'A'
После чего просто открыть DataSet
Большое спасибо, вечером попробую, если возникнуть вопросы, отпишусь:)

Добавлено: 16 дек 2005, 17:41
krecha
Небольшая поправочка, источником грида является ibTable:)
Что в таком случае поменяется?
PS. Приведенный выше пример статический (на сколько я понимаю), а хотелось бы, чтобы пользователь вводил букву, по которой нужно осуществлять поиск.

Добавлено: 16 дек 2005, 18:19
krecha
AlexandrS писал(а):Для начала конечно поругать за использование ibTable. Учите SQL!

Ладно, теперь вернемся к нашим баранам. Для ibTable будем использовать свойство Filter (у ibDataSet и ibQuery - это свойство не реализовано)
Обработчик кнопки будет иметь приблизительно такой вид:

Код: Выделить всё

IBTable1.Filter:= 'имя_поля like ''А%''';
IBTable1.Filtered:= True;
- это я так понимаю строка (буква), которую вводит пользователь?

Добавлено: 16 дек 2005, 18:42
Merlin
AlexandrS писал(а): Хелп и основы SQL ну ни как хотим посмотреть...
А он ждёт когда ты ему это всё сюда запостишь.

Добавлено: 16 дек 2005, 19:32
krecha
Merlin писал(а):
AlexandrS писал(а): Хелп и основы SQL ну ни как хотим посмотреть...
А он ждёт когда ты ему это всё сюда запостишь.

Не буду разводить флуд. Я обрптился сюда потаму, что не знаю как сделать, уж извините:)

Осмелюсь задать еще один вопрос.
Данный запрос формируется в самом коде, а не интерактивно пользователем, то есть запись ищется, но буква вводится непосредственно в самом коде, а хотелось бы чтобы букву сам пользователь вводил... Уж не бейте сильно, но не знаю как сделать это :roll:

Добавлено: 16 дек 2005, 19:37
Merlin
Скажи отцу, чтоб впредь предохранялся (С) :-D В папку examples заглянул бы што ли, раз Programmers Guide и книжки читать, а также нажимать периодицки F1 лень...

Добавлено: 16 дек 2005, 20:03
krecha
Спасибо, большое, не буду вас больше отвлекать