Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу вынести часть кода в отдельную функцию, не получается.. 
:(
    Опции темы
иии
Дата 21.5.2005, 10:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот исходный код:
Код




void __fastcall TMainForm::FormActivate(TObject *Sender)
{

if( mysql) return;

  mysql = mysql_init( NULL);

  if( !mysql_real_connect( mysql,
      "localhost",
      "zheka",
      "cool",
      "tanatos", 0, NULL, 0)) {
    ShowMysqlError( mysql);
    mysql_close( mysql);
    mysql = NULL;
    return;
  }


  if( !mysq_) return;



  String sql_query;

  sql_query = "SELECT * FROM acts ORDER by number";


          ShowMessage("InitOk");
  int ret = mysql_query( mysql, sql_query.c_str());





А вот переделка
Код

void  InitConnect(MYSQL *mysql)
{
 if( mysql) return;

  mysql = mysql_init( NULL);

  if( !mysql_real_connect( mysql,
      "localhost",
      "zheka",
      "cool",
      "tanatos", 0, NULL, 0)) {
    ShowMysqlError( mysql);
    mysql_close( mysql);
    mysql = NULL;
    return;
  }


  if( !mysql) return;

  }





void __fastcall TMainForm::FormActivate(TObject *Sender)
{



  InitConnect(mysql);

  String sql_query;

  sql_query = "SELECT * FROM acts ORDER by number";


          ShowMessage("1111");
  int ret = mysql_query( mysql, sql_query.c_str());
          ShowMessage("2222");





ShowMessage я ввел для того чтобы понять где программа вырубается. "1111" выскакивает, а "222" нет.


Так вот программа вылетает с сообщением:

Project raised exception class EAccesViolation with message "Acces violation at adress10005CF7 in module libmysql.dll"....

Что делать?
  Вверх
Амортизатор
Дата 21.5.2005, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

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



Цитата
ShowMessage я ввел для того чтобы понять где программа вырубается. "1111" выскакивает, а "222" нет.

Почему не используешь отладчик? У тебя ошибка происходит либо в функции mysql_query, либо sql_query, почему она происходит - скорее всего из-за злоупотребления глобальными объектами (переменными). Поскольку кодов этих ф-ций ты не привел, ошибку найти ес-но невозможно. Установи метки внутри этих 2 ф-ций и запусти отладчик.

И вообще, никогда не стоит заводить столько глобальных ф-ций. Откровенно говоря, их вообще не следует заводить. Освой ООП и НИКОГДА не будешь знать таких ошибок.

P S Удивительно, что при наличии такого мощного отладчика ты используешь ShowMessage для выяснения ошибки


--------------------
Поехали!
PM MAIL   Вверх
Guest
Дата 21.5.2005, 19:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
функции mysql_query, либо sql_query, почему она происходит


Это не мной написанные функции. Это библиотека.
Ставить в них метку - зачем? Я и так понимаю, что причина в том, что какя-то из переменных не попадает в функцию. И ошибка в синтаксисе, вот я и спрашивал. Кстати проблему я решил. Просто дописал в параметры функции переменную mysql. Догадываюсь, что неграмотно, но программа работает. Я новичок, а программу надо срочно сделать.
Цитата
S Удивительно, что при наличии такого мощного отладчика ты используешь ShowMessage для выяснения ошибки

Новичок я, не знал про отладчик.

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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