ПРОБЛЕМА!!!

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

ПРОБЛЕМА!!!

Сообщение krecha » 16 дек 2005, 13:05

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 13:30

AlexandrS писал(а):Выполни запрос:

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

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 13:39

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

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 13:52

AlexandrS писал(а):Свою, так свою :)

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 17:41

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 18:19

AlexandrS писал(а):Для начала конечно поругать за использование ibTable. Учите SQL!

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

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

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

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 16 дек 2005, 18:42

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 19:32

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

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

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

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 16 дек 2005, 19:37

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

krecha
Сообщения: 8
Зарегистрирован: 14 дек 2005, 17:44

Сообщение krecha » 16 дек 2005, 20:03

Спасибо, большое, не буду вас больше отвлекать

Ответить