Форум программистов CodeGuru
18 Январь 2018, 17:58:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы с доступом к MySQL из Visual Studio (в C++)  (Прочитано 13362 раз)
0 Пользователей и 1 Гость смотрят эту тему.
limarukraine
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 12 Ноябрь 2012, 12:07:47 »

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

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

Сделал как тут http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-apps-windows-visual-studio.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[] = " "; // пароль
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.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\advapi32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\msvcrt.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\sechost.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\rpcrt4.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\user32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\gdi32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\lpk.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\usp10.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\ole32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\oleaut32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\version.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\imagehlp.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d2d1.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\DWrite.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Users\Igor\Documents\Visual Studio 2012\Projects\MySQL_CA_004\Release\libmysql.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\secur32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\sspicli.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\ws2_32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\nsi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\msvcr110.dll". Символы загружены.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\imm32.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\msctf.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d9.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d8thk.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\dwmapi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\dxgi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d10.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d10core.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d10_1.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d10_1core.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\psapi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\d3d11.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\dbghelp.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\nlaapi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\NapiNSP.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\pnrpnsp.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\mswsock.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\dnsapi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\winrnr.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\rasadhlp.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\WSHTCPIP.DLL". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\wship6.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\IPHLPAPI.DLL". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\winnsi.dll". Невозможно найти или открыть файл PDB.
"MySQL_CA_004.exe" (Win32). Загружено "C:\Windows\System32\FWPUCLNT.DLL". Невозможно найти или открыть файл PDB.

« Последнее редактирование: 12 Ноябрь 2012, 22:55:32 от 3V » Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 12 Ноябрь 2012, 23:03:31 »

Можно попробовать как тут сделать:

Код:
MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;

num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
   unsigned long *lengths;
   lengths = mysql_fetch_lengths(result);
   for(i = 0; i < num_fields; i++)
   {
       printf("[%.*s] ", (int) lengths[i],
              row[i] ? row[i] : "NULL");
   }
   printf("\n");
}

Вообще, имхо, mysql_store_result должен вызываться после mysql_query или mysql_real_query, т.е. исполнения запроса (чтобы, собственно, был результат, возвращенный на клиент). А запроса вроде как не было.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!