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

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

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

Ответ
 
Опции темы
Старый 03.05.2012, 16:25   #1
voicel
 
Регистрация: 06.01.2010
Сообщений: 9
Репутация: 10
По умолчанию 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
Репутация: 10
По умолчанию

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

Опции темы

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

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

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

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


03:22.


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

RusProfile.ru


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