Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2015, 11:32   #1
pelmen1985
Новичок
Джуниор
 
Регистрация: 24.01.2015
Сообщений: 2
По умолчанию Visual Studio + MySql

Добрый день. Никогда не работал с базами данных под C/C++. Буду признателен в любой помощи. В идеале полноценный отлаженный пример.
Задача следующая.

Подключиться к БД MySQL (можно любой другой) с помощью VS 6.0. Программа должна позволять сохранить информацию в БД. В идеале все через консольное приложение.

Заранее очень благодарю
pelmen1985 вне форума Ответить с цитированием
Старый 24.01.2015, 11:58   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Либо напрямую:
http://dev.mysql.com/downloads/connector/c/
http://dev.mysql.com/doc/connector-c/en/index.html

Либо через ODBC:
http://dev.mysql.com/downloads/connector/odbc/
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
waleri вне форума Ответить с цитированием
Старый 24.01.2015, 12:15   #3
pelmen1985
Новичок
Джуниор
 
Регистрация: 24.01.2015
Сообщений: 2
По умолчанию

А если учесть, что опыт в программировании небольшой?) Есть ли подробный пример, как подключиться к БД и вывести информацию на консоль средствами VS?

У меня есть выборка определенной информации (обычное консольное приложение на C). Теперь задача состоит в том, чтобы выгрузить информацию в БД. (Т.е. вместо оператора вывода, нужно поставить оператор записи в БД).
pelmen1985 вне форума Ответить с цитированием
Старый 31.07.2015, 12:22   #4
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Добрый день.
Установил MySQL и Mysql-connector-C++.
В свойствах проекта добавил пути. Сделал по этой инструкции:
Цитата:
1. Открываем Visual C++, создаем стандартный консольный проект, сохраняем в любое удобное место.
2. Обязательно (!!!) выбираем режим постройки проекта Release. Если выбрать стандартный Debug, то нужно файлы сохранять в другие директории.
3. Открываем свойства проекта (в окне обозревателя решений правой кнопкой по проекту — свойства).
4. Выбираем «Свойства конфигурации — С/С++ — Общие — Дополнительные каталоги включаемых файлов», добавляем каталог include из папки с сервером (в моем случае D:\программирование\MySQL Server 5.1\include).
6. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Компоновщик — Общие — Дополнительные каталоги библиотек», добавляем каталог lib/opt (в моем случае D:\программирование\MySQL Server 5.1\lib\opt).
7. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Компоновщик — Ввод — Дополнительные зависимости», добавляем 2 значения mysqlcppconn-static.lib и libmysql.lib.
8. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Препроцессор — Определения препроцессора», добавляем значение CPPCONN_PUBLIC_FUNC=.
9. Сохраняем свойства проекта.
Но когда строю решение, то выдаёт вот такие ошибки.
Цитата:
1>mysqlcppconn-static.lib(plugin_client.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(client_authentication.ob j) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(my_default.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(ssl.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(net_serv.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(handshake_client.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(my_aes_yassl.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(crypto_wrapper.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(yassl_int.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(yassl_imp.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(handshake.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
1>mysqlcppconn-static.lib(cert_wrapper.obj) : error LNK2038: обнаружено несоответствие для "_MSC_VER": значение "1600" не соответствует значению "1700" в main.obj
...
По ссылке, откуда скачивать коннектор есть такое предупреждение:
Цитата:
One problem that can occur is when the tools you use to build your application are not compatible with the tools used to build the binary versions of MySQL Connector/C++. Ideally, you need to build your application with the same tools that were used to build the MySQL Connector/C++ binaries.
В общем я так понял, что это как раз мой случай.
Работаю с Visual Studio 2012, а предупреждения вроде как говорит, что библиотека mysqlcppconn-static.lib была собрана с помощью Visual Studio 2010.

На стэковерфлоу пишут такое:
Цитата:
You are trying to link objects compiled by different versions of the compiler. That's not supported in modern versions of VS, at least not if you are using the C++ standard library. Different versions of the standard library are binary incompatible and so you need all the inputs to the linker to be compiled with the same version. Make sure you re-compile all the objects that are to be linked.
Прошу подсказать, что надо перекомпилировать (не знаю что и как) или как решить эту проблему?

Последний раз редактировалось Stilet; 01.08.2015 в 12:58.
Gekan вне форума Ответить с цитированием
Старый 31.07.2015, 12:53   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Ищите либо готовую либу собраннуею студией 2010 либо ищите исходники и пересобирайте вашей студией.

В плане того, что нужно - может проще на стандартный выход генерить SQL команды и запустить готовое EXE для выполнения оных?

Типа ваша прога делает:
printf("INSERT INTO table ... ");

А запусакете все вот так:
VashaProga.exe | MySQL.exe MyDataBase.db
waleri вне форума Ответить с цитированием
Старый 31.07.2015, 13:06   #6
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Ищите либо готовую либу собраннуею студией 2010 либо ищите исходники и пересобирайте вашей студией.
Наверное, здесь вы имели ввиду собранную 2012 студией. Т.е. этот коннектор, в частности та самая библиотека, был/и собран/ы 2010 студией?

Цитата:
Сообщение от waleri Посмотреть сообщение
В плане того, что нужно - может проще на стандартный выход генерить SQL команды и запустить готовое EXE для выполнения оных?

Типа ваша прога делает:
printf("INSERT INTO table ... ");

А запусакете все вот так:
VashaProga.exe | MySQL.exe MyDataBase.db
Я опыта работы с MySQL не имею совсем (да и С++ тоже не очень давно), поэтому даже не понимаю о чём тут речь

Наверное надо пересобирать. Только вот не понимаю, почему нет версии того же коннектора, но собранной 2012 студией.
Gekan вне форума Ответить с цитированием
Старый 31.07.2015, 14:57   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Наверное надо пересобирать.
Надо. Ничего сложного нету в этом. Берете исходники от туда же и вперед.

Цитата:
Только вот не понимаю, почему нет версии того же коннектора, но собранной 2012 студией.
А еще нет версии собранных гцц версиий от 4.0.0 до 5.1.0 включительно или арм гцц вариациий,... вам дали исходники и собрали несколько базовых вариантов - остальное, если надо сами.
p51x вне форума Ответить с цитированием
Старый 31.07.2015, 16:14   #8
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Надо. Ничего сложного нету в этом. Берете исходники от туда же и вперед.
Вот тут нашёл инструкцию по сборке:
http://stackoverflow.com/questions/2...al-studio-2012
Только возник такой вопрос: что значит эта пересборка MySQL server? Ошибок всего компилятор выдаёт 25 штук и все они касаются mysqlcppconn-static.lib, т.е. вроде бы только непосредственного коннектора, зачем тогда пересобирать MySQL server?
Gekan вне форума Ответить с цитированием
Старый 31.07.2015, 16:56   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
что значит эта пересборка MySQL server?
Нету там такого. Там только пути к либам в установленном сервере.

https://dev.mysql.com/doc/connector-...e-windows.html
p51x вне форума Ответить с цитированием
Старый 01.08.2015, 11:05   #10
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

1. Установил Cmake.
2. Потом скачал the source distribution (на картинке отмечено, но точно не уверен, оно ли это или нет)
Безымянный.jpg
3. Перешёл по этой ссылке:
Цитата:
Сообщение от p51x Посмотреть сообщение
Там 1 пункт.
Change location to the top-level directory of the source distribution:
Код:
shell> cd C:\path_to_mysql_cpp
Правильно ли я понимаю, что это папка MySQL Connector C++ 1.1.6 в MySQL? Просто не нахожу в этой папке файлы с расширением .cpp.
Ну да ладно. Всё равно перешёл туда. Потом выполнил пункт 2:
Код:
cmake -G "Visual Studio 11 2012"
В командной строке такое:
Код:
CMake Error: The source directory "C:/Users/Jeka/Desktop/mysql-connector-c++-noinstall-1.1.6-win32" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Скопировал в каталог MySQL Connector C++ 1.1.6 файлик CMakeLists.txt.
Но тогда кучу ошибок командая строка показывает:
Безымянный1.jpg
Безымянный2.jpg

Если возможно, подскажите, что я делаю не так.
Gekan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к MySQL из Visual Studio ? limarukraine C/C++ Базы данных 3 14.11.2012 00:13
Visual Studio 2010 и MYSQL Программер Михаил C/C++ Базы данных 4 15.02.2012 23:06
visual studio 2008 + mysql ololo-schoolboy Visual C++ 2 28.12.2010 16:30
MySQL Connector для Visual Studio 2010 zonex5 Общие вопросы .NET 0 02.06.2010 09:56
Visual Studio + MySQL uzver777 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 04.10.2009 21:29