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

Создание клиентского приложения для MySQL БД

12.02.2018, 11:51. Показов 5637. Ответов 15

Студворк — интернет-сервис помощи студентам
Добрый день, ув. форумчане ! Столкнулся с желанием написать клиентское приложение для работы с БД MySQL, но в данном деле я "чайник". Прошу помощи, желательно в плане "почитать" или наталкивающую информацию про такие пункты

1) создание формы авторизации для подключения: в данном пункте интересует, как организовать подключение с проверкой логина и пароля, которые находяться на сервере в отдельной таблице;

2) какие компоненты лучше всего использовать, ссылаясь на гибкость разработки и настройки: есть небольшой опыт работы с ADO и ODBC, слышал ещё про чудесные компоненты от DevArt;

3) организация выбора таблицы, которую нужно вывести в DBGrid.

На данном этапе это основные пункты, которые интересуют. Благодарю заранее за помощь и советы.

ПЫ.СЫ. Работаю в RAD Studio 10.1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2018, 11:51
Ответы с готовыми решениями:

Создание клиентского приложения
Всем привет. В общем мы с другом хотим создать один сайт, а также клиентское приложение на delphi, которое будет соединятся с сайтом как с...

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

Создание клиентского приложения интернет-магазина
Всем привет. Короче имеется интернет-магазин WordPress + Woocommerce. Как мне из него сделать мобильное приложение?

15
Заблокирован
13.02.2018, 17:31
Captain_Hemp, Для подключения к бд конечно можно использовать firedac. Но в целом я бы рекомендовал написать что то вроде своего АПИ, и уже работать с ним... это моё мнение...
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
13.02.2018, 17:44  [ТС]
Gagoose, я бы рад, но багаж знаний не позволяет. Хотелось бы начать с чего-то проще и по мере углубления навыков и прийду к Вашему совету. Спасибо.
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
16.02.2018, 12:52  [ТС]
Немного продвинулся почитав л-ру. Но не могу организовать проверку логина и пароля с полями таблицы. Пропускает только первую строку таблицы
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void __fastcall TForm1::BOkClick(TObject *Sender)
{
     AnsiString login,pass;
     AnsiString elogin = ELogin->Text;
     AnsiString epass = EPass->Text;
     DataModule3->ADOTable1->Open();
     DataModule3->ADOTable1->First();
     while (!DataModule3->ADOTable1->Eof)
     {
     login = DataModule3->ADOTable1->FieldByName("login")->AsString;
     pass = DataModule3->ADOTable1->FieldByName("pass")->AsString;
     if(elogin == login && epass == pass)
     {
         Form1->Visible = false;
         DataModule3->ADOTable1->Edit();
         DataModule3->ADOTable1->FieldByName("lastvisit")->AsDateTime = Now();
         DataModule3->ADOTable1->Post();
         Form2->Show();
         break;
     }
     else
     {
         ShowMessage("Username/password incorrect! Please, check your authorization data.");
         ELogin->Clear();
         EPass->Clear();
         break;
     }
     }
}

Благодарю заранее за наталкивающий совет.

Добавлено через 19 часов 58 минут
На первый пункт найдено решение.
0
Заблокирован
16.02.2018, 15:04
Captain_Hemp, я бы не сказал что это есть авторизация) База данных не под паролем, можно подключится к любой таблице, и получить любые данные...
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
16.02.2018, 15:25  [ТС]
Gagoose, все пользователи будут под доступом обычного юзера. Данная форма более нужна для статистического характера, так сказать. Просто заниматься дешифрацией паролей очень сложный процесс для меня в данный момент.
1
Заблокирован
16.02.2018, 15:29
Captain_Hemp, тогда эстетического характера наверное) что бы было...)
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
16.02.2018, 15:31  [ТС]
Gagoose, для бухучёта точнее )
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
19.02.2018, 17:58  [ТС]
К 3-му пункту: как можно считать в комбобокс список баз данных на сервере ?
0
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
21.02.2018, 17:28  [ТС]
Вопрос не касаемо изначального вектора, но дабы не создавать миллион тем. Подскажите, пожалуйста, как устранить данную проблему с размерами фреймов ?
Миниатюры
Создание клиентского приложения для MySQL БД  
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
22.02.2018, 09:29
Цитата Сообщение от Captain_Hemp Посмотреть сообщение
К 3-му пункту: как можно считать в комбобокс список баз данных на сервере ?
C++
1
2
3
4
5
    TStringList *tl = new TStringList;
 
       ADOCon->GetTableNames(tl);
 
      ComboBox->Assign(tl);
Добавлено через 1 час 39 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void __fastcall TForm1::BOkClick(TObject *Sender)
{
     AnsiString login,pass;
     AnsiString elogin = ELogin->Text;
     AnsiString epass = EPass->Text;
     DataModule3->ADOTable1->Open();
     DataModule3->ADOTable1->First(); //здесь выходим на первую запись. А где переход на следующую запись?
     while (!DataModule3->ADOTable1->Eof)
     {
     login = DataModule3->ADOTable1->FieldByName("login")->AsString;
     pass = DataModule3->ADOTable1->FieldByName("pass")->AsString;
     if(elogin == login && epass == pass)
     {
         Form1->Visible = false;
         DataModule3->ADOTable1->Edit();
         DataModule3->ADOTable1->FieldByName("lastvisit")->AsDateTime = Now();
         DataModule3->ADOTable1->Post();
         Form2->Show();
         break;
     }
     else
     {
         ShowMessage("Username/password incorrect! Please, check your authorization data.");
         ELogin->Clear();
         EPass->Clear();
         break;
     }
    //А ВОТ ТУТ ДЕЛАЕМ ПЕРЕХОД НА СЛЕДУЮЩУЮ!!!
   DataModule3->ADOTable1->Next();
     }
}
Добавлено через 2 минуты
И вообще на мой взгляд прогон по записям лучше реализовать так
C++
1
2
3
4
5
6
7
8
9
     ADOTable1->First();
      for(int i=0; i<ADOTable1->RecordCount; i++)
     {
        //Any work
    ...
    
      ADOTable1->Next();
     
     }
1
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
23.02.2018, 10:07  [ТС]
Возникла проблема при release приложения. Появляется ошибка: [bcc32 Warning] mysql_com.h(28): W8017 Redefinition of 'USERNAME_LENGTH' is not identical Full parser context Project1.cpp(6): #include c:\program files (x86)\embarcadero\studio\18.0\include\my sql.h mysql.h(72): #include c:\program files (x86)\embarcadero\studio\18.0\include\my sql_com.h
Как быть ? Благодарю за помощь.
0
3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
27.02.2018, 09:07  [ТС]
Вопрос решен заменой компонентов dbGo на MyDAC-компоненты.
0
1 / 1 / 0
Регистрация: 08.01.2019
Сообщений: 27
09.01.2019, 18:33
Есть пара вопросов. Какую литературу вы читали? Где брали MyDAC-компоненты? И как с ними работать?
Для чего - мне нужно программно подключиться к базе данных MySQL .
Спасибо
0
Модератор
 Аватар для D1973
9916 / 6453 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
10.01.2019, 10:46
Цитата Сообщение от Ramler Посмотреть сообщение
Где брали MyDAC-компоненты?
Это платные сторонние компоненты и берутся они исключительно с сайта разработчика!
 Комментарий модератора 
Другие варианты получения платного контента на этом форуме не обсуждаются!

Да и к чему сторонние, если в новых версиях "из коробки" идет FireDAC, позволяющий без проблем работать с кучей разных СУБД?
Цитата Сообщение от Ramler Посмотреть сообщение
И как с ними работать?
Читать документацию.
Цитата Сообщение от Ramler Посмотреть сообщение
Какую литературу вы читали?
Любую, в которой рассказывается о проектировании БД и рассматривается язык SQL.
0
1 / 1 / 0
Регистрация: 08.01.2019
Сообщений: 27
10.01.2019, 14:31
MyDAC - нашел на сайте разработчика.
За FireDAC - спасибо.

А остальные ответы - предельно исчерпывающие. Спасибо за вашу безмерную помощь. Именно то что мне нужно было.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2019, 14:31
Помогаю со студенческими работами здесь

Разработка клиентского приложения для вызова такси
Здравствуйте. Требуется помощь тех, кто имеет опыт разработки приложений для заказа такси. Суть в следующем: занимаюсь обучением разработки...

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

Архитектура клиентского приложения
Реализую проект клиентского приложения и возникла заморочка с архитектурой. До этого были простые 3-4 оконные приложения. Впервые дали...

Архитектура клиентского приложения
Итак, здравствуйте. Собственно прошу помощи у тех, кто уже успел пописать клиентские приложения под андроид. Я занялся разработкой не так...

Проверка целостности клиентского приложения
Привет. Есть JBoss и Swing клиент к нему (через WebStart). Хочется проверить, что к серверу цепляется 'правильный' клиент. Кто-нить такое...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru