|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
|
И снова подключение mySQL к Builder06.02.2010, 00:02. Показов 32893. Ответов 17
Метки нет (Все метки)
Я знаю, этот вопрос поднимался уже много раз на различных форумах, но прочитав уйму текста я так и не нашел ответа на свои вопросы.
Основной вопрос - какой из способов подключения лучший? В рейтинге участвуют надежность и скорость работы ![]() Порыскав в инете определил для себя mySQL API, как лучший... правильно ли я выбрал? И если правильно сразу вытекает второй вопрос -как его подключить? файла mySQl.h нет в установленной базе данных (ставил на 2 машины х64 и х86 нет ни на одной) файл libmySQL.dll, идущий вместе с установкой весик 17 килобайт... маловато учитывая, что в нете лежат файлики по 1 метру с лишним... больше того при попытке обработать его implibом результата то же мало - файл в 1 кб, отображаемый в билдере сплошными колонками нулей... Итак, уважаемые, что подскажете делать? Как работать с базой данных через С++ Builder?
0
|
|
| 06.02.2010, 00:02 | |
|
Ответы с готовыми решениями:
17
[C++ Builder XE] Подключение БД MySQL 6.0.6 Подключение базы MySQL к С++ Builder 6 C++ Builder + MySQL подключение с Денвера |
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|||||||||||||||||||||
| 06.02.2010, 01:26 | |||||||||||||||||||||
|
Вообще говоря, для MySQL есть ODBC или что-то вроде того, и при их наличии можно для доступа к базе пользоваться простыми компонентами ADO. У меня в своё время ничего не получилось с этими ODBC, потому что возникала неведомая ошибка при попытке изъять символьные данные из таблицы. Решения я так и не нашёл нигде в нете. Видел только один пост пятилетней давности с той же проблемой, но него никто не ответил. Забил на ODBC и написал на C API. А моя одногрупница использовала ODBC и никаких проблем никогда не имела. Такие вот дела. Сейчас поищу как подключить libmySQL.
Добавлено через 3 минуты Вот для ODBC, давным-давно с какого-то форума взял. Steps: ======================================== == 1. Пуск - Настройка - Панель управления 2. Перейти в папку - Мой компьютер 3. Перейти в папку - Панель управления 4. Перейти в папку - Администрирование 5. Запустить - Источники данных (ODBC) 6. Нажать на кнопку - Добавить 7. Выбрать драйвер 8. Написать имя источника (Имя для соединения - например MyBase1) 9. Выбрать базу данных 10. Run C++ Builder 11. Goto Tab - ADO 12. Drag to form ADOConnection 13. Click to ConnectionString 14. Select Use Connection String 15. Click button Build 16. Select provider 17. Подключение - источник данных MyBase1 18. Click button Ok 19. Click button Ok 20. Set field ADOConnection1->Connected to - true 21. Drag ADOTable to form 22. Set Connection to ADOConnection1 23. Set TableName - MYTABLE(for sample) 24. Set Activate to true 25. Switch to DataAcess 26. Drag DataSource1 to form 27. Set DataSet to ADOTable1 27. Switch to DataControls 28. Drag DBGrid to form 29. Set DataSource to DataSource1 Добавлено через 8 минут Вот тоже с какого-то форума. //**************************************** ************** Покопавшись на программерских форумах и форуме MySQL мне удалось таки собрать достаточно информации, чтобы наконец подключиться к MySQL серверу без всяких ADO, ODBC. Ни для кого не секрет, что для того, чтобы ваша программа заработала на другой машине - нужно настраивать DSN в ODBC, а для MySQL сервера на эту машину еще нужно поставить специальный компонент. Можно конечно включить инструкцию для пользователя как настраивать DSN, а также включить тот самый MySQL ODBC драйвер и наверно это будет неплохо в случае, если вы решили заработать денег на тех.поддержке. Далее идет инструкция "Step By Step", все манипуляции проделывались на BCB6.0. Для начала нужно скачать сам MySQL. Мой архив назывался так: mysql-noinstall-6.1.7-beta-win32 (у вас наверно будет поновее). Убедитесь, что вы запустили и настроили MySQL сервер, а также имеете права администратора на нем Начнем. 1. Копируем файл из папки lib\opt: libmysql.dll в отдельную папку - for_bcb\lib 2. Запускаем командную строку (cmd), переходим в папку где лежит implib: c:\>n: n:\>cd N:\Program Files\Borland\CBuilder6\Bin n:\Program Files\Borland\CBuilder6\Bin>implib -c I:\for_bcb\lib\opt\libmysql.lib I:\for_bcb\lib\opt\libmysql.dll 3. Копируем папку include в папку for_bcb, находим строку: #define my_socket SOCKET в файле config-win.h и меняем ее на: #define my_socket UINT_PTR 4. Создаем новый проект. 5. Кидаем на форму Button1 и ListView1. 6. Ставим свойство ListView1 ViewStyle = vsReport. 7. Жмем Shift+F11 (Project->Add To Project). Выбираем Files of Type->lib, переходим в директорию for_bcb\lib и выбираем файл libmysql.lib. 8. Жмем Ctrl+Shift+F11 (Project->Options). Выбираем вкладку "Directories/Conditional". Жмем на кнопки с тремя точками в Include Path и Library Path. В Include Path выбираем директорию for_bcb\include. В Library Path for_bcb\lib. 9. Сохраняем проект. 10. Добавляем две строчки в исходнике (F12): Код:
exe файл (обычно в той же директории что и файлы проекта, если речь не о BDS2006) //-------------------------------------------------------------------------------------------------------------------------------- Библиотеку libmysql.dll возьми в (mysql)\lib\opt Сделай libmysql.lib: implib libmysql.lib libmysql.dll В проекте подключи её В mysql.h найди:
А дальше как обычно... //--------------------------------------------------------------------------------------------------------------------------------- //**************************************** ***************************** Вот ещё. //**************************************** *** ПРИМЕРЫ: Вот самый простой пример.
Пример приложения. Не забудьте изменить в коде логин и пароль на свои данные (администраторские). Возможно потребуется также поменять адрес сервера localhost на ваш IP. Программа выполняется SQL запрос к базе данных MySQL и выводит все данные из таблицы `db` Код:
3
|
|||||||||||||||||||||
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
|
| 06.02.2010, 10:55 [ТС] | |
|
Спасибо за подробный ответ)
Все то что касается libmySQL.dll я читал, пока пытался найти ответ сам... с ним у меня проблема -в поставке mySQL, которую я ставил его нет (есть но какой-то дохленький). При попытке сконвертить его в lib в командной строки вылезает ошибка - неизвестный тип файла. Так же нет и mysql.h Про ADO. Я так понимаю, что это не кустарная приписка и с надежностью проблем быть не должно. А как у него с быстродействием? На каком-то форуме читал, что если использывать API, код работает примерно в 5 раз быстрее... Врут?)) Или это непринципиально?
0
|
|
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 11:23 | |
|
Как принято отвечать, всё зависит от задачи) Смотря какие объёмы данных будут обрабатываться, как часто, сколько подключений к серверу одноверменно будет. ADO - хорошая вещь, много пользовался для MS SQL Server и Access, все необходимые возможности предоставляются.
С API работают быстрее, потому что они его родные (хотя не знаю наверняка в 5 раз или только в 3 раза)) ). К тому же они дают больше возможностей и более гибкие и, работая с ними, можно учесть все индивидуальные особенности именно MySQL. А ADO - стандартно унифицированы под множество БД. С ними одинаково код пишется и под Access, и под MS SQL Server, и под MySQL тем же манером будет писаться. Короче с С API можно, что называется, осуществлять "тонкую работу". Там всего штук 50 функций, подробное описание и примеры работы есть в нете, есть в документации к MySQL. По поводу mysql.h и библиотек. Я качал установщик сервера с сайта MySQL, когда установил, то у меня среди прочих папок оказались папки lib и include, где всё лежало. Не знаю, почему не получается сконвертить через implib. Кстатит говоря, моя mysql.lib весит 17kb.
0
|
|
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
|
| 06.02.2010, 11:41 [ТС] | |
|
а libmysql.dll сколько весила?
папка lib у меня есть, но там не густо - внутри нее только папка plugin, где лежит ha_innodb_plugin.dll и ha_innodb_plugin.pdb, еще папочка debug, где лежит такая же dll и pdb...
0
|
|
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 12:30 | |
|
dll весит мегабайта 2. Ладно, вот мои lib и h, которые у меня под билдер работают.
0
|
|
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 12:36 | |
|
Подключить всё это надо так:
в свойствах проекта нажно добавить к проекту libmysql.lib, libmysql.dll можно положить в папку с *.exe (она подключается статически, *.exe должен её видеть), в самом коде, где надо, пишется #include <mysql.h> и всё должно работать.
0
|
|
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
|||
| 06.02.2010, 13:18 [ТС] | |||
|
Спасибо)
надеюсь с моей версией подойдут... толкьо еще бы твою dll ку получить, люди пишут, что dll и lib должны быть из одной версии... А, она там есть)) не заметил)) Добавлено через 19 минут При подключении сделал все по написаному, попытался скомпилировать пустой прэкт, но получил:
А при попытке подключения через ADBC результат такой:
0
|
|||
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 13:48 | |
|
С ODBC не могу помочь.
Могу помочь с инклюдами.
0
|
|
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 13:50 | |
|
Среди них уже есть mysql.h. Распакуй всю папку куда-нибудь и в свойствах проекта пропиши путь к этой папке в include path и пробуй.
0
|
|
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
|
| 06.02.2010, 18:10 [ТС] | |
|
Ну проэкт откомпилировался))
уже что-то)) спасибо огромное за помощь)
0
|
|
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 06.02.2010, 18:29 | |
|
Не, ну раз проект даже откомпилился, то по такому случаю я нарыл примеров использования C API. Предыстория такая: когда делал БД на MySQL в рамках курсового проекта, база про всякий инвентарь, комнаты и т.д. + ещё были таблицы адимнов и их прав. В архиве лежат всякие модули, на которых всё обкатывалось и из которых можно почерпнуть способы и принципы работы с С API в билдере: все результаты запросов перекидывал в листбоксы и др. Данные про подключения забиты в DBinfo.h. Из названий функций понятно о чём речь, комментарии тоже присутствуют.
1
|
|
|
OtTa
|
|||
| 11.06.2010, 20:35 | |||
P.S. RAD studio 2010 Добавлено через 43 минуты Удалось реализовать связку: ADOConnection + ADOQuery + DataSource + DBGrid ; Но хочется самому код подключения писать, без компонентов всяких... Но знаний не хватает... |
|||
|
6 / 6 / 1
Регистрация: 06.02.2010
Сообщений: 14
|
|
| 14.06.2010, 01:31 | |
|
Очень смутно помню, что я делал с ADO. В конечном итоге делал всё на MySQL С-API. Либо в примере имелось в виду изменить ADOTable1 на MyTable, либо в указанной базе данных должна быть таблица с именем MyTable и тогда её подхватит.
Что имеется ввиду под "самому писть подключения"? Когда я использовал ADO для Access, то просто у ADOConnection менял строку подключения по принципу ADOConnection->ConnectionString = "........."
0
|
|
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
||||||
| 18.02.2015, 19:18 [ТС] | ||||||
|
Спустя 5 лет вернулся к этому вопросу.
В тот раз все работало на XE 2. После этого я перешел на SQLite и забыл о всех проблемах. Но сейчас встала проблема сохранения на удаленную MYSQL... Подключил либу, h, dll. Все собралось. Установлена XE 7, взял свой старый код, найденный на просторах интернета:
Как только есть вызов функции (в кнопке, например), компиляция завершается удачно, никаких ошибок нет, но приложение не запускается... Как будто я просто собрал проект, а не запустил... Добавлено через 1 час 6 минут Хм... проблема была в отсутствии dll в папке с ехе шником.... Извините за кипишь... Хотя странно, что он вместо того, что бы ругатсья просто ничего не делал.
0
|
||||||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||
| 21.07.2015, 10:21 | ||
|
У меня лежит в папке с проектом, все время получаю "Unknow database 'db_name'... MySQL server has gone away "
0
|
||
|
49 / 37 / 14
Регистрация: 05.02.2010
Сообщений: 249
|
||
| 21.07.2015, 17:11 [ТС] | ||
|
Если вопрос все-таки про mysql и Вы создали базу в СУБД, а потом перенесли файл из недр СУБД в свой проект, то "мисье знает толк в извращениях". Опишите подробно, что и как делаете.
1
|
||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
|
| 21.07.2015, 21:38 | |
|
Да, это SQLite. Спасибо, переберусь в соответствующую тему.
0
|
|
| 21.07.2015, 21:38 | |
|
Помогаю со студенческими работами здесь
18
Удалённое подключение к MySQL средствами C++ Builder
Не устанавливается MySQL ODBC Driver. Как работать на C++ Builder с MySQL ? Снова хром, снова сапопроизвольно открывается, снова bkrfdf.xyz и казино Снова MySql и хранение русских символов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|