Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование переменных в SQL запросе, Проблема 
:(
    Опции темы
Alkash
Дата 21.3.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


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

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



Вновь приветствую всех присутствующих, господа - столкнулся с проблемой. Пытаюсь выполнить sql запрос, в котором values - есть заранее неизвестные значения, и передаются в запрос при помощи - переменных.Пытаюсь это сделать следующим способом
Код

void CCafe::new_station(char *hostname, char *ip)
 {   sqlite3 *conn;
     sqlite3_stmt *res;
     int error = 0;
     int rec_count = 0;
     const char *tail;
     if(bdpath="")
     {
       cout << "clean path to database";
     }
     error = sqlite3_open(bdpath, &conn);
     if (error)
     {
         cout << "cant not open database";
         exit(0);
     }
     error = sqlite3_prepare_v2(conn, "select * from stations", 1000, &res, &tail);
         if (error != SQLITE_OK)
         {
             cout << "first station\n";
         }
         while (sqlite3_step(res) == SQLITE_ROW)
             {
                 rec_count++;
             }
         error = sqlite3_exec(conn, "insert into stations values("+rec_count+","+hostname+","+ip+",0,0)", 0, 0, 0);
    sqlite3_finalize(res);
    sqlite3_close(conn);

 }

и получаю:
ошибка: invalid operands of types «const char*» and «const char [2]» to binary «operator+»
Каким же образом - в запрос подпихнуть свою переменную?


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
bsa
Дата 21.3.2012, 12:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Alkash, 
Код
{
   ostringstream tmp;
   tmp << "insert into stations values(" << rec_count << "," << hostname << "," << ip << ",0,0)";
   error = sqlite3_exec(conn, tmp.str().c_str(), 0, 0, 0);
}

PM   Вверх
Alkash
Дата 21.3.2012, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


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

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



Спасибо.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
borisbn
Дата 23.3.2012, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Alkash, а ещё, если мне не изменяет память, строковые переменные (у тебя  hostname и ip) в SQL нужно заключать в кавычки. Т.о. код должен быть таким
Цитата

ostringstream tmp;
   tmp << "insert into stations values(" << rec_count << ",'" << hostname << "','" << ip << "',0,0)";
   error = sqlite3_exec(conn, tmp.str().c_str(), 0, 0, 0);



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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