|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2009, 12:47 | #1 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
Помогите, пожалуйста разобраться с поиском в БД (Delphi7)
Отдельное спасибо, за предыдущую помощь в разработке этой базы данных Михалычу!!!
Не получается запрос в таблице Абоненты, подскажите, что не так делаю. procedure TForm3.RadioButton1Click(Sender: TObject); begin DataModule2.TAbonent.IndexFieldName s :='Family'; end; procedure TForm3.FindEditChange(Sender: TObject); begin if Length(FindEdit.Text)=0 then // если FindEdit пуст DBGrid1.DataSource:=DataModule2.FIN D_DS // отображать FIND_DS else // иначе begin // запрос на отображение в гриде по любому совпадению текста в FindEdit DataModule2.FINDQuery.SQL.Text:= 'SELECT * FROM Abonent WHERE (Family LIKE '+QuotedStr(FindEdit.Text+'%')+')'; DataModule2.FINDQuery.Open; DBGrid1.DataSource:=DataModule2.FIN D_DS; end; end; База прилагается )) Заранее большое спасибо! |
27.01.2009, 13:28 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А чего удивляться-то? У вас FIND_DS на какой датасет подцеплен?
Правильно, на таблицу абонентов. Вот вам и отображается неизменная таблица абонентов - даже если сделать забытое вами DataModule2.FINDQuery.Close; перед DataModule2.FINDQuery.SQL.Text:='.. .' |
27.01.2009, 13:40 | #3 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
Не понимаю, у меня же поиск идет по таблице Абоненты? Или мне нужно создать другую таблицу?
|
27.01.2009, 13:42 | #4 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
Извините, за такие вопросы, уже весь в учебниках зарылся, очень сложно разбираться с нуля.
|
27.01.2009, 13:44 | #5 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Да просто у FIND_DS в качестве параметра DataSet должно быть указано FINDQuery, а не TAbonent...
Вы же хотите увидеть данные не из TTable, а из TQuery... |
27.01.2009, 13:47 | #6 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
у меня выбирается в параметре DataSet только таблицы, может я не так что делаю?
|
27.01.2009, 18:45 | #7 | |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
Цитата:
Все работает )) procedure TForm3.Button1Click(Sender: TObject); begin if RadioButton1.Checked then begin if not DataModule2.TAbonent.Locate('Family ', Form3.FindEdit.Text, []) then ShowMessage ('Запись не найдена'); end else if RadioButton2.Checked then begin if not DataModule2.TAbonent.Locate('Name', Form3.FindEdit.Text, []) then ShowMessage ('Запись не найдена'); end else if RadioButton3.Checked then begin if not DataModule2.TAbonent.Locate('City', Form3.FindEdit.Text, []) then ShowMessage ('Запись не найдена'); end else if RadioButton4.Checked then begin if not DataModule2.TAbonent.Locate('Street ', Form3.FindEdit.Text, []) then ShowMessage ('Запись не найдена'); end; end; Начну разбираться с самым сложным для меня: формированием таблицы счетов... |
|
27.01.2009, 19:25 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
|
27.01.2009, 19:32 | #9 |
Форумчанин
Регистрация: 11.01.2009
Сообщений: 102
|
Менять нужно в Object Inspector? Если так, то в ручную не получается. Может можно где то в другом месте прописать?
Выдает ошибку FIND_DS: Circular datalinks are not allowed Если у Вас получилось скиньте, пожалуйста, исправленную базу. |
27.01.2009, 19:37 | #10 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите, пожалуйста разобраться с калькулятором | KARUSHEV | Помощь студентам | 5 | 14.01.2009 18:04 |
Пожалуйста помогите разобраться) | Atij1 | Общие вопросы C/C++ | 4 | 13.04.2008 20:32 |