Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2012, 16:25   #1
voicel
 
Регистрация: 06.01.2010
Сообщений: 9
По умолчанию c++ -> mysql

Добрый вечер.
Есть проблема записи русских слов в БД.
БД все настройки выставил - ср1251.
В приложении тоже.
Когда добавляю русский текст через мускл клиент - все ок.
из моей проги все добавляется отлично кроме русского текста.
а точнее вместо русских букв - абракадабра. в чем дело?

Код:
#include <Windows.h>
#include "mysql.h"
#include <locale.h>

void main()
{
	MYSQL sql;
	MYSQL_RES *res;
	MYSQL_ROW row;

	setlocale(LC_ALL, "Russian");

	if (!mysql_init(&sql))
	{
		MessageBox(NULL, L"mysql_init", L"Error!", MB_OK);
	}

	if (!mysql_real_connect(&sql, "localhost", "root", "123", "", 0, NULL,0))
	{
		MessageBox(NULL, L"mysql_real_connect", L"Error!", MB_OK);
	}

	if (mysql_query(&sql, "set names 'cp1251'") != 0)
	{
			MessageBox(NULL, L"mysql_query_names", L"Error!", MB_OK);
	}

	mysql_query(&sql, "create database ss DEFAULT CHARACTER SET cp1251");
	mysql_query(&sql, "use ss");


	if (mysql_query(&sql, "create table users(number int unsigned not null auto_increment primary key, login text, password int, ican int, post text) DEFAULT CHARACTER SET  cp1251") != 0)
	{
			MessageBox(NULL, L"mysql_query", L"Error!", MB_OK);
	}

	if (mysql_query(&sql, "insert into users (number, login, password, ican, post) values(0, 'Текст', 1, 1, 'Текст')") != 0)
	{
			MessageBox(NULL, L"mysql_query2", L"Error!", MB_OK);
	}

	MessageBox(NULL, L"good", L"caption", MB_OK);
	mysql_close(&sql);
}
voicel вне форума Ответить с цитированием
Старый 29.06.2012, 15:28   #2
F19
Новичок
Джуниор
 
Регистрация: 29.06.2012
Сообщений: 1
По умолчанию

У Вас set names cp1251 с кавычками. У меня без кавычек и всё работает.
if ( mysql_real_connect(...) )
if (mysql_query(&myc, "set names cp1251") == 0)
if (mysql_query(&myc, "use dbname") == 0 )
F19 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10
Mysql+Delphi 2010 Использую libmysql.dll + mysql.pas не могу инф сохранить в базу kGpROGER БД в Delphi 7 30.12.2010 18:27
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00