С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125

DBGrid, ADOQuery и запрос с Edit

19.11.2015, 16:29. Показов 2864. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Простите за простой вопрос, но полдня поисков не дало нужного результата. У меня не выводит данные запроса, введенный в Edit, в таблицу DBGrid

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::EditSearchChange(TObject *Sender)
{
    if (EditSearch->Text.IsEmpty()) { 
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT * FROM Patient");
        ADOQueryPatient->Open();
    }
    else { 
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT * FROM Patient WHERE [Name] LIKE '*"
                + EditSearch->Text + "*'");
        ADOQueryPatient->Open();
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.11.2015, 16:29
Ответы с готовыми решениями:

Запрос ADOQuery со сменой параметров и повторный вывод в DBGrid
Ребята, такая проблема, мучаюсь целый день. Есть следующий код: void __fastcall TForm4::SpeedButtonZAPRClick(TObject *Sender) { ...

Запрос AdoQuery, соединение с таблицами в разных формах. Delphi. DBGrid
Здравствуйте, помогите пожалуйста! В общем нужно чтоб при выборе определенного (курса)из грида, а после нажатии "выбрать",...

Delphi. SQL запрос ADOQuery. Выборка из Dbgrid в разных формах
помогите! не понимаю как сделать то что задумала. Есть таблица Курс (код, курс) и предметы(код, КодСтудента, кодДисциплины, кодСеместра,...

10
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
19.11.2015, 18:07
А как ты DBGrid подключил?
А так работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (EditSearch->Text.IsEmpty()) {
        ADOQueryPatient->Close();
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT * FROM Patient");
        ADOQueryPatient->Open();
    }
    else {
        ADOQueryPatient->Close(); 
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT * FROM Patient WHERE [Name] LIKE '"
                + EditSearch->Text + "%'");
        ADOQueryPatient->Open();
    }
0
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125
19.11.2015, 18:30  [ТС]
Подключил DBGrid с помощью ADOQuery + DataSourse

Нет работает

Добавлено через 9 минут
Я пробовал запрос с верхней части кода в нижнюю. Тогда отображает все записи при вводе в Edit
0
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
20.11.2015, 00:42
попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
if (EditSearch->Text.IsEmpty()) { 
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT * FROM Patient");
        ADOQueryPatient->Open();
    }
    else { 
        ADOQueryPatient->SQL->Clear();
        ADOQueryPatient->SQL->Add("SELECT Patient.*, Patient.Name FROM Patient WHERE (((Patient.Name) LIKE \"*" + EditSearch->Text + "*\"));");
        ADOQueryPatient->Open();
    }
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
20.11.2015, 00:55
Цитата Сообщение от avpdnepr Посмотреть сообщение
У меня не выводит данные запроса, введенный в Edit, в таблицу DBGrid
Тогда запрос надо отправлять из в Edit вам это ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::btn1Click(TObject *Sender)
{
if (Trim(Edit1->Text)!="")
     {
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add(Edit1->Text);
        ADOQuery1->Open();
     }
     else
     {
        ADOQuery1->Close();
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add(" SELECT * FROM Employees ");
        ADOQuery1->Open();
     }
}
Я пробовал запрос с верхней части кода в нижнюю. Тогда отображает все записи при вводе в Edit
или так ?
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
    ADOQuery1->Close();
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("SELECT *FROM Employees WHERE FirstName LIKE '"+ Trim(Edit1->Text)+"%'");
    ADOQuery1->Open();
 
}
Добавлено через 4 минуты
Chertenok_n_13, смотрите WHERE (((Patient.Name) LIKE "*" + EditSearch->Text + "*"));") EditSearch оператор случайно нажал пробел и потом набрал то что он хочет найти ... Trim не нужно ?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.11.2015, 01:06
Лучший ответ Сообщение было отмечено avpdnepr как решение

Решение

avpdnepr, а вы в админке проверяли ваш запрос? какие результаты получаются от запроса непосредственно в базе данных? я надеюсь, вы это сделали?
0
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
20.11.2015, 07:34
xxbesoxx,фактически надо, но мне кажется ему до этого нужно самому дойти и разобраться.
0
1 / 1 / 1
Регистрация: 12.08.2015
Сообщений: 125
20.11.2015, 10:18  [ТС]
В Access работает запрос; в программе пустые строки показываются
0
 Аватар для Chertenok_n_13
219 / 125 / 99
Регистрация: 14.03.2011
Сообщений: 628
20.11.2015, 19:09
C++
1
ADOQueryPatient->SQL->Add("SELECT Patient.*, Patient.Name FROM Patient WHERE (((Patient.Name) LIKE \"%" + EditSearch->Text + "%\"));");
тогда так
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
20.11.2015, 19:47
Цитата Сообщение от avpdnepr Посмотреть сообщение
в программе пустые строки показываются
Так будет работать
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::EditSearchChange(TObject *Sender)
{
      ADOQueryPatient->Close;
      ADOQueryPatient->SQL->Clear();
      ADOQueryPatient->SQL->Add("SELECT * FROM Patient WHERE [Name] LIKE '"+ Trim(EditSearch->Text)+"%'");
      ADOQueryPatient->Open();
    
}
0
0 / 0 / 0
Регистрация: 13.07.2014
Сообщений: 54
06.12.2015, 14:13
DBEdit просто перетащи и под KeyDown дай SetFocus для обновления
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2015, 14:13
Помогаю со студенческими работами здесь

Запрос на редактирование данных в Edit-ах и для последующего добавления их в DbGrid
Ругается на скобки в параметре запроса. Запрос на редактирование данных в EDIT-ах и для последующего добавления его в DBGrid. Сделал...

Запрос ADOQuery внутри другого ADOQuery реален?
Помогите сформировать запрос для двух ADOQuery. Есть 2 таблицы БД mssql: sotrudniki , table_hlp(Вспомогательная таблица для делания...

Считать из поля Edit вписанное значение и через запрос (query) вывести строку с этим значением значением в dbgrid.
считать из поля Edit вписанное значение и через запрос (query) вывести строку с этим значением значением в dbgrid. Добавил query,...

Из ADOQuery в Edit
Помогите пожалуйста корректно вывести данные из выборки в Edit. Ситуация следующая: при попытке вывести таким образом ...

ADOQuery и Edit
Доброго времени суток, форумчане! Прошу вашей помощи ибо гугл и яндекс уже прячутся от меня в попытках отыскать решение вопроса... Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru