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

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

21.03.2012, 03:02. Показов 33994. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru