Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с MySQL 
:(
    Опции темы
ChihPih
Дата 24.11.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 3.12.2006

Репутация: нет
Всего: 22



Привет всем!
Мне нужно, что бы программа восстанавливала базу данных, если она повреждена. Для этого яделаю проверку целостности табиц. Если проверка не прошла, то восстанавливаю базу!

А восстанавливаю так:

Код

bool RepairBD()
{
  bool check = false;
  FILE *f = fopen("C:\\repair_bd.sql", "r");
  int f_size = filesize(f);
  char *buf = new char[f_size + 1];
  
  fread(buf, 1, f_size, f);
  int res = mysql_query(con, buf);
  if (res == 0){ check = true; }
  delete[] buf;
  fclose(f);
  return check;
}


Проблема следующая:
Этот запрос не выполняется, говорит типа, что в строчке №... находится символ ' и он здесь не уместен!
Хотя такого символа в файле нет, и даже когда я выводил содержимого файла через MessageBox, такого символа там тоже небыло!
Файл "repair_bd.sql" содержит команды на создание таблиц и всего прочего! Все запросы я проверял, они написаны правильно!

Почему так получается? 

Это сообщение отредактировал(а) ChihPih - 24.11.2007, 17:21


--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
Anark1
Дата 24.11.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 3
Всего: 11



ChihPih, так выложи эту самую строчку.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
ChihPih
Дата 25.11.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 3.12.2006

Репутация: нет
Всего: 22



Почему-то всегда он кричит на 1,2 или 3-тию строчку!
Вот отрывок текста запроса:

Код

CREATE TABLE `class_man` (
  `id` int(11) NOT NULL auto_increment,
  `dist` int(11) default NULL,
  ...
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=cp1251;


Ошибку выдает такую:

Ошибка в синтаксисе..., а именно:
`dist`', строка 3 символ ';


--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
Anark1
Дата 25.11.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 3
Всего: 11



Так сложно сказать в чем ошибка. Попробуй удалить третью строку и посмотреть что получится.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
ChihPih
Дата 25.11.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 3.12.2006

Репутация: нет
Всего: 22



Ха, щас я пробовол снова выполнить запрос и он у меня ругался уже на другую строчку, в которой выполняется запрос: INSERT INTO ...!
И опять же он показывал, что не уместен здесь знак: ' ! Хотя в файле его нет!
Еще я заметил, что он дописывает в конце переменной buf какие-то кривые символы(ненужные)!
Вот функция filesize, которой я определял размер файла:

Код

long filesize(FILE *stream)
{
   long curpos, length;

   fseek(stream, 0L, SEEK_END);
   length = ftell(stream);
   rewind(stream);
   return length;
}


Я перепробовал, кучу способ считывания файла, ни один не помог, все таже проблема!
Я просто незнаю уже, что можно сделать!


--------------------
www.info-x.org - информационный ресурс о ОС FreeBSD. Форум.
PM MAIL WWW Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.