12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165

Подключение MySQL к C++

21.03.2012, 03:02. Показов 34005. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть статья: http://articles.org.ru/cn/showdetail.php?cid=6810. Я по ней пытался подключить MySQL к C++, но там есть строчка:"Если вы посмотрите на каталог, куда установлен ваш сервер (c:\mysql\ по умолчанию), вы увидите, кроме всего прочего, две интересные папки: include и lib". Дело в том, что таких папок у меня нету. Качал мускул и с офф сайта и с денвером в комплекте-результат один. Что делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2012, 03:02
Ответы с готовыми решениями:

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Необходимо реализовать подключение к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Возникла проблема подключения к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...

Подключение к БД MySQL
Помогите создать подключение к бд посредством .НЕТ конектора... конектор скачал,добавил через разширения,также прописал импорт в...

26
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
22.03.2012, 17:52  [ТС]
ок, тогда по-другому: как вы подключали MySQL к C++?

Добавлено через 13 минут
Перенесите, пожалуйста, тему сюда:Visual C++ и базы данных
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
23.03.2012, 11:56
http://www.mysql.com/downloads/
1
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
24.03.2012, 04:05  [ТС]
Нашел нужные файлы, но не могу понять, что и куда копировать и что писать в главном cpp файле. Объясните, пожалуйста, настройку visual c++ для работы с mysql.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
24.03.2012, 08:37
Правой кнопкой по проекту, Properties->Configuration Properties -> Visual C++ Directories -> Include Directories -> Edit. Добавляете примерно следующий путь C:\Program Files\MySQL\MySQL Server 5.5\include.

Тоже самое с Library Directories. У меня это путь C:\Program Files\MySQL\MySQL Server 5.5\lib
0
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
25.03.2012, 05:52  [ТС]
Ничего не выходит. Сделал все как здесь написано, но выводятся ошибки:
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\mysql\mysql server 5.0\include\mysql_com.h 183
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\mysql\mysql server 5.0\include\mysql_com.h 183
Error 1 error C2146: syntax error : missing ';' before identifier 'fd' c:\program files\mysql\mysql server 5.0\include\mysql_com.h 183
Error 5 error C2146: syntax error : missing ')' before identifier 's' c:\program files\mysql\mysql server 5.0\include\mysql_com.h 368
Error 4 error C2065: 'SOCKET' : undeclared identifier c:\program files\mysql\mysql server 5.0\include\mysql_com.h 368
Error 6 error C2059: syntax error : ')' c:\program files\mysql\mysql server 5.0\include\mysql_com.h 369
Подробно опишите, как вы подключали MySQL к c++.

Вот код:
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
32
33
34
35
36
37
38
39
40
41
42
// 0.cpp : Defines the entry point for the console application.
//
#include "libmysql.lib"
#include <my_global.h>
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <winsock.h> 
#include <mysql.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
 MYSQL *conn;
 // Получаем дескриптор соединения
 conn = mysql_init(NULL);
 if(conn == NULL)
 {
 // Если дескриптор не получен – выводим сообщение об ошибке
 fprintf(stderr, "Error: can'tcreate MySQL-descriptor\n");
 //exit(1); //Если используется оконное приложение
 }
 // Подключаемся к серверу
 if(!mysql_real_connect(conn, "localhost", "root", "root", "test", NULL, NULL, 0))
 {
 // Если нет возможности установить соединение с сервером 
 // базы данных выводим сообщение об ошибке
 fprintf(stderr, "Error: can'tconnecttodatabase %s\n", mysql_error(conn));
 }
 else
 {
 // Если соединение успешно установлено выводим фразу - "Success!"
 fprintf(stdout, "Success!\n");
 } 
 // Закрываем соединение с сервером базы данных
 mysql_close(conn);
 
system("Pause");
 return 0;
}
Вот ошибки:
Error 5 fatal error LNK1120: 4 unresolved externals C:\Users\Костя\Documents\Visual Studio 2008\Projects\0\Release\0.exe
Error 2 error LNK2001: unresolved external symbol _mysql_real_connect@32 0.obj
Error 1 error LNK2001: unresolved external symbol _mysql_init@4 0.obj
Error 3 error LNK2001: unresolved external symbol _mysql_error@4 0.obj
Error 4 error LNK2001: unresolved external symbol _mysql_close@4 0.obj
Как исправить?

Добавлено через 19 часов 53 минуты
Подскажите, пожалуйста, хоть что-то. Месяц мучаюсь.
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
16.04.2012, 12:12
Ты в вижуале пытаешься подключить?

Добавлено через 9 минут
Сорь, ступил. Значит так, подключаешь компоненты(ПКМ на панель инструментов, выбрать элементы), там обзор и находишь папку include в MySQL папке, выбираешь 4 MySQL элемента
mySqlConnection
mySqlDataAdapter
mySqlCommand
mySqlCommandBuilder

В mySqlConnection в свойствах заполняешь DataBase, Host, Port, UserID, Password.
Далее добавляешь mySqlCommand, там заполняешь Connection свой mySqlConnection, в Command Text пишешь свою MySQL комманду(ну я пишу по нажатию кнопки, поскольку у меня динамическая информация "mySqlInsertData->CommandText = "insert into `"+label2->Text+"`(`X`,`Y`, `step`) values ('"+textBox1->Text+"','"+textBox2->Text+"','"+textBox3->Text+"');";") вот так, потом в тексте mySqlInsertData->ExecuteNonQuery(); и всё, команда выполнится(в данном случае будет добавляться в таблицу)
3
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
17.04.2012, 22:28  [ТС]
Цитата Сообщение от KokosSPb Посмотреть сообщение
Добавлено через 9 минут
mySqlConnection
mySqlDataAdapter
mySqlCommand
mySqlCommandBuilder
Этих элементов не нашел ни в визуале, ни на компе.
Зато элементы SqlConnection, SqlDataAdapter, SqlCommand, SqlCommandBuilder есть.
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
21.04.2012, 17:23
Нет, это SQL, так, найди в интернете ADO.NET Provider, либо купи, либо найди полную бесплатную версию (она есть), поставь, потом правой кнопкой - добавить элемент и ниже - обзор, выбираешь файл .dll из папки с установленной программой и появляются нужные 4 файла
1
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
22.04.2012, 03:38  [ТС]
http://dev.mysql.com/downloads/connector/net/ - он?
Если да, то скачал, установил, но в дочерних папках mysql этих dll не появилось. Скачал архивом, в архиве этих файлов тоже нет.
0
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
24.04.2012, 00:25  [ТС]
нет, вот ссылка - http://www.devart.com/dotconne... nload.html
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
24.04.2012, 12:52
да, это он, но это официальный и он платный, на сколько я помню, а бесплатный был урезан неслабо
1
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
25.04.2012, 00:28  [ТС]
А можно поточнее: я, например, не нашел куда заполнять mySqlConnection (где поле Connection), зачем нужны mySqlCommandBuilder, mySqlDataAdapter, как их всех связать, как выставить слушатель событий, чтобы, например, при нажатии мыши отправлялся запрос на исполнение, или формировался запрос для дальнейшей транзакции etc.
Опишите все подробно, если можно.
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
26.04.2012, 10:33
Ну смотри. Предположим тебе нужно добавить информацию в базу. Достаточно mySqlConnection и mySqlCommand.
Выбираешь свойства mySqlConnection:
Password - твой пароль для MySQL
UserId - Логин для MySQL
Database - название базы в MySQL
Host - Твой хост(localhost)
Port - 3306

Выбираешь свойства mySqlCommand:
Connection - mySqlConnection
CommandText - твоя команда на выполнение (я её заполняю в коде)

Пример:
Создаешь кнопку, на её обработку пишешь
C++
1
2
3
4
mySqlCommand1->CommandText = "insert into `Таблица`(`Колонка1`,`Колонка2`) values ('Значение1','Значение2');";//сама команда
mySqlConnection1->Open();//открытие подключения к базе
mySqlCommand1->ExecuteNonQuery();//выполнения команды
mySqlConnection1->Close();//Закрытие подключения к базе
В данном случае у тебя запишется в существующую таблицу "Таблица" в ячейки колонок "Колонка1" и "Колонка2" значения "Значение1" и "Значение2".
2
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
28.04.2012, 01:43  [ТС]
Спасибо!
Все вышло!
С этим понятно, а как на счет чтения? Видел вашу тему в этой ветке, но ничего не вышло).
Можно пример дефолтного чтения и ссылку на мануал по ADO.NET, чтобы я сам осваивал.
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
29.04.2012, 12:19
Цитата Сообщение от doon Посмотреть сообщение
Спасибо!
Все вышло!
С этим понятно, а как на счет чтения? Видел вашу тему в этой ветке, но ничего не вышло).
Можно пример дефолтного чтения и ссылку на мануал по ADO.NET, чтобы я сам осваивал.
С чтением чуть позже помогу

Добавлено через 21 час 28 минут
так, значит следующее будем считывать в listBox, использовать mySqlConnection и mySqlCommand из старого примера. Для подготовки необходимо сделать следующее:
C++
1
private: Devart::Data::MySql::MySqlDataReader^  MySqlDataReader1;
в области, после
C++
1
2
3
4
5
6
7
8
9
10
11
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
В результате будет что-то типа
C++
1
2
3
4
    private: Devart::Data::MySql::MySqlConnection^  mySqlConnection1;
    private: Devart::Data::MySql::MySqlDataReader^  MySqlDataReader1;
    private: Devart::Data::MySql::MySqlCommand^  mySqlCommand1;
    private: System::Windows::Forms::ListBox^  listBox1;
далее - создаешь кнопку и в её обработчик пишешь:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    listBox1->Visible=true;
    bShowTable->Visible=false;
    mySqlCommand1->CommandText="SELECT * FROM таблица;";
    listBox1->Items->Clear();
    mySqlConnection1->Open();
    MySqlDataReader1 = mySqlCommand1->ExecuteReader();
    while(MySqlDataReader1->Read())
    {
        for (int i = 0; i < MySqlDataReader1->FieldCount; i++)
        {
        listBox1->Items->Add( MySqlDataReader1->GetValue(i)->ToString());
        }
    }
    listBox1->Items->Remove("obj");
    mySqlConnection1->Close();
Добавлено через 1 час 25 минут
C++
1
    listBox1->Items->Remove("obj");
Это не надо это моё
3
1 / 1 / 0
Регистрация: 15.05.2012
Сообщений: 4
16.05.2012, 19:30
Автор где ты достал mySqlConnection и остальные 3 файла? Я все ссылки тут скачал и не нашел. Объясни подробно где искать?
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
18.05.2012, 20:21
Ни тебе спасибо, ничего найди dotConnect в интернете, бесплатную или купи на официально сайте, ссылка дана выше, установи и там найдешь все 4(!) компонента
2
1 / 1 / 0
Регистрация: 15.05.2012
Сообщений: 4
19.05.2012, 16:36
так и сделал. Поиск их так и не нашел.
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
24.05.2012, 08:45
Так погоди файл то один MySQL.dll вроде (завтра точнее скажу), а когда его подключишь в компонентах появится 4 новых элемента

Добавлено через 10 часов 18 минут
Помойму, для вижуал студии файл называется "Devart.Data.MySql.Vs.dll".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2012, 08:45
Помогаю со студенческими работами здесь

Подключение к mysql
пишу вот такой код подключения import java.sql.*; import java.lang.ClassNotFoundException; import java.io.*; import...

Подключение к MySQL
Уже давно пользуюсь MySQL, так что вроде не полный ламер, но на днях приключилась непонятная бедовина. Вдруг перестал работать сервер...

Подключение MySQL БД
Первый раз решил попробовать подключить БД к Билдеру. Скачал и установил mysql connector odbc. Создал пользовательский источник данных, в...

Подключение к MySQL
Осваиваю создание сайтов. Столкнулся с проблемой joomla. Испробовал в работе ver. 1.5.7; 2.5.7; 3.0.1 и все на первичном этапе выдают одну...

Подключение MySQL к Qt
При запуске следующего участка кода в Visual Studio 2015(win32_msvc компилятор) #include &lt;QtCore/QCoreApplication&gt; #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru