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

Builder C++ 6.0 + MySQL

26.09.2014, 16:18. Показов 3047. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, подскажите с решением.
Есть задание сварганить в С++ Builder 6.0 программу для работы с MySQL. Программа должна уметь:
-создавать таблицы,
-удалять/обновлять/вносить данные в таблице,
-сортировать по определенному параметру.

Т.к. это заочка (мрак полный) выдали бумажку в которой написано, что и за чем делать.
1.Берем Query, DBGid, DataSourse
2.В свойствах DataSource1 - DataSet ставим Query1
3.В свойствах DBGrid - DataSource ставим DataSource1
4.В свойствай Query - DataBaseName задаю необходимую базу данных
5.В свойствай Query - SQL прописываю команду на выбор данных SELECT client_id,fname,lname FROM client;

У меня выводится только первое поле данных client_id, остальные поля видеть отказывается (client_id-SMALLINT, остальное CHAR). Query - r.mouse- Fields Editor тоже видит только client_id.
И вообще как я понимаю Query только читает информацию, а не редактирует?Или нет?

Подскажите какие компоненты необходимо использовать и как удобнее организовать это счастье, уже 4й день в толк не возьму, что и как.
Миниатюры
Builder C++ 6.0 + MySQL  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2014, 16:18
Ответы с готовыми решениями:

Не устанавливается MySQL ODBC Driver. Как работать на C++ Builder с MySQL ?
Windows XP. Устанавливаю mysql-connector-odbc-noinstall-5.2.6-win32 Вместо обычной последовательности окошек инсталлятора - консольное...

C++ Builder + MySQL
Я хочу написать на С + + Builder программу с мускулом. Полазившы по сайтам и прочитав литературы я не нашел ничего кроме видиоурока: Delphi...

MYSQL i C++ Builder
Dobroje vremja sutok. Jestj sledujuschij vopros. Kak podkljuchitsja k MySQL iz Builder ispolzuja ADOConnection ili chto-to podobnoje....

14
 Аватар для DeadHipo
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
26.09.2014, 18:41
SARS, попробуй
MySQL
1
SELECT * FROM client;
это выбор всего из таблицы client и Query может редактировать, например через те же запросы insert, update, delete.
1
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
26.09.2014, 19:04
Лучший ответ Сообщение было отмечено SARS как решение

Решение

SARS, Вот тебе архив с необходимой инфой и примерами к ней, думаю разберешься, если что пиши)))
Методичка по БД.rar
1
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
27.09.2014, 13:41  [ТС]
Цитата Сообщение от DeadHipo Посмотреть сообщение
SARS, попробуй
Код MySQL
1
SELECT * FROM client;
это выбор всего из таблицы client и Query может редактировать, например через те же запросы insert, update, delete.
Неа, упорно не хочет видеть.
Цитата Сообщение от Within_t Посмотреть сообщение
SARS, Вот тебе архив с необходимой инфой и примерами к ней, думаю разберешься, если что пиши)))
Пасиб, ща буду курить)

Добавлено через 3 часа 56 минут
Цитата Сообщение от Within_t Посмотреть сообщение
SARS, Вот тебе архив с необходимой инфой и примерами к ней, думаю разберешься, если что пиши)))
Ну с кодом и запросами понятно. А какие элементы билдера использовать то нужно? Через Query у меня не видит все поля таблицы. Это у меня траблы или таблицы необходимо создавать через сам билдер и к готовой базе он не подцепится? И сам то билдер 2002 года вродь, он на 7-8 винде аднкватно работает?

Добавлено через 14 часов 23 минуты
Запустилось нормальное отображение всех полей таблицы. Дело было в драйвере ODBC, вместо версии 5.1 поставил 3.51.
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
02.10.2014, 22:06  [ТС]
UPD

Возникла трабла:
- есть 4 таблицы, каждая выводится в DBGrid через запрос в Query нажатием своей кнопки,
- каждую таблицу необходимо отсортировать по имени необходимого столбца написав имя столбца в Edit1 и нажав кнопку.
Не могу допереть как сделать, чтобы кнопка сортировала именно отображаемую в DBGrid таблицу 0_о
C++
1
2
3
4
Provider->Query1->Close();
Provider->Query1->SQL->Clear();
Provider->Query1->SQL->Add("SELECT * FROM client ORDER BY ("+Provider -> Edit3 -> Text+")");
Provider->Query1-> Open ();
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
03.10.2014, 04:35
Сортировку столбцов можно сделать иначе. В событиях DBGrid:
C++
1
2
3
4
5
6
7
void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
//сортировка по щелчку на шапке таблицы
AnsiString s;
s=Column->Field->FieldName;
ADOQuery1->Sort=s;
}
1
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
03.10.2014, 12:15  [ТС]
Выдает ошибку 'Sort' is not a member of 'TQuerty'
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
06.10.2014, 21:52  [ТС]
Сваял такую сортировку по клику на шапке столбца. Страшненькая но работает.
C++
1
2
3
4
5
6
7
8
9
void __fastcall TProvider::DBGrid1TitleClick(TColumn *Column)
{
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s);
Provider -> Query1 -> Open();
}
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
09.10.2014, 16:45  [ТС]
Ребят подскажите, чтот несоображу как на одну кнопку можно повесть два события повторяющиеся поочередно.Например чтобы по первому клику сортировало по убыванию
C++
1
2
3
4
5
6
7
8
{
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s"DESC");
Provider -> Query1 -> Open();
}
по второму по возростанию
C++
1
2
3
4
5
6
7
8
{
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s"ASC");
Provider -> Query1 -> Open();
}
По третему клику снова по убыванию и т.д.
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
09.10.2014, 17:01
Цитата Сообщение от SARS Посмотреть сообщение
По третему клику снова по убыванию и т.д.
Ты можешь на форме создать две кнопки.

C++
1
2
3
4
5
6
7
8
9
10
11
.... Button1Click
{
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s"DESC");
Provider -> Query1 -> Open();
Button1->Visible=false;
Button2->Visible=true;
}
C++
1
2
3
4
5
6
7
8
9
10
11
.... Button2Click
{
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s"ASC");
Provider -> Query1 -> Open();
Button1->Visible=true;
Button2->Visible=false;
}
И сделай так, чтобы одна кнопка полностью загораживала другую.
Удачи!!!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,908
Записей в блоге: 12
09.10.2014, 18:21
Лучший ответ Сообщение было отмечено SARS как решение

Решение

Вот еще не хватало. Не надо этого делать. Достаточно:
C++
1
2
3
4
5
6
7
8
9
10
{
static bool ascend = true;
AnsiString s;
s = Column -> Field -> FieldName;
Provider -> Query1 -> Close();
Provider -> Query1 -> SQL -> Clear();
Provider -> Query1 -> SQL -> Add ("SELECT * FROM client ORDER BY "+s+(ascend?" ASC":" DESC"));
Provider -> Query1 -> Open();
ascend = !ascend;
}
1
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
09.10.2014, 18:31
У каждого стиль программирования свой...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,908
Записей в блоге: 12
09.10.2014, 19:11
Copy/Paste - это не стиль программирования. Это антипаттерн
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
09.10.2014, 19:58  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Вот еще не хватало. Не надо этого делать. Достаточно:
Рукалицо... все оказалось просто, а я какие то костыли с педалями прикручивал...
0
0 / 0 / 0
Регистрация: 11.02.2014
Сообщений: 17
21.10.2014, 21:58  [ТС]
Рбят подскажите откуда можно вытянуть имя испльзуемой в данный момент таблицы? Что-то наподобие такого
C++
1
AnsiString tab = DBGid -> TableName
Используется связка Query, DBGid, DataSourse
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2014, 21:58
Помогаю со студенческими работами здесь

Flash Builder + MySQL
Реализовываю проект клиент-серверной архитектуры. На сервере база данных под руководством MySQL В качестве клиента будет выступать...

C++ Builder XE MySQL API
Заранее извиняюсь, если повторяюсь с темой... Есть такая проблема, была прога которая написана на C++ Builder 6. Под рукой не оказалось...

Builder c++ и mysql, adotable
помогите соединить таблицу из базы данных mysql на phpmyadmin с rad studio builder c++. в этой таблице есть координаты 30 точек, и их нужно...

[C++ Builder XE] Подключение БД MySQL 6.0.6
Здравствуйте! Возникла не понятная проблема с подключение БД MySQL 6.0.6 к C++ Builder XE через SQLConnection. (см.вложение 1(версия...

C++ Builder & MySQL
Возникла необходимость написать приложение, которое будет: 1. Использовать базу MySQL; 2. Простота установки и подключение, желательно...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru