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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2011, 22:01   #41
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Книгу для работы с MySQL могу посоветовать Леона Аткинсона, Библия MySQL.
Там есть раздел "Создание клиентов" в котором описывается как можно создавать клиенты на различных ЯП. Явы, к сожалению, нет.
psycho-coder вне форума Ответить с цитированием
Старый 15.03.2011, 22:05   #42
droit74
Новичок
Джуниор
 
Регистрация: 07.09.2010
Сообщений: 1
По умолчанию

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


void main()
{
	MYSQL mysql; // Дескриптор соединения
	MYSQL_ROW row; // Массив полей текущей строки
	MYSQL_RES *res; // Дескриптор результирующей таблицы

	char host[] = "localhost"; // хост
	char user[] = "root"; // пользователь
	char passwd[] = ""; // пароль
	char db[] = "saw_test"; // название базы данных
	int port = 3306; //  порт. Если порт у сервера MySQL не по умолчанию (3306), то нужно указывать конкретный номер порта


	mysql_init(&mysql);  // Инициализация

	mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0);


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


  return;
}
Изображения
Тип файла: jpg mysql_error.jpg (41.4 Кб, 223 просмотров)
droit74 вне форума Ответить с цитированием
Старый 23.03.2011, 00:24   #43
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Скорее всего у Вас не правильно настроен MySQL сервер. проверьте пути в C:\MySQL\my.ini


Встроенный MySQL сервер
Для работы необходимы библиотеки libmysqld.lib и libmysqld.dll
Это минимальный вариант встроенного сервера. Взят с офф сайта.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <my_global.h>
#include <mysql.h>

#pragma comment(lib, "libmysqld.lib")

MYSQL *mysql;
MYSQL_RES *results;
MYSQL_ROW record;

static char *server_options[] = { "mysql_test",
	//"--defaults-file=.\\my.ini",
    "--basedir=.\\",
    "--datadir=.\\bases",
	"--default-character-set=latin1",
    NULL };
    
int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

static char *server_groups[] = { "test_MySQL_Embedded", "embedded", "server", NULL };

int main(void)
{
	int emb = 0;
	int affected = 0;

	printf("MySQL Embedded initializing . . .");
	emb = mysql_server_init(num_elements, server_options, (char **)server_groups);
	
	if (emb > 0)
	{
		printf("\nCan't init server\nPress any key to exit . . .");
		//system("pause");
		return 1;
	}
	mysql = mysql_init(NULL);
	mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "client");
	mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

	//printf("\nconnecting . . .\n");
	if (!mysql_real_connect(mysql, NULL, NULL, NULL, "const", 0, NULL, 0))
		printf("%s\n", mysql_error(mysql));

	//printf("query\n");
	if (mysql_query(mysql, "SELECT * FROM try") != 0)
	{
		printf("\n%s\n", mysql_error(mysql));
		//system("pause");
		return 1;
	}

	affected = (int)mysql_affected_rows(mysql);
	if (affected < 0)
	{
		printf("\nField count: %d\n", mysql_field_count(mysql));

		results = mysql_store_result(mysql);

		//printf("output data\n");
		while((record = mysql_fetch_row(results))) 
		{
			printf("%s - %s \n", record[0], record[1]);
		}
	}
	else
	{
		printf("\nAffected rows: %d\n", affected);
	}

	printf("MySQL Embedded stoping . . .");
	mysql_free_result(results);
	mysql_close(mysql);
	mysql_server_end();
	//system("pause");
	return 0;
}
//---------------------------------------------------------------------------
Если что пишите на почту, через "Связь" в профиле.
В архиве готовый пример с либами. Версия MySQL 5 какая-то.
Вложения
Тип файла: rar MySQL Embedded.rar (2.54 Мб, 90 просмотров)
psycho-coder вне форума Ответить с цитированием
Старый 04.04.2011, 09:20   #44
cobra2029
 
Регистрация: 31.03.2011
Сообщений: 3
По умолчанию

psycho-coder, а вы немогли бы написать похожий мануальчик по ProgresSQL ?
cobra2029 вне форума Ответить с цитированием
Старый 06.04.2011, 16:34   #45
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

"Сейчас" нет. Так как я его не знаю и никогда не сталкивался, да и желания нет его изучать. Если столкнусь с ним может что-то нацарапаю.
psycho-coder вне форума Ответить с цитированием
Старый 19.06.2011, 10:56   #46
nacgull
Пользователь
 
Аватар для nacgull
 
Регистрация: 17.11.2009
Сообщений: 65
Сообщение Подробности

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
...Мутим простейший интерфейс
...
Обработчик кнопки "Закрыть" думаю понятен

А в обработчик копки "Пошел!" пишем следующее ...
...
Примерный код для простейшего интерфейса в Visual C++:
Код:
 {  Close();	 }
Код:
 {/* Проверим что все данные были введены? в.ч. и сам запос (Memo1) */ 
			  if ((hostText->Text == "") || (userText->Text == "") ||
				  (passText->Text == "") || (dbText->Text == "") ||
				  (portText->Text == "") || (Memo1->Text == ""))
			  {
/*				
			    MessageBox(this->Handle, "Не все поля заполнены!", "Ошибка!", MB_OK | MB_ICONERROR);
/**/
/*				::MessageBox(NULL, (LPCTSTR)"Не все поля заполнены!",  (LPCTSTR)"Ошибка!", MB_OK | MB_ICONERROR);
*/
				Windows::Forms::MessageBox::Show("Не все поля заполнены!");           return;
			  }
/*
http://forum.codenet.ru/threads/29410-MessageBox-%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C/page3
Цитата:
Проблема действительно в том, что ты пишешь под Managed C++. Поэтому:

1. Если нужно вызвать функцию MessageBox из WinAPI, тогда это
::MessageBox(NULL, (LPCTSTR)"Text", (LPCTSTR)"Title", MB_OK);

2. Если нужно вызвать MessageBox из .NET Framework, тогда это действительно
System::Windows::Forms::MessageBox::Show("Text");

Первая функция принимает на вход строку типа char *, а вторая - строку типа System::String. Отсюда и проблемы. =)
/**/
			  // Тут Вам все должно быть знакомо
			  MYSQL mysql;
			  MYSQL_ROW row;
			  MYSQL_RES *res;
			  MYSQL_FIELD *field;

			  /* Объявляем массивы для работы */
			  char host[buf];
			  char user[buf];
			  char passwd[buf];
			  char db[buf];
			  char query[buf];

			  //int port = portText->Text.ToInt();
			  //int port = atoi( (char*)portText->Text );
			  int port = atoi( (char*)(Runtime::InteropServices::Marshal::StringToHGlobalAnsi( portText->Text ).ToPointer()) );
			  int num_fields = 0;
			  int num_rows = 0;
			
			  /* Инициализируем имя хоста, пользователя, пароль и БД */
			  //strcpy(host, hostText->Text.c_str());
			  strcpy_s( host, (char*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi( hostText->Text ).ToPointer() );
				
			  //strcpy(user, userText->Text.c_str());
			  strcpy_s( user, (char*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi( userText->Text ).ToPointer() );

			  //strcpy(db, dbText->Text.c_str());
			  strcpy_s( db, (char*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi( dbText->Text ).ToPointer() );

			  //strcpy(passwd, passText->Text.c_str());
			  strcpy_s( passwd, (char*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi( passText->Text ).ToPointer() );

			  //strcpy(query, Memo1->Text.c_str()); //*/
			  strcpy_s( query, (char*)Runtime::InteropServices::Marshal::StringToHGlobalAnsi( Memo1->Text ).ToPointer() );

			  mysql_init(&mysql);
			  if (!mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0))
			  { /* Пробуем подключиться, если где-то ошибка то сообщим об этом */
/*				MessageBox(this->Handle, mysql_error(&mysql), "Error!",
				  MB_OK | MB_ICONERROR);
*/		
				  Windows::Forms::MessageBox::Show("Ошибка соединения с MySQL !"); 
				  return;
			  }

			  if (mysql_query(&mysql, query) > 0)
			  { /* Пробуем выполнить запрос, если запрос не верен то сообщаем об ошибке. Выведем ее и выходим */
/*				MessageBox(this->Handle, mysql_error(&mysql), "Error!",  MB_OK | MB_ICONERROR);
*/
				  Windows::Forms::MessageBox::Show("Ошибка запроса в MySQL !"); 
				  return;
			  }

			  // Получаем результат
			  res = mysql_store_result(&mysql);

			  /* Устанавливаем кол-во строк в таблице и сохраняем кол-во строк */
			  //StringGrid1->RowCount = num_rows = mysql_num_rows(res);
				num_rows = (int)mysql_num_rows(res);
				dataGridView1->RowCount = num_rows;

			  /* Устанавливаем кол-во полей и сохраняем это кол-во столбцов */
			  //StringGrid1->ColCount = num_fields = mysql_num_fields(res);
				num_fields = (int)mysql_num_fields(res);
				dataGridView1->ColumnCount = num_fields;

			  //StringGrid1->FixedRows = 1; // Фиксируем первую строку.
//			    dataGridView1->FixedRows = 1;
				
			  for (int i = 0; i < num_fields; i++) // Выводим названия полей
			  {
				field = mysql_fetch_field_direct(res, i);
				//dataGridView1->Cells[i][0] = field->name; // В первую строку, которую мы зафиксировали
				dataGridView1->Rows[i]->Cells[0]->Value = ToUCS2(field->name);
			  }

			  for (int i = 1; i < num_rows; i++) // Вывод результата запроса
			  {
				row = mysql_fetch_row(res); // Получаем строку
				for (int l = 0; l < num_fields; l++)
					//dataGridView1->Cells[l][i] = row[l]; // Выводим строку по ячейкам
					dataGridView1->Rows[i]->Cells[l]->Value = ToUCS2(row[l]);
			  }

			  mysql_free_result(res); // Освобождаем память
			  mysql_close(&mysql); // Закрываем соединение
	}
CPUcode&Asm1801ВМ1,AsmZ80,Asm xPentiumII, Basic,Pascal,Forth,LSL, Delphi,C++,MySQL; web&game prog-ng,code hacking; DreamWeaver,C++Visual&Builder,Photo shop,3Dmax,GoldWaveEditor,Softice..

Последний раз редактировалось nacgull; 19.06.2011 в 11:00.
nacgull вне форума Ответить с цитированием
Старый 30.07.2011, 02:50   #47
Neef-El
Пользователь
 
Регистрация: 23.07.2011
Сообщений: 10
По умолчанию Работа с MySQL в C

Где найти инфу как на билдере работать с MySQL.
Neef-El вне форума Ответить с цитированием
Старый 05.09.2011, 17:15   #48
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Что конкретно у вас не получается? Пишите в аську, на почту. Я тут появляюсь редко. Так быстрей смогу помочь, нежели через форум.
psycho-coder вне форума Ответить с цитированием
Старый 19.09.2011, 14:17   #49
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Ошибка странная.
А так, скобки забыли
CREATE TABLE ins(
inw SMALLINT(4),
ind SMALLINT(3),
INDEX inw
);
psycho-coder вне форума Ответить с цитированием
Старый 16.11.2011, 09:21   #50
Di_sol
Пользователь
 
Регистрация: 15.11.2011
Сообщений: 26
По умолчанию

Создал проэкт Windows form, как в посте. компилируется проект и запускается без ошибок, но при нажатии на кнопку вы дает ошибку:
Не удается загрузить DLL "LIBMYSQL.dll": Не найден указанный модуль.

libmysql.lib находится в C:\Program Files\Microsoft Visual Studio 9.0\VC\lib
подключаю так: #pragma comment(lib, "libmysql.lib")
подскажите, как правильно подключить libmysql.lib
Di_sol вне форума Ответить с цитированием
Ответ


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

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

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


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