Форум программистов
Реклама:
Контент-фильтр ИКС для учебных заведений.
Готовый набор правил для школ, фильтрация по спискам Роскомнадзора и Минюста. Соответствует ФЗ №436 и №139.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.08.2009, 14:56   #11
Samoilov Dmitrii
Новичок
 
Регистрация: 25.08.2009
Сообщений: 2
Репутация: 10
По умолчанию Как настроить MySQL и MS VS C++ 6?

Чем настройка будет отличаться от настройки c C++ Builder?
Samoilov Dmitrii вне форума   Ответить с цитированием
Старый 27.08.2009, 11:02   #12
Samoilov Dmitrii
Новичок
 
Регистрация: 25.08.2009
Сообщений: 2
Репутация: 10
По умолчанию

Попробовал я запустить приведенный тобой код (по выводу содержимого таблицы).
Ты пропустил в коде структуру MYSQL_FIELD *field; , но не в этом суть...
Суть в том, что если я в MS Vs C++ создаю консольное приложение, то прога работает нормально, а если пробую создать приложение Win32, то при создании ехе-файла две ошибки вылетают:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/show_db.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

show_db.exe - 2 error(s), 0 warning(s)

Не знаешь из-за чего это может быть?
Samoilov Dmitrii вне форума   Ответить с цитированием
Старый 26.04.2010, 10:16   #13
~RANDL~
 
Регистрация: 25.04.2010
Сообщений: 4
Репутация: 10
По умолчанию

При попытке компиляции Вашего кода выдает ошибки:
Код:

||=== new, Debug ===|
\BaseCreation\new\main.cpp|3|warning: ignoring #pragma comment |
obj\Debug\main.o||In function `_Z5mysqlPKc':|
\BaseCreation\new\main.cpp|20|undefined reference to `_mysql_init@4'|
\BaseCreation\new\main.cpp|21|undefined reference to `_mysql_real_connect@32'|
\BaseCreation\new\main.cpp|23|undefined reference to `_mysql_query@8'|
\BaseCreation\new\main.cpp|27|undefined reference to `_mysql_error@4'|
\BaseCreation\new\main.cpp|31|undefined reference to `_mysql_store_result@4'|
\BaseCreation\new\main.cpp|32|undefined reference to `_mysql_num_fields@4'|
\BaseCreation\new\main.cpp|33|undefined reference to `_mysql_num_rows@4'|
\BaseCreation\new\main.cpp|38|undefined reference to `_mysql_fetch_field_direct@8'|
\BaseCreation\new\main.cpp|45|undefined reference to `_mysql_fetch_row@4'|
\BaseCreation\new\main.cpp|54|undefined reference to `_mysql_free_result@4'|
\BaseCreation\new\main.cpp|55|undefined reference to `_mysql_close@4'|
||=== Build finished: 11 errors, 1 warnings ===|

Может дело в компиляторе?
При превой компиляции выдало 1ну ошибку - в строках
Код:

field = mysql_fetch_field_direct(res, i); // Получение названия текущего поля
      printf("| %s |", field->name);

Ошибка:
Код:

\BaseCreation\new\main.cpp|3|warning: ignoring #pragma comment |
\BaseCreation\new\main.cpp||In function `void mysql(const char*)':|
\BaseCreation\new\main.cpp|37|error: `field' was not declared in this scope|
||=== Build finished: 1 errors, 1 warnings ===|

я заменил эти строки на:
Код:

 printf("| %s |", mysql_fetch_field_direct(res, i)->name);

и выдает набор выше описаных ошибок.
~RANDL~ вне форума   Ответить с цитированием
Старый 04.06.2010, 00:21   #14
psycho-coder
Профессионал
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
Репутация: 343
По умолчанию

Что то я запустил свою стетейку( Но я вернулся.

Цитата:
Сообщение от Samoilov Dmitrii Посмотреть сообщение
Чем настройка будет отличаться от настройки c C++ Builder?
Ничем! Просто берем оригинальные (т.е. неконвертированные) libmysql.lib и libmysql.dll и пишем программу.

Цитата:
Попробовал я запустить приведенный тобой код (по выводу содержимого таблицы).
Ты пропустил в коде структуру MYSQL_FIELD *field; , но не в этом суть...
Суть в том, что если я в MS Vs C++ создаю консольное приложение, то прога работает нормально, а если пробую создать приложение Win32, то при создании ехе-файла две ошибки вылетают:

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/show_db.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

show_db.exe - 2 error(s), 0 warning(s)

Не знаешь из-за чего это может быть?
Для того чтобы этого не было нужно оформить функцию WinMain таким образом
Код:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR args, int WinMode)

{
	mysql("SELECT * FROM t_mid_author"); // Запрос
	getchar();
	return 0;
}

вот исправленный кусок под VS, правда в консоль ничего не выведет)))
Код:

#pragma comment(lib, "libmysql.lib") // подключаем библиотеку
#include <my_global.h> // Этот файл необходим для подключений заголовочных файлов, таких как windows.h, winsock.h и др. Заметь __LCC__ сверху исчезла
#include <mysql.h> // Заголовочный файл с описание функций
#include <stdio.h>
#include <conio.h>

int mysql(const char query[])
{
	MYSQL mysql; // Дескриптор соединения
	MYSQL_ROW row; // Массив полей текущей строки
	MYSQL_RES *res; // Дескриптор результирующей таблицы
	MYSQL_FIELD *field;

	char host[] = "127.0.0.1"; // хост
	char user[] = "admin"; // пользователь
	char passwd[] = "admin"; // пароль
	char db[] = "library"; // название базы данных
	int port = 3307; //  порт. Если порт у сервера MySQL не по умолчанию (3306), то нужно указывать конкретный номер порта
	int num_fields;
        my_ulonglong num_rows;
	int i, l;

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

	if (mysql_query(&mysql, query) > 0) // запорс. Если ошибок нет, то продолжаем работу
        {
			
			// Если была ошибка, ...
			printf("%s", mysql_error(&mysql));  // ... вывдем ее
			return 1; // и завершим работу
        } 

    res = mysql_store_result(&mysql); // Берем результат,
    num_fields = mysql_num_fields(res); // количество полей
    num_rows = mysql_num_rows(res); // и количество строк.

    for (i = 0; i < num_fields; i++) // Выводим названия полей
    {
      field = mysql_fetch_field_direct(res, i); // Получение названия текущего поля
      printf("| %s |", field->name);
    }

    printf("\n");
	
    for (i = 0; i < num_rows; i++) // Вывод таблицы
    {
      row = mysql_fetch_row(res); // получаем строку

      for (l = 0; l < num_fields; l++)
        printf("| %s |", row[l]); // Выводим поля
		
      printf("\n");
    }
	
        printf("Count records = %d\n", num_rows); // Вывод информации о количестве записей
  	mysql_free_result(res); // Очищаем результаты
	mysql_close(&mysql); // Закрываем соединение
	return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR args, int WinMode)
{
	mysql("SELECT * FROM t_mid_author"); // Запрос
	getchar();
	return 0;
}



Цитата:
При попытке компиляции Вашего кода выдает ошибки:
Тут дело в том что компилятор не подключил libmysql.lib, строка:
Цитата:
BaseCreation\new\main.cpp|3|warning : ignoring #pragma comment |
Посмотрите настройки компилятора и компоновщика.

Про добычу данных по имени поля, чуть позже напишу.
psycho-coder вне форума   Ответить с цитированием
Старый 07.06.2010, 08:35   #15
nadonadoo
Новичок
 
Регистрация: 07.06.2010
Сообщений: 2
Репутация: 10
По умолчанию

На что надо обратить внимание при создания проекта?

Есть VS 2008 (VС++), есть MySQL 5.0, пытаюсь создать проект, моментально выдает ошибку без кода ошибки, без пояснений, без всего, просто в статусбаре пишет об ошибке создания проекта.
- при создании проекта выбираю MFC Application, single document, database view with/without file support (пробовал оба), ODBC, Dynaset
- далее в Data source выбираю заранее зарегистрированный источник (пробовал и пользовательские и системные)
- тестовое соединение работает
- появляется список таблиц, после выборой любой из них (любого кол-ва) и продолжения создания проекта мастером со всеми настройками по умолчанию получаю ошибку.

В чем фокус? Что не так? Как надо?
Лучше всего прислать или дать ссылку на рабочий проект для работы с MySQL через ODBC в VC++...
nadonadoo вне форума   Ответить с цитированием
Старый 07.06.2010, 14:49   #16
psycho-coder
Профессионал
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
Репутация: 343
По умолчанию

Прикрепите сюда проект или ссылку.
psycho-coder вне форума   Ответить с цитированием
Старый 08.06.2010, 00:00   #17
nadonadoo
Новичок
 
Регистрация: 07.06.2010
Сообщений: 2
Репутация: 10
По умолчанию

Какой проект? После нажатия кнопки finish появляется стартовое окно Visual Studio (вернее оно и так на заднем плане есть), просто в статусбаре написано Creation Project 'такой-то'... creation project failed
nadonadoo вне форума   Ответить с цитированием
Старый 10.07.2010, 23:28   #18
demonitros
 
Регистрация: 09.07.2010
Сообщений: 8
Репутация: 10
По умолчанию

.h файлы забросил в папку Include.
.lib и .dll в папку Lib.
при попытке запустить программу мой CodeGear9 (так же как и Builder6) кидает ошибку
[LINK32 Error] Error: 'путь_к_компиллеру/LIB/LIBMYSQL.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
Долгое время пытаюсь прикрутить мускул к плюсам, так ничего и не выходит.
demonitros вне форума   Ответить с цитированием
Старый 11.07.2010, 01:58   #19
netrino
Профессионал
 
Аватар для netrino
 
Регистрация: 15.07.2008
Адрес: г. Киев, Украина
Сообщений: 1,933
Репутация: 736
По умолчанию

А прочитать статью не пробовали для начала? )
Цитата:
Сообщение от psycho-coder
Начальная "настройка"

Для работы в Builder необходимо конвертировать libmysql.lib.
Для этого, нужно открыть консоль и набрать там это

Код:

C:\>"C:\Program Files\Borland\CBuilder6\Bin\coff2om f.exe"
-lib:st "C:\Program Files\Borland\CBuilder6\Lib\libmysq l.lib"
"C:\Program Files\Borland\CBuilder6\Lib\libmysq l_.lib"

Здесь "C:\Program Files\Borland\CBuilder6\Lib\libmysq l.lib" оригинальная библиотека,
а "C:\Program Files\Borland\CBuilder6\Lib\libmysq l_.lib" конвертированная
соответственно использовать нужно libmysql_.lib
или самостоятельно сконвертировать libmysql.lib в формат OMF
netrino вне форума   Ответить с цитированием
Старый 11.07.2010, 20:08   #20
demonitros
 
Регистрация: 09.07.2010
Сообщений: 8
Репутация: 10
По умолчанию

Теперь весь день пытался сконвертировать эту либу. При любых попытках пишет
Синтаксическая ошибка в имени файла, имени папки или метке тома.
Все перепроверил, незнаю в чем подвох.
demonitros вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с MySQL в С++ с использованием библиотеки mysql++ oleg kutkov Visual C++ 5 30.12.2010 17:40
Работа с MySQL в Дельфи 7 drakhar БД в Delphi 8 01.12.2010 22:13
Работа с MySQL igroman PHP 10 29.09.2008 16:15
Работа с MySql zetrix PHP 1 18.06.2007 15:02




14:04.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru