Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/55: Рейтинг темы: голосов - 55, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 5
Builder 6

Как при выборе item из combobox выводить в memo определенную информацию из базы данных

17.05.2023, 13:38. Показов 17988. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
База выполнена на Access, подключена в билдере. Как мне при определенном элементе в комбобоксе выводить определенную информацию в memo из базы данных?

К примеру: у меня есть база данных с ФИО людей, их даты рождения и адреса проживания. Я добавил базу данных в билдер и создал комбобокс со всеми ФИО. Когда я выбираю ФИО человека, то мне выводятся его данные в два разных мемо, в один адресом проживания, а в другой дату рождения.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2023, 13:38
Ответы с готовыми решениями:

При выборе из item из combobox
Привет всем, вообщем есть combobox в котором находятся категории товара (компьютеры,ноутбуки и тд) и есть одна БД для каждой категории...

При выборе первого Item в combobox показывать edit1
Всем привет, может кто поможет мне разобраться с Case?) На форму добавил компонент ComboBox1 и 4 edit, нужно чтобы при выборе первого...

Как выводить информацию с базы данных в обратном порядке?
Здравствуйте, подскажите пожалуйста!!!!! Есть новостной сайт, сейчас, если я добавляю новость в базу данных она становится на сайте...

10
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,341
Записей в блоге: 3
17.05.2023, 13:49
akkoXducky, а как Вы заполняете свой Комбобокс?
0
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 5
17.05.2023, 13:53  [ТС]
D1973, через item заполняю данными комбобокс
0
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,341
Записей в блоге: 3
17.05.2023, 14:12
Цитата Сообщение от akkoXducky Посмотреть сообщение
через item заполняю данными
Да понятно, что через Item. Вручную что ли? Я вот про что спрашиваю
0
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 5
17.05.2023, 14:14  [ТС]
D1973, да, сейчас заполнен вручную. Но можно и подвязать с базы данных имена, как я понял.
0
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,341
Записей в блоге: 3
17.05.2023, 14:29
Цитата Сообщение от akkoXducky Посмотреть сообщение
можно и подвязать с базы данных имена, как я понял
Да не "можно", а только так и надо. Иначе что же получается: добавить или удалить человека - програму переписывать и перекомпилировать. От как здорово...

А алгоритм очень прост:
1. Получаете запросом из таблицы БД ФИО и ID всех персон
2. Заполняете комбобокс, используя вместо метода Add() метод AddObject() где в качестве текста будет выступать ФИО, а в качестве объекта - ID записи.
3. При выборе любого айтема считываете ID из объекта, формируете запрос для выбора записи по ID и разносите полученные данные по разным Мемо.
1
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 5
18.05.2023, 18:00  [ТС]
D1973, с БД справились, спасибо, но появилась еще одна проблема: при переносе программы, либо установки в какой-то диск, вылазит ошибка. Ошибка связанная с местонахождением базы данных. Путь мы указываем в ADOConnection и он статичен. Можно ли его сделать динамическим, либо привязанным чисто к папке с программой?
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.05.2023, 00:34
Цитата Сообщение от akkoXducky Посмотреть сообщение
Можно ли его сделать динамическим, либо привязанным чисто к папке с программой?
Можно, например, вот так
C++
1
2
3
aCurrPath = ExtractFilePath(Application->ExeName); //aCurrPath - тип String
 
conSys->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+aCurrPath+"\\CoordSys.mdb;Persist Security Info=False;";  //conSys - ADOConnection
1
Модератор
 Аватар для D1973
9903 / 6441 / 2454
Регистрация: 21.01.2014
Сообщений: 27,341
Записей в блоге: 3
19.05.2023, 04:25
Лучший ответ Сообщение было отмечено TrollHammer как решение

Решение

Цитата Сообщение от akkoXducky Посмотреть сообщение
Можно ли его сделать динамическим, либо привязанным чисто к папке с программой?
Конечно. И TrollHammer уже показал, как именно. Единственно, пара моментов:
- Объект Application лучше не использовать, потому что для его использования должен быть подключен хэдер Forms.hpp, что не всегда желательно:

- Перед изменением строки соединения коннект необходимо разорвать и восстановить потом, после изменения
C++
1
2
3
4
5
String aCurrPath = ExtractFilePath(ParamStr(0));
//conSys - ADOConnection
conSys->Connected = false;
conSys->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+aCurrPath+"\\CoordSys.mdb;Persist Security Info=False";  
conSys->Connected = true;
Для BCB6 может "прокатить" следующий способ: указание с ConnectionString только имени Вашей БД, без пути. Но! Очень ненадежный это путь потому как Вы никогда не можете быть уверены, что какая-либо служба или процесс Windows не изменили в системе каталог по умолчанию. В итоге может запросто получиться, что один раз программа сработает, второй - нет. Чтобы этого избежать, правильнее всего задать полный путь к БД относительно расположения ехе-файла Вашего приложения.
2
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 5
19.05.2023, 11:43  [ТС]
D1973, TrollHammer, получилось. Огромное спасибо вам!
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.05.2023, 13:40
Цитата Сообщение от D1973 Посмотреть сообщение
Перед изменением строки соединения коннект необходимо разорвать и восстановить потом, после изменения
Спасибо за совет, учту в дальнейших разработках!

Добавлено через 3 минуты
Цитата Сообщение от D1973 Посмотреть сообщение
Для BCB6 может "прокатить" следующий способ:...
Такое в ХР работало, а так Вы правы - в 7-ке и выше это уже рулетка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2023, 13:40
Помогаю со студенческими работами здесь

Как сделать, чтобы при выборе определенной строки в ComboBox, текстовое содержимое отображалось на memo?
Доброго времени суток, форумчане Подскажите, как сделать, чтобы при выборе определенной строки в ComboBox, текстовое содержимое...

Очистка memo при выборе записи в ComboBox
Скажите как сделать чтобы выбрать слово в combobox сразу отчистил memo?

При выборе пункта в ComboBox выводить текст на панель
"Разминка" Написать программу, которая при выборе первой строки компонента ComboBox выводит в панель y=sin(x), при выборе второй строки –...

При выборе текста в ComboBox в Memo отображать нужный текст
Подскажите,как сделать,чтоб при выборе текста в ComboBox в Memo отображался нужный текст?

При выборе одного элемента в combobox заданное значение выводить в textbox
Помогите сделать что бы при выборе одного элемента в combobox заданное значение выводить в textbox C#)Буду благодарен)


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru