#include "mysql.h"
............
MYSQL* mysql;
mysql=mysql_init(NULL); //должна быть ещё такая строка я её добавил при редактировании этого сообщения (что писать вместо NULL?)
if(!mysql_real_connect(mysql,"localhost","root","","",3306,"",0))
{
............
}
Подключение к MySQL
Кому-нибудь приходилось подключаться к MySQL из Windows Forms?
У меня что-то не получается.
Код:
На Visual C++ работает, а на Windows Forms компилятор пропускает, но при попытке подключения (mysql_real_connect) работа программы прерывается.
И ещё, я не совсем понял, символ ^ это вместо звёздочки, для объявления указателей?
Если да, для чего тогда в Windows Forms звёздочка? Она вообще используется? Компилятор её пропускает.
Пробовал заменять * на ^ в вышеприведённом коде, тогда компилятор пишет:"error C3699: '^' : cannot use this indirection on type 'MYSQL'".
В Windows Forms есть что-то типа NULL, а то оно у меня не катит?
По нету покопался ничего не нашёл по поводу подключения к MySQL из Windows Forms.
Код:
MYSQL mysql;
mysql_init(&mysql);
mysql_real_connect(&mysql,"localhost","root","","",3306,"",0);
mysql_select_db(&mysql,"PsychoTestDataBase");
mysql_close(&mysql);
mysql_init(&mysql);
mysql_real_connect(&mysql,"localhost","root","","",3306,"",0);
mysql_select_db(&mysql,"PsychoTestDataBase");
mysql_close(&mysql);
то программа к базе подключается, но сразу после подключения появляется окно, в котором написано, что в этой программе обнаружена ошибка, приносим извинения и пр. с кнопками отправить и неотправить отчёт в Майкрософт.:confused:
Это происходит из-за того, в строке
Код:
mysql_init(&mysql);
Код:
mysql=mysql_init(0)
Подскажите, как объявить указатель на mysql?
Если так
Код:
MYSQL* mysql;
Если так
Код:
MYSQL^ mysql;
Нужно было просто написать так:
Код:
MYSQL *mysql=new MYSQL;
Но всё-таки ответьте, пожалуйста, чем * отличается от ^???
И как использовать пустое значение, которое обычно бывает NULL, но NULL здесь не работает???
Может тогда не мучиться и воспользоваться MySQL® Connector/Net? :confused:
Теперь ответ на вопрос, если он был все таки поднят:
^ (Declares a handle to an object on the managed heap) - это Managed указатель, для него предусмотрены ключевые слова [COLOR=blue]gcnew[/COLOR][COLOR=black]/[/COLOR][COLOR=blue]nullptr[/COLOR] (читать тут)
* (regular C++ pointer) - это Unmanaged указатель, для него предусмотрено ключевое слово [COLOR=blue]new[/COLOR]
Цитата:
Может тогда не мучиться и воспользоваться MySQL® Connector/Net?
Я с подключением и работой с MySQL разобрался, поэтому буду работать через его родные функции, там всё достаточно просто.
И теперь стало понятно для чего применяется ^.
Спасибо!