Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853

Как реализовать поиск, который будет выделять нужную запись в DBGrid

15.06.2011, 22:57. Показов 3688. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как реализовать поиск, который будет выделять нужную запись в DBGrid
Я реализовал такой поиск
C++
1
2
3
4
5
6
7
8
void __fastcall TForm5::sEdit1Change(TObject *Sender)
{
Form1->ADOQuery1->SQL->Clear();
Form1->ADOQuery1->SQL->Add("Select * from CarsInStock where CarBrand like '"+sEdit1->Text+"%'"+"union Select * from CarsInStock where CarModel like '"+sEdit1->Text+"%'");
Form1->ADOQuery1->Active=true;
 
 
}
Нужно реализовать поиск,с такойже функциональностью как и мой,только чтобы вместо отображения одной записи,он её выделял в гриде,помогите

Добавлено через 19 минут
Ещё вопрос, как проверить существует ли файл с указанным путём или нет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.06.2011, 22:57
Ответы с готовыми решениями:

Как добавить запись в нужную строку DBGrid?
Нужно чтобы,по указанному в DateTimePicker времени,он добавлял запись в нужную строку.Вот скрин: Т.е. в пикере я указываю...

Как реализовать скрипт, который будет находится на удаленном хостинге...
Подскажите как реализовать скрипт, который будет находится на удаленном хостинге и закачивать файлы из интернета на ftp narod'а. Вот...

Как реализовать выбор листа на который будет ссылаться текущий лист?
Здравствуйте, гуру! Один вопросик небольшой хотел спросить Каким образом можно автоматизировать замену ссылки на лист в ячейке, при...

15
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
16.06.2011, 10:41
Delphi
1
Нужно реализовать поиск,с такойже функциональностью как и мой,только чтобы вместо отображения одной записи,он её выделял в гриде,помогите
TDataSet->Locate + F1

Delphi
1
Ещё вопрос, как проверить существует ли файл с указанным путём или нет?
FileExists + F1
0
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
21.06.2011, 02:30  [ТС]
что есть F1?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
21.06.2011, 09:00
F1 - клавиша на клавиатуре. Ты её нажимаешь и выводиться справка
0
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
22.08.2011, 15:03
З.Ы. Пишу сюда чтобы не плодить аналогичные ветки. (гуглю но пока нейти ответ не могу)

Как реализовать вывод в DBGrid тока результат поиска?
Есть таблица в БД нужно вывести в DBGrid тока те результаты которые были затребованы в SQL запросе.
Сейчас в DBGrid выводит всю таблицу
Если делать SQL запрос типа Типа: SELECT * FROM TabName WHERE id=100 , то отображает всю таблицу как будто делаю SELECT * FROM TabName
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
22.08.2011, 15:24
Компоненту-обертку над SQL связать в TDataSource и TDBGid

Delphi
1
Если делать SQL запрос типа Типа: SELECT * FROM TabName WHERE id=100 , то отображает всю таблицу как будто делаю SELECT * FROM TabName
Это может быть в одном из случаев:
- в таблице есть только записи, у которых id=100,
- отображается не тот датасет, который возвращается указанным запросом
- текст запроса в компоненте был изменен, но переоткрытия (Close+Open) не было
0
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
22.08.2011, 15:38
Вот пример того как я пытаюсь формировать запрос.
C++
1
2
3
4
5
6
7
8
    ADOQuery1->Close();
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("SELECT * FROM StarEmp WHERE Sector='Veda'");
    ADOQuery1->Active=true;
    ADOQuery1->Open();
    ADOTable1->Close();
    ADOQuery1->Requery();
    ADOTable1->Open();
Компоненту-обертку над SQL связать в TDataSource и TDBGid
Связи есть... ибо запросы типа INSERT DELETE проходят и таблица обновляется как в самой БД так и в DBGrid .
Я просто подумал может как то DBGrid надо настроить?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.08.2011, 16:05
Я бы на твоём месте использовал бы только ADOQuery, а за ADOTable вообще забыл, меньше проблем будет
1
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
22.08.2011, 16:11
Цитата Сообщение от Sasha Посмотреть сообщение
Я бы на твоём месте использовал бы только ADOQuery, а за ADOTable вообще забыл, меньше проблем будет
Почему? (пока попробую без ADOTable может и выйдет что из этого.)

Угу, заработала...
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
22.08.2011, 17:55
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM StarEmp WHERE Sector='Veda'");
ADOQuery1->Active=true; // Открывает датасет
ADOQuery1->Open(); // Открывает датасет
ADOQuery1->Requery(); // Переоткрывает датасет

Это что за пляски с бубном ?
0
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
22.08.2011, 20:41
Цитата Сообщение от MsGuns Посмотреть сообщение
Это что за пляски с бубном ?
ну вот приходится иногда так делать чтобы понять...

После того как компонент ADOTable был удалён и всё делается через ADOQuery. Возникло пару вопросов:
1) DBGrid теперь нельзя привязать его колонки к таблицам (раньше указывалась таблица и поля через ADOTable ), как это сделать?
2) Как сделать чтобы колонки DBGrid были привязаны к разным таблицам в базе данных. К примеру в БД есть две таблицы и надо в одном DBGrid предположим 3 колонки отображают одной таблице а 3 других другой.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.08.2011, 21:50
Цитата Сообщение от Delta_Q Посмотреть сообщение
1) DBGrid теперь нельзя привязать его колонки к таблицам (раньше указывалась таблица и поля через ADOTable ), как это сделать?
2) Как сделать чтобы колонки DBGrid были привязаны к разным таблицам в базе данных. К примеру в БД есть две таблицы и надо в одном DBGrid предположим 3 колонки отображают одной таблице а 3 других другой.
У тебя помоему 2 раза повторяется 1 и тотэе вопрос

Добавлено через 15 минут
Можно вывести значения с разных столбцов через запрос при помощи оператора UNION
0
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
23.08.2011, 01:12
Цитата Сообщение от Sasha Посмотреть сообщение
У тебя помоему 2 раза повторяется 1 и тотэе вопрос

Добавлено через 15 минут
Можно вывести значения с разных столбцов через запрос при помощи оператора UNION
А как мне перехватить данные получаемые из БД после запроса SELECT?
Т.е. я предположим делаю запрос и если результат не нулевой то полученные данные рассортировать по перпеменным?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.08.2011, 09:20
Цитата Сообщение от Delta_Q Посмотреть сообщение
Т.е. я предположим делаю запрос и если результат не нулевой то полученные данные рассортировать по перпеменным?
C++
1
2
3
4
if(ADOQuery1->RecordCount!=0)
{
  //сортируешь полученные данные по переменным
}
0
0 / 0 / 0
Регистрация: 07.08.2011
Сообщений: 8
23.08.2011, 14:02
Цитата Сообщение от Sasha Посмотреть сообщение
C++
1
2
3
4
if(ADOQuery1->RecordCount!=0)
{
  //сортируешь полученные данные по переменным
}
В принципе я получить одиночное значение могу:
sDetect = ADOQuery1->FieldByName("Id")->Value;
А если результатом запроса будет не одиночный результат а серия данных?

Приведу пример:
Есть БД состоящая из нескольких таблиц.
(Таб1) Первая таблица это Список звёзд. (ID,StarName,X,Y,Z)
(Таб2) Вторая таблица Это список Империй.(ID,EmpName)
(Таб3) Третья таблица это Индекс где указаны каким индексам принадлежит какой индекс звезды.(ID,ID_Emp,ID_Star).
Мы делаем запрос о Империи(Таб1), получаем Индекс империи, зная индекс ищем в (Таб3) сколько индексов звёзд принадлежит ей. Когда найдём, нужно выбрать из (Таб2) те звёзды индексы которых были найдены в (Таб3).
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.08.2011, 18:48
Покажи что ты сам сделал.........
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.08.2011, 18:48
Помогаю со студенческими работами здесь

Как сделать возможность выделять все строки DBGrid?
Подскажите как сделать чтоб можно было выделять все строчки в DBGrid

Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Мне нужно создать динамический массив объектов другого класса. Тоесть в Pricelist будет массив объектов, а сами модельки он будет брать из...

Как реализовать вектор, который будет принимать и хранить координаты вершин? (std::vector)
Как реализовать вектор, который будет принимать и хранить координаты вершин, например? Хотелось бы как то так писать: ...

Как выделять столбцы и ячейки как в excel в dbgrid
Как выделять столбцы и ячейки как в excel в dbgrid? и вот еще когда когда кликаю на заголовок столбца вылазит страшная полоса перед ним как...

Datagridview - поиск, и автоматическая запись результата в нужную строчку
Суть в следующем: Есть база данных, сделанная в SQl servers. В ней есть такие две таблицы как: Исходящие письма, и Контакты....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru