Добавлен , опубликован
Программирование
Язык:
C++
Потребовалось мне тут юзануть MySQL в С++ и получилось вот что
[22:54:36] Мулюкин Алексей: ****
[22:50:52] +++: ну
[22:54:36] Мулюкин Алексей: это жопа
[22:54:53] +++: не сомневался
[22:56:29] Мулюкин Алексей: я не смогу совладать с этой фигней(
[22:56:43] +++: никто не сможет)))
[22:56:49] Мулюкин Алексей: мне выдает ошибку, а я даже не знаю что с ней сделать
[22:56:49] Мулюкин Алексей: screenshot.su/show.php?img=1c60a4f4e05c2c9ee9ea6f8a161728ce.jpg
[22:57:35] Мулюкин Алексей: что мне прибудет, если я расскажу тайны вселенной XD
[22:58:04] Мулюкин Алексей: но скажу честно, такого гемороя и ада я еще не видел
[22:58:23] Мулюкин Алексей: даже doom metal показался фигней по сравнению с моими стонами когда я пытался все это запустить XD
[22:58:53] Мулюкин Алексей: эта жуткая боль....
[23:01:23] Мулюкин Алексей: на самом деле я чисто рендомно решил проблему
[23:01:35] Мулюкин Алексей: когда уже был полон отчаянья
[23:01:47] Мулюкин Алексей: и рыл все возможные форумы
[23:01:56] Мулюкин Алексей: уже был готов податься и задать вопрос
[23:02:19] Мулюкин Алексей: вообще самое противное что все темы с моей проблемой были без ответов T_T
А теперь вернемся на часов 5-6 назад

На первых парах

Ну а что, оптимист же я, да еще и энтузиаст, которые не ищет легких путей. Поэтому начинаю я с того что иду на офф сайт мускула и устанавливаю коннектор на C++. Пишу код с их мануала, обнаруживаю что часть классов пустые <_< Параллельно скачал буст. И тут начались первые танцы с бубном. Я долго пытался сообразить как же прописать референсы, чтобы классы были видны, делал все по инструкции из мануала. Но нифига не работало. В общем крутясь вокруг да около я так ничего и не сделал в течении часа.
Чуть дальше я нашел другой мануал на каком то левом сайте, в принципе это был добротный перевод офф мануала, но без скринов, но там были пару новых пунктов. А конкретно
  • установить пакет MySQL Server Dev + Debug Bin's
  • скопировать содержимое include и lib из коннектора в соответствующие папки с сервером
  • настроить референсы в студии на эти папки
  • юзать mysql.h
Ну на первых парах я даже написал много кода для тестирования)) Ибо там функции все те же самые что и в php. Компилирую, иииии. Да, не скомпилилось.

Ад продолжается

Вот он этот черт. Ну тут в принципе понятно, объявляем winsock.h и все, вроде бы. Кажется что все, но нет!!!!
Типичная ошибка линковки. Уххх, как же я ненавижу эту ошибку. Вроде все пути прописаны правильно, но в чем же проблема. Думал что
#pragma comment(lib, "libmysql.lib")
поможет. Но нет!!! Нет!!!
Я качаю различные версии и варианты и все равно ерунда!!!!

MySQL++

Начал искать альтернативы, сперва мне показалось что это какая то любительская подделка, сайт отпугнул, но потом когда увидел статью на IBM решил попробовать. Ну ок. Качаю, ии блин, ну почему нельзя сделать уже готовые билды???? Эххх, ну ладно начинаю компилить. Первая проблема это не найдет mysql_version.h. А ну ок, прописал референсы, заработало. Но вот дальше.... Начался такой сущий ****, что я даже не знал в какую сторону копать и даже не знал какой запрос сделать
пришлось возвращаться к своим старым проблемам
Гуглил код ошибки, яндексил сообщение ошибки, находил открытые темы с этой проблемой, хоть и под юникс некоторые были, но все заканчивалось одинаково. Они все были без ответов. Одну тему на хакере правда нашел с ответом, но он был ссылкой на коднет, которая была уже битая T_T

В полной жопе

Тыкал я всякие настройки, кидал я всякие файлы из одной папки в другую результат меня ждал один и тот же. И тут я решился на самый обсурдный шаг, я решил попробовать скачать коннектор для C. И знаете что? Он все равно не работал((( Ошибки все те же самые были. Но зато я хоть теперь знаю, что все файлы что в сервере идут, поставляются вместе с этим коннектором. И тут я было даже закрыл студию. И вдруг я заметил что качал то я х64, а собирал х32 T_T
Вы понимаете??? Я потратил, ну скажем так, часов 5-6 делая абсурдные вещи <_< И как думаете что я сделал дальше?

Решение

И так вот он момент истины, ребятки.
  1. Идем на мускул и качаем коннектор для C
  2. Распаковываем
  3. В своем проекте указываете референсы до папки include и папки lib
  4. Делаете зависимость в проекте от libmysql.lib
  5. Подключаете winsock.h и mysql.h
  6. Таскаете libmysql.dll с exe
  7. Ctrl+Alt+Shift+B (Rebuild All)
  8. ...
запускаем и получаем вот что
Ну и собственно исходник примера
#include "stdafx.h"
#include <WinSock.h>
#include <mysql.h>
#include <conio.h>
#pragma comment ( lib, "libmySQL.lib" )

int main(int argc, char *argv[])
{
	// Дескриптор соединения
	MYSQL *conn;
	// Получаем дескриптор соединения
	conn = mysql_init(NULL);
	if(conn == NULL)
	{
		// Если дескриптор не получен - выводим сообщение об ошибке
		fprintf(stderr, "Error: can't create MySQL-descriptor\n");
		return 1;
	}
	// Подключаемся к серверу
	if(!mysql_real_connect(conn, NULL,"testuser","password",NULL,NULL,NULL, 0))
	{
		// Если нет возможности установить соединение с сервером 
		// базы данных выводим сообщение об ошибке
		fprintf(stderr, 
		"Error: can't connect to database %s\n",
		mysql_error(conn));
	}
	else
	{
		// Если соединение успешно установлено выводим фразу - "Success!"
		fprintf(stdout, "Success!\n");
	} 
	mysql_close(conn);
	getch();
}
Всем спасибо и до свидания, на сегодня мой интеллектуальный ресурс исчерпан
Ну и как всегда ссылочки

Мануал по MySQL C API - на английском
MySQL Connector / C - качаем zip для х32
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
29
11 лет назад
1
сервер на cpp
вы уволены.
0
29
11 лет назад
0
Doc, твоя прожорливая джавка не к месту для моей задачи
0
29
11 лет назад
Отредактирован Doc
0
Ахах, кк :D
Чеееерт, опять про кресты забыли!
Сервера линейки на жаве держат по 6к человек онлайн? Ужасная жава, ужасная! Не знаю ни одного сайта с сервером полностью на С (знаю, что гугл в критических частях на нем, при этом от с стараются избавиться и перейти на го)
Мб еще на паскале сервер напишешь?
0
24
11 лет назад
0
alexprey:
Faion, к примеру?
Задача:
сервер на cpp + веб обвязка, типа ЛК
И что использовать тогда? использование единой sql базы хороший вариант на мой взгляд
К примеру RavenDB. В отличие sql решений, nosql хранит объекты в бд, нету никакого оверхеда с созданием ДАЛ, и не нужно думать вообще о связях, ключах и прочей чертовщине. Я могу за день создать сколько угодно репозиториев для объектов любой сложности не напрягаясь, ибо практически делать ничего не нужно, кроме как выполнить действия к которым больше обязывает архитектура проекта. В том же мускуле ты бы делал подобную задачу пару недель.
Doc:
Сервера линейки на жаве держат по 6к человек онлайн? Ужасная жава, ужасная! Не знаю ни одного сайта с сервером полностью на С (знаю, что гугл в критических частях на нем, при этом от с стараются избавиться и перейти на го)
Мб еще на паскале сервер напишешь?
Это говнофришки на жабке, а офф сервера на спп :nate:
0
29
11 лет назад
0
Ок.
Это говнофришки на жабке, а офф сервера на спп :nate:
No proofs given -> ur opinion is shit.
1
24
11 лет назад
1
No proofs given -> ur opinion is shit.
:facepalm: Может тебе пруф дать на то что 2+2=4? Вообще впервые встречаю человека, который не знает что оффсборка л2 на плюсах. Ты мб еще думал что l2j это оффсборка?))
Если быть точным, то сервак л2 написан на С++ и asm :nate:
В прочем, учитывая что ты наркоман и не умеешь пользоваться поиском, я пожалуй даже поделюсь инфой
0
29
11 лет назад
0
Я не вижу пруфа что это офф сервер. Как я понял из того треда, есть куча С++ вариантов, а тот что дан там один из них.
0
24
11 лет назад
0
:facepalm: скачай рандомный Pts и удивись. Надеюсь что такое птс и откуда они взялись не нужно объяснять?
0
29
11 лет назад
0
Сервера линейки на жаве держат по 6к человек онлайн? Ужасная жава, ужасная!
А ты не спросил по скольку ресурсов это жрет??? Да и сам язык ущербен и то что я на нем пишу игру, это не значит, что меня не воротит от этого языка, я бы вообще писал на шарпах((
0
29
11 лет назад
0
Т.е. ты априори знаешь что твой сервер будет жрать меньше жавовского? Ок!
Да и сам язык ущербен и то что я на нем пишу игру, это не значит, что меня не воротит от этого языка, я бы вообще писал на шарпах((
Канеш лучше 5-6 часов продолбиться в мускл, чем написать одну строчку на ущербнейшем языке!
Все ясно, тралль и дурачок...
В отличие от Java сервера запуск PTS (Public Test Server) сервера возможен только на Windows Server 64bit с использованием системы управления базами данных (СУБД) MS SQL, при этом на сервере, где установлена PTS должно быть минимум 4 Гигабайта оперативной памяти и двухъядерный процессор с тактовой частотой 2.0 ГГц.
Ahaha, oh wow...
0
29
11 лет назад
Отредактирован alexprey
0
Канеш лучше 5-6 часов продолбиться в мускл
Был бы я чуть более опытен я бы понял, что надо было сразу качать х32 версию. Короче док, успокойся. Все мы втупляем над какой либо проблемой и сидим над ней по долгу и не зависимо от языка на котором мы пишем.
if (nodeList.get(idx).getName().equels(nodeList.get(0).getName()) {
   //Да не ущербный язык)))
}

if (nodeList[idx].Name == nodeList[0].Name) {
   //А этот ппц ущербный XD
}
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.