Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/105: Рейтинг темы: голосов - 105, средняя оценка - 4.55
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
1

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

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

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

Подключение к MySQL 6.0 через C++
Всем привет! Я уже задавал этот вопрос в другом разделе, но мне никто не...

Подключение mysql.h к проекту
Доброго времени суток, уважаемые посетители cyberforum! Не могу никак сделать...

C++ и mysql. Подключить mysql к проекту
я хочу подключить mysql к моему проекту ,в инете очень много написано но не...

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

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

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

Добавлено через 13 минут
Перенесите, пожалуйста, тему сюда:Visual C++ и базы данных
0
Петррр
6168 / 3469 / 898
Регистрация: 28.10.2010
Сообщений: 5,928
23.03.2012, 11:56 3
http://www.mysql.com/downloads/
1
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
24.03.2012, 04:05  [ТС] 4
Нашел нужные файлы, но не могу понять, что и куда копировать и что писать в главном cpp файле. Объясните, пожалуйста, настройку visual c++ для работы с mysql.
0
Петррр
6168 / 3469 / 898
Регистрация: 28.10.2010
Сообщений: 5,928
24.03.2012, 08:37 5
Правой кнопкой по проекту, 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
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
25.03.2012, 05:52  [ТС] 6
Ничего не выходит. Сделал все как здесь написано, но выводятся ошибки:
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
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
16.04.2012, 12:12 7
Ты в вижуале пытаешься подключить?

Добавлено через 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
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
17.04.2012, 22:28  [ТС] 8
Цитата Сообщение от KokosSPb Посмотреть сообщение
Добавлено через 9 минут
mySqlConnection
mySqlDataAdapter
mySqlCommand
mySqlCommandBuilder
Этих элементов не нашел ни в визуале, ни на компе.
Зато элементы SqlConnection, SqlDataAdapter, SqlCommand, SqlCommandBuilder есть.
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
21.04.2012, 17:23 9
Нет, это SQL, так, найди в интернете ADO.NET Provider, либо купи, либо найди полную бесплатную версию (она есть), поставь, потом правой кнопкой - добавить элемент и ниже - обзор, выбираешь файл .dll из папки с установленной программой и появляются нужные 4 файла
1
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
22.04.2012, 03:38  [ТС] 10
http://dev.mysql.com/downloads/connector/net/ - он?
Если да, то скачал, установил, но в дочерних папках mysql этих dll не появилось. Скачал архивом, в архиве этих файлов тоже нет.
0
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
24.04.2012, 00:25  [ТС] 11
нет, вот ссылка - http://www.devart.com/dotconnect/mysql/download.html
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
24.04.2012, 12:52 12
да, это он, но это официальный и он платный, на сколько я помню, а бесплатный был урезан неслабо
1
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
25.04.2012, 00:28  [ТС] 13
А можно поточнее: я, например, не нашел куда заполнять mySqlConnection (где поле Connection), зачем нужны mySqlCommandBuilder, mySqlDataAdapter, как их всех связать, как выставить слушатель событий, чтобы, например, при нажатии мыши отправлялся запрос на исполнение, или формировался запрос для дальнейшей транзакции etc.
Опишите все подробно, если можно.
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
26.04.2012, 10:33 14
Ну смотри. Предположим тебе нужно добавить информацию в базу. Достаточно 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
doon
12 / 12 / 0
Регистрация: 25.06.2011
Сообщений: 165
28.04.2012, 01:43  [ТС] 15
Спасибо!
Все вышло!
С этим понятно, а как на счет чтения? Видел вашу тему в этой ветке, но ничего не вышло).
Можно пример дефолтного чтения и ссылку на мануал по ADO.NET, чтобы я сам осваивал.
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
29.04.2012, 12:19 16
Цитата Сообщение от 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
rapira
1 / 1 / 0
Регистрация: 15.05.2012
Сообщений: 4
16.05.2012, 19:30 17
Автор где ты достал mySqlConnection и остальные 3 файла? Я все ссылки тут скачал и не нашел. Объясни подробно где искать?
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
18.05.2012, 20:21 18
Ни тебе спасибо, ничего найди dotConnect в интернете, бесплатную или купи на официально сайте, ссылка дана выше, установи и там найдешь все 4(!) компонента
2
rapira
1 / 1 / 0
Регистрация: 15.05.2012
Сообщений: 4
19.05.2012, 16:36 19
так и сделал. Поиск их так и не нашел.
0
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
24.05.2012, 08:45 20
Так погоди файл то один MySQL.dll вроде (завтра точнее скажу), а когда его подключишь в компонентах появится 4 новых элемента

Добавлено через 10 часов 18 минут
Помойму, для вижуал студии файл называется "Devart.Data.MySql.Vs.dll".
1
24.05.2012, 08:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2012, 08:45

Подключение к Mysql
Через myPhpAdmin создал базу &quot;'internet-store&quot;, в ней таблицу &quot;products&quot;,...

Подключение к mysql
Доброго времени суток. Подскажите пожалуйста как создать запрос из php...

Подключение к MySQL
Если я создаю базу данных MySQL на сервере. Сервер написан на С++. И как мне...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru