LINUX.ORG.RU

нет декларации result в этой области видимости.[C++]

 


0

2

Всем доброго дня. Господа, подскажите - где я туплю. Есть функция:

int CCafe::get_stations_count(int status)
 {
     sqlite3 *conn;
          sqlite3_stmt *res;
          int error = 0;
          ostringstream cmd;
          int rec_count = 0;
          const char *tail;
          if(bdpath=="")
          {
            cout << "clean path to database";
          }
          error = sqlite3_open(bdpath, &conn);
          if (error)
          {
              cout << "can not open database";
              exit(0);
          }
          cmd << "select * from stations where status="<<status;
          error = sqlite3_prepare_v2(conn,cmd.str().c_str() , 1000, &res, &tail);
              if (error != SQLITE_OK)
              {
                  cout << "error int get station count\n";
              }
              while (sqlite3_step(res) == SQLITE_ROW)
                  {
                      rec_count++;
                  }
         sqlite3_finalize(res);
         sqlite3_close(conn);
         result=rec_count;

 }
получаю на строке с result - ошибка: нет декларации «result» в этой области видимости. Как так оО?

А где объявление переменной?

jessey
()

получаю на строке с result - ошибка: нет декларации «result» в этой области видимости. Как так оО?

Если result это не поле класса, то удивляться нечему.

son_of_a_gun
()
Ответ на: комментарий от aol

aol

по какой такой привычке?! из бейсика чтоль?! ууужас...

Delphi, сэр. Уж лучше бы бейсик...

if(bdpath=="")

Это ты char* на пустоту проверяешь? А тебе не кажется, что сравнение указателей не прокатит?

Pavval ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

Тогда уж просто return rec_count;

CynicRus

clean path to database

Почистите дорогу к базе данных!

Kalashnikov ★★★
()
Ответ на: комментарий от schizoid

sqlite> select * from tbl1; - из официального мана по sqlite.

Это ты char* на пустоту проверяешь? А тебе не кажется, что сравнение указателей не прокатит? - не прокатит, да-) int n = strlen(bdpath); if(n==0) { cout << «path not finded»; }

Delphi, сэр. Уж лучше бы бейсик...

Да, Delphi-((((

CynicRus
() автор топика
Ответ на: комментарий от CynicRus
int n = strlen(bdpath); if(n==0) { cout << "path not finded"; }

Во-первых, «found». Во-вторых, считать длину строки только для того, чтобы проверить ее на пустоту - бессмысленная трата процессорного времени.

if (!bdpath)
, а лучше вообще std::string используй.

Pavval ★★★★★
()
Ответ на: комментарий от anonymous

спасибо анон, но ведь очевидно же, что разные

спасибо за спасибо, анон!
ага, а проверять надо оба, в то время как предлагается проверять только один

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.