Страница 1 из 1

C++ MySQL

Добавлено: 2010-02-09 14:53:06
fox
Добрый день, Господа Специалисты!
Вот такая не задача, начал изучать C++ кой чему научился, самую малость... Хотел бы узнать как прикрутить C++ к MySQL?
Не могли бы Вы, выложить пару примеров как допустим вывести на экран всё содержимое из базы mysql, к примеру из таблицы user, самый простой пример? Потому, что я гуглил, нашёл кучу примеров, но что то не один не работает, и они слишком замудрённые, а мне самый просто для миро понимания, поможете Господа?

Re: C++ MySQL

Добавлено: 2010-02-09 17:13:46
hizel
зачем вас C++ ?

посмотрите исходник netams там кошерный C и достаточно простой

Re: C++ MySQL

Добавлено: 2010-02-09 17:36:31
fox
А вы можете, написать простейший пример?
Я понимаю, что всюду и повсюду всего много, но когда только начинаешь, учить и не получается тебе надо в курить концепцию...
Вот я и прошу простейший пример...
За ранние спасибо!

Re: C++ MySQL

Добавлено: 2010-02-09 17:49:38
hizel
у! с такими запросами я бы вам не рекомендовал Це++ изучать

что касается простейших примеров, то первая же сцылко google:mysql c api example дало http://zetcode.com/tutorials/mysqlcapitutorial/
в которых примеры рабочие, сам сейчас лично проверил

Re: C++ MySQL

Добавлено: 2010-02-10 0:00:47
Fastman
Зачем тебе сразу MySQL ??? На Sqlite потренируйся.
У меня где то так выглядит это :)))

Коннект к базе

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

bool CProjectManager::DBConnect()
{
	db = QSqlDatabase::addDatabase("QSQLITE", "WatchDB");
	db.setDatabaseName(qApp->applicationDirPath() + QDir::separator() + QString("watcherdb.db"));
	bool bOK = db.open();

	#ifdef QT_DEBUG
		qDebug() << "DB connect:"<< bOK; 
	#endif
	
	return bOK;
}
Примеры запросов:

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

bool CProjectManager::DBSetStatus(qint64 nID, qint32 nStatus)
{
	QSqlQuery query(db);

	query.prepare("UPDATE DBWATCH SET STATE = :STATE WHERE ID = :ID");
	query.bindValue(":STATE", nStatus);
	query.bindValue(":ID",    nID);

	if(!query.exec())
		return false;

	return true;
}

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

bool CProjectManager::DBAddFileTask(sTaskInfo s_Task)
{
	QSqlQuery query(db);

	query.prepare("INSERT INTO DBWATCH (FILENAME, FULLPATH, SIZE, STATE) "
		"VALUES (:FILENAME, :FULLPATH, :SIZE, :STATE)");

	query.bindValue(":FILENAME", s_Task.FILENAME);
	query.bindValue(":FULLPATH", s_Task.FULLPATCH);
	query.bindValue(":SIZE",     s_Task.SIZE);
	query.bindValue(":STATE",    s_Task.STATE);

	if(!query.exec())
		return false;

	return true;
}
к MySQL выглядит почти один в один :)))

Re: C++ MySQL

Добавлено: 2010-02-10 0:22:44
hizel
пахнет Qt4 :)

Re: C++ MySQL

Добавлено: 2010-02-10 2:13:56
fox
Доброй ночи Господа!
Спасибо большое всем за участие!!! Я очень счастлив, у меня получилось разобраться! Вот по этой статье:
http://zetcode.com/tutorials/mysqlcapitutorial/
И под BSD, всё чётко работает, и те примеры которые не работали под BSD, чётко работают, дело было не в примерах а в виндовозе, вначале я пробовал С++ привязать к MySQL под виндой, но там не компилится, ругается!
А под BSD всё супер!

Re: C++ MySQL

Добавлено: 2010-02-17 15:02:11
Dambo
Советую в 1 очередь научиться понимать то на что он вам ругается без этого будете в тёмных лесах по чужим исходникам ориентироваться только...

Re: C++ MySQL

Добавлено: 2010-02-17 19:49:45
fox
Dambo писал(а):Советую в 1 очередь научиться понимать то на что он вам ругается без этого будете в тёмных лесах по чужим исходникам ориентироваться только...
Соглаен! Но вы-ж поймите, что я только начинаю изучать...
Как говорил герой одного старого кино фильма: "Это дело новое... Не освоенное!"
:smile: :smile: :smile: :smile: :smile:

Re: C++ MySQL

Добавлено: 2010-02-18 2:33:36
Dambo
А вы как в школе, детей учат на правильном делать ошибки так и вы и смотрите что он вам выплёвывает.
П.с. каждый компиляр может своё выдавать на какие нибудь специфики, конечно синтаксис ерор у всех один)

Re: C++ MySQL

Добавлено: 2010-02-18 10:03:19
hizel
не с того конца программировать начинаем и ничего хорошего из этого не получится