3 / 3 / 0
Регистрация: 22.05.2017
Сообщений: 32
MySQL

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

12.02.2018, 11:51. Показов 5682. Ответов 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
9922 / 6458 / 2457
Регистрация: 21.01.2014
Сообщений: 27,409
Записей в блоге: 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 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru