Проблемы с доступом к Mysql из Visual Studio (в C++)

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
limarukraine
Сообщения: 2
Зарегистрирован: 12 ноя 2012, 12:23

12 ноя 2012, 12:30

Всем доброго времени суток

Помогите пожалуйста разобраться

Сделал как тут http://dev.mysql.com/doc/refman/5.1/en/ ... tudio.html

Правда нужные *.h оказались у меня (после инсталляции последней версии с сайта MySQL) в каталоге ...ProgramFiles\MySQL\MySQL Server5.5\include (а не в каталоге указанном в скриншотах в ссылке выше). Кроме того некоторые *.lib пришлось копировать из каталога установленного MySQL Connector C++ 1.1.1

Код взял отсюда http://programmersforum.ru/showthread.php?t=59147

Код: Выделить всё

// MySQL_CA_004.cpp: определяет точку входа для консольного приложения.
//



 #pragma comment(lib, "libmysql_.lib") // подключаем библиотеку
#include "stdafx.h"
#include <my_global.h>
#include <mysql.h>
#include <conio.h>


int _tmain(int argc, _TCHAR* argv[])

{
    
    // Дескриптор соединения
    MYSQL mysql;
     // Дескриптор результирующей таблицы
    MYSQL_RES *res;
    // Массив полей текущей строки
    MYSQL_ROW row;
 
    char host[] = "localhost"; // хост
    char user[] = "root"; // пользователь
    char passwd[] = "sgnigo"; // пароль
    char db[] = "a001"; // название базы данных
    int port = 0; //  порт. Если порт у сервера MySQL не по умолчанию (3306), то нужно указывать конкретный номер порта

    mysql_init(&mysql);  // Инициализация
    mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0); // соединение
                
      

    res = mysql_store_result(&mysql); // Берем результат, 
    
    row = mysql_fetch_row(res);

    
    return 0;
}
Выскакивает ошибка:

Необработанное исключение по адресу 0x5403ACC8 (libmysql.dll) в MySQL_CA_004.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x0000000C.

Если закоментить строку row = mysql_fetch_row(res); ошибка не выдается

В обоих случаях (с закоменченой строкой и с ней) при выполнении в окне ошибок (там где ошибки синтаксиса компилятор выдает) кроме того выдается


"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\ntdll.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Program Files\AVAST Software\Avast\snxhk.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\kernel32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\KernelBase.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\VsGraphics\x86\VsGraphicsHelper.dll". Невозможно найти или открыть файл PDB.

...

и т. д. еще несколько десятков строк
Аватара пользователя
AiK
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

12 ноя 2012, 14:20

проверь коннекцию и результат запроса на нулл с получением mysql_error и будет тебе щастие. Ну и запрос, хоть какой-то неплохо бы выполнить с помощью mysql_query прежде чем фетчить резалтсет :)
Даже самый дурацкий замысел можно воплотить мастерски
Ответить