| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Базы данных > Связь С++ и Mysql |
| Автор: alver 4.4.2008, 21:00 | ||
| Здравствуйте. Сразу кажу, поиском пользовался, подобные темы читал, но так ничего сделать и не смог((( Объясните на пальцах плиз, как же всё таки подключить MySQL к С++?? Я из всего прочитанного понял, что надо использовать хедер mysql.h Я его беру, копирую в папку с хедерами (юзаю Msf VS2008). В проге пишу:
Он просит файл mysql_com.h, я его тоже копирую. С ним же вылезает куча ошибок, которые указывают этот самый mysql_com.h Вот такие например: Error 1 error C2146: syntax error : missing ';' before identifier 'fd' c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h 183 123 Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\microsoft visual studio 9.0\vc\include\mysql_com.h 183 123 Можно, пожалуйта, на пальцах объяснить действия, которые необходимо сделать, чтобы заработало?? |
| Автор: Rififi 4.4.2008, 22:29 | ||
| я бы на твоем месте взял приплюснутую обёртку... отрывок кода из примеров к mysql++
|
| Автор: alver 4.4.2008, 23:19 |
| Вот это я так понимаю?? http://tangentsoft.net/mysql++/ Но опять же, не смог её прикрутить. Какая должна быть последовательность действий?? Скачал "mysql++-3.0.1.tar.gz" - а дальше куда чего?? Объясни плиз... |
| Автор: JackYF 5.4.2008, 10:07 |
Неужели в readme библиотеки и гугле ничего не написано? |
| Автор: alver 5.4.2008, 12:18 |
| Хм, прочитал и ничего не понял. Точнее сделал всё как на писано, но там [censored 6] фигня какая то. Ничего не подключается. Эти маны пишутся для тех, кто в этом всё каждый день купается. Мне например не реально в этом разобраться, поэтому и прошу вашей помощи. Может кто нибудь удилить 10 минут, чтоб расписать последовательность действий?? |
| Автор: MrDamian 10.4.2008, 15:39 |
| Для начала нужно скомпилировать библиотеку. Распаковываешь архив "mysql++-3.0.1.tar.gz" в удобное тебе место. Для примера в D:\temp\mysql++. Внутри есть папка 2005 и 2003. Заходишь в 2005. Открываешь проект (файл .sln). Компилишь... В папке debug появляюстся нужные тебе библиотеки. Дальше создаешь новый проект. В solution explorer'e клацаешь правой кнопкой на имени проекта->properties->C/C++->General. В Additional Include Directories прописываешь путь к хедер файлам. Если в temp то путь такой: d:\TEMP\mysql++\lib. Также можешь добавить сюда путь к папке include самого мускула. Например, \c:\Program Files\MySQL\MySQL Server 5.0\include. Дальше можешь либо в настройках указать библиотеки libmysql.lib (в папке с мускулом находиться) и mysqlpp_d.lib (в папке debug о которой я говорил раньше) либо написать такие строчки сразу после include'ов и кинуть в папку с проектом эти либы и соотетвующие dll (lybmysl.dll, myslpp_d.dll): #pragma comment (lib, "mysqlpp_d.lib") #pragma comment (lib, "libmysql.lib") В инклудах пишешь include <mysql++.h> Для соединения с базой исползуешь mysqlpp::conection Для запросов mysqlpp::StoreQueryResult (для предыдущих версий mysql++ - mysqlpp::StoreQueryResult) Вроде ничего не забыл. Если че спрашуй. А теперь может кто мне поможет... У меня проблема следующая: когда добавляю из мускула записи на русском, то из проги отображаються иероглифами. Когда из проги добавляю - в самом мускуле иероглифы... Кодировку выставляю cp1251 |
| Автор: MrDamian 10.4.2008, 15:39 |
| Можно просто использовать С Api которые с мускулом идут Для твоего когда, просто укажи путь к файлу mysql.h. (как я писал в предыдущем посте) и кинь libmysql.dll и libmysql.lib в папку с проектом. Должно работать. |
| Автор: Yojidze 7.8.2008, 11:41 | ||
Куда конкретно прописать их надо кто в курсе???? помогите |
| Автор: Reptor 22.9.2008, 13:50 |
| а что нужно если я спользую Microsoft Visual C++ 6.0 ? и пишу просто консольное приложение..? выше описаное мне не подходит |
| Автор: Reptor 23.9.2008, 12:59 | ||
Я скачал MySQL под винду... посмотрел какоето описание там написано
но я не вижу никаких заголовочных файлов а только и либ а только одна dll - libmySQL.dll Добавлено через 11 секунд что делать дальше? |
| Автор: Reptor 24.9.2008, 13:42 |
| ауу... кто нибудь подскажите что делать? де взять необходиме файлы? |
| Автор: Reptor 24.9.2008, 14:51 | ||
| смотрите я отыскал все необходимое и есть пример но у меня 7 ошибок ompiling... test.cpp c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2146: syntax error : missing ';' before identifier 'fd' c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2501: 'SOCKET' : missing storage-class or type specifiers c:\program files\microsoft visual studio\vc98\include\mysql_com.h(183) : error C2501: 'fd' : missing storage-class or type specifiers c:\program files\microsoft visual studio\vc98\include\mysql_com.h(358) : error C2065: 'SOCKET' : undeclared identifier c:\program files\microsoft visual studio\vc98\include\mysql_com.h(358) : error C2146: syntax error : missing ')' before identifier 's' c:\program files\microsoft visual studio\vc98\include\mysql_com.h(359) : error C2059: syntax error : ')' c:\program files\microsoft visual studio\vc98\include\mysql.h(73) : fatal error C1083: Cannot open include file: 'mysql_time.h': No such file or directory Error executing cl.exe. test.exe - 7 error(s), 0 warning(s) а вот код
|
| Автор: Reptor 24.9.2008, 16:31 |
| всё получилось |
| Автор: test4me 24.4.2009, 18:02 |
| to Reptor! Помоги пожалуста такая же проблема програмлю на визуал 6 с++ где взять mysql_com.h? Спасибо всем кто даст решение этой проблемы... Суважением test4me! |
| Автор: ulcigor 13.5.2009, 08:02 | ||
Во-первых установи mysql. В расширенных настройках установки укажи, что ты не ламер какой нить, а реальный прогрваммер Указываем вот это: #include <mysql.h> #include <my_global.h> #pragma comment(lib, "libmysql.lib") Ну вот и всё. Остальное дело техники. Пишем функции для соединения с БД mysql_init( MYSQL *sock ); Инициализирует БД для нас mysql_real_connect( MYSQL *sock, char *localhost, char *dbuser, char *dbpass, char *dbname, int port, NULL, NULL ) Конектится... . mysql_query( MYSQL *sock, char *string ); Подаёт запрос на обработку MYSQL_RES *res = mysql_store_result( MYSQL *sock ); Определяет ресурс, для запроса... . mysql_fetch_row( MUSQL_RES *res ) Собственно сам запрос... . mysql_close( MYSQL *sock ); Закрывает соединение... . |
| Автор: Norby89 3.4.2010, 17:41 |
| При компиляции вышеприведенного кода произошло вот что: 1>------ Build started: Project: TestMySQL, Configuration: Debug Win32 ------ 1>Compiling... 1>main.cpp 1>d:\mysql server 5.1\include\mysql_com.h(243) : error C2146: syntax error : missing ';' before identifier 'fd' 1>d:\mysql server 5.1\include\mysql_com.h(243) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>d:\mysql server 5.1\include\mysql_com.h(243) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>d:\mysql server 5.1\include\mysql_com.h(417) : error C2065: 'SOCKET' : undeclared identifier 1>d:\mysql server 5.1\include\mysql_com.h(417) : error C2146: syntax error : missing ')' before identifier 's' 1>d:\mysql server 5.1\include\mysql_com.h(418) : error C2059: syntax error : ')' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(5) : error C2556: 'int mysql_init(MYSQL *)' : overloaded function differs only by return type from 'MYSQL *mysql_init(MYSQL *)' 1> d:\mysql server 5.1\include\mysql.h(432) : see declaration of 'mysql_init' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(5) : error C2373: 'mysql_init' : redefinition; different type modifiers 1> d:\mysql server 5.1\include\mysql.h(432) : see declaration of 'mysql_init' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(7) : error C2059: syntax error : 'constant' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(7) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(9) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(11) : error C2065: 'sock' : undeclared identifier 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(11) : error C2275: 'MYSQL' : illegal use of this type as an expression 1> d:\mysql server 5.1\include\mysql.h(313) : see declaration of 'MYSQL' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(13) : error C2065: 'MUSQL_RES' : undeclared identifier 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(13) : error C2365: 'mysql_fetch_row' : redefinition; previous definition was 'function' 1> d:\mysql server 5.1\include\mysql.h(547) : see declaration of 'mysql_fetch_row' 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\testmysql\testmysql\main.cpp(13) : fatal error C1903: unable to recover from previous error(s); stopping compilation 1>Build log was saved at "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\TestMySQL\TestMySQL\Debug\BuildLog.htm" 1>TestMySQL - 18 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== |
| Автор: jonie 4.4.2010, 20:04 | ||
добавь для начала... |
| Автор: azesmcar 5.4.2010, 10:15 |
#parma #pragma Добавлено через 2 минуты и 9 секунд jonie правда не совсем понял причем тут lib? Там ошибки компиляции. Norby89 выложи проект поглядим. |
| Автор: jonie 5.4.2010, 20:13 | ||
azesmcar, а ты думаешь не понадобится после приключений со сборкой ?) |
| Автор: azesmcar 5.4.2010, 23:56 | ||
|