![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.03.2011
Сообщений: 31
|
![]()
Здравствуйте, у меня такая проблема, я хочу сделать фильтрацию в БД.
Пример: На форме таблица, радиокнопки, edit и bitbtn. При нажатии на кнопку он берёт данные из edit'a, смотрит по какому критерию делать фильтр (радиокнопка) и выводит в таблице. У меня был рабочий код (тетрадь к сожалению утерял, а исходников на компе не нашлось) - поэтому прошу форумчан оказать мне помощь. На память было что то подобное: Код:
UPD: Еще есть мысли по поводу этого кода - однако таблица не реагирует, может кого нибудь приведёт к правильной мысли: Код:
Последний раз редактировалось nursak; 24.05.2011 в 16:08. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
![]()
Здравствуйте
Код:
Код:
Добавка Сразу не увидел ![]() Добавка 2 Вам надо заменить Table1 на запрос в качестве набора данных и тогда не Query1 менять, а этот запрос (который вместо Table1). НО, после Вашей фильтрации Вы не сможете выбирать фамилию из списка, т.к. останется одна, выбранная Вами последней! Последний раз редактировалось OlegVE; 24.05.2011 в 17:20. Причина: Добавка |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.03.2011
Сообщений: 31
|
![]() Код:
Про добавку 2 можно поподробней? UPD: Form6 моя ошибка - я скопипастил код, и забыл его поменять, извините что ввёл в заблуждение. =( Последний раз редактировалось nursak; 24.05.2011 в 18:06. Причина: Не умею кодить |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
![]()
Сохраните проект.
Киньте на форму ещё один DataSource (подключите его к Form2.Query1), DBGrid (подключите к этому DataSource), в Form2.Query1.SQL изначально запишите (а может через кнопку записать) select * from abonents.db . И понаблюдайте. Может для тогда вырисуется конечная цель и Вы измените подход. Про добавку 2. Вы меняете набор данных (Query1), а в Вашей DBGrid (или ещё где-то) отображаются данные из другого набора (Table1) и они друг на друга не влияют. Если Вам заменить Table1 на запрос, то при фильтрации, у Вас пропадут все остальные фамилии кроме последней, выбранной Вами, а Вы берёте список фамилий из Form2.DataSource1.DataSet.FieldValu es['Familiya']. Может Вам лучше использовать отношение Master-Detail, тогда у Вас для выбранной фамилии в одной DBGrid будут отображаться все данные в другой DBGrid. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.03.2011
Сообщений: 31
|
![]()
Вот блин, я ведь забыл сделать так - чтобы входные данные для фильтрации для брались из Edit1. Пишу в строчке Form2.Query1.SQL.ADD('where (Familiya="'+Edit1.Text+'") ');
Он всё так же не реагирует, будто никакого нажатия кнопки и нет вовсе. Про первую строчку я не особо понял - если обойтись без использования table1 - это может дать какое то преимущество/скорость? Я делаю как меня научили в колледже, поэтому код получается такой кривой. Про добавку 2 - Вы меня еще больше запутали, я там всё очень смутно понял - и врядли смогу данное действие осуществить. Спасибо за отклик |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 27.03.2011
Сообщений: 31
|
![]()
тема еще актуальна
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
![]()
Здравствуйте
У вас разные наборы данных, один - Table1 второй - Query1 которые Вы получили из таблицы abonents.db. Table1 отображает всё, что есть в этой таблице (abonents.db), если вы не указали поля которые отображать. Query1 отображает из той-же таблицы всё, что Вы запросили с помощью select ... С таблицей abonents.db ничего не происходит, если Вы не пользуетесь, например, UPDATE или INSERT. За ними (наборами данных Table1 и Query1) Вы ставите DataSource которые служат интерфейсом между Data Controls и DataSet. В вашем случае, изменяя Query1, Вы никак не влияете на Table1. Чтобы отображать данные (это с целью тестирования, а не окончательный ответ) в соответствие с Query1, Вам надо создать и подключить DataSource к нему, а к последнему создать и подключить, например, DBGrid. Попробуйте добавить их в Ваш проект и посмотреть, что я Вам и предлагал ранее. До свидания Добавка. Может я неправильно выразился, тогда рассматривайте Table1 как Form2.DataSource1.DataSet Последний раз редактировалось OlegVE; 25.05.2011 в 18:04. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 27.03.2011
Сообщений: 31
|
![]()
Спасибо, но к сожалению я ничего не понял
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
D7+Paradox - как сделать редактирование БД | nursak | Помощь студентам | 6 | 23.05.2011 19:21 |
Как произвести фильтрацию данных | Dronlion | Microsoft Office Excel | 2 | 12.04.2011 22:48 |
Как сделать вывод данных после всего ввода данных. | Donatello | Общие вопросы C/C++ | 6 | 16.01.2011 16:32 |
Как снять пароль на базы данных Paradox | Viktoria30 | БД в Delphi | 3 | 02.02.2009 13:15 |