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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2013, 14:41   #1
Kaela
Пользователь
 
Регистрация: 29.04.2012
Сообщений: 36
По умолчанию переменная в sql-запросе

работаю с sqlite3
разобрался, как считывать данные из файла базы данных
но потом возникла проблема:
как мне вставить char* переменную в sql запрос?
Есть база данных sql_db, в которой таблица PT и в ней колонки BarCode и Name

Пример:
Код:
#include "stdafx.h"
#include "sqlite3.h"
#include <iostream>

int data (void *unused, int field_num, char **value, char **field_name)
{
	for (int i = 0; i < field_num; i++)
	{
		std::cout << value[i] << " = " << field_name[i] << std::endl;
	}
	return 0;
}

int main()
{
	int error;
	char *barcode_prog = "4813538002837";
	char *errmsg;
	sqlite3 *db;
	char *sql = "SELECT * FROM PT WHERE ?"; // вот тут вместо ? хочу вставить переменную barcode_prog для сравнения с полем базы данных BarCode
	error = sqlite3_open("sql_db", &db);
	if (error != SQLITE_OK) 
	{
		std::cout << "Cannot read database" << sqlite3_errmsg(db) << std::endl;
	}
	
	error = sqlite3_exec(db, sql, data, 0, &errmsg);

	if (error != SQLITE_OK) 
	{
		std::cout << "ERROR!" << errmsg << std::endl;
		sqlite3_free(errmsg);
	}

	system ("pause");
	sqlite3_close(db);
	return 0;
}
Натолкните на мысли, пожалуйста.
Kaela вне форума Ответить с цитированием
Старый 16.03.2013, 17:01   #2
Kaela
Пользователь
 
Регистрация: 29.04.2012
Сообщений: 36
По умолчанию

разобрался.
если кому-то интересно, то можно применить такое решение.

Код:
std::stringstream stream;
stream << "SELECT * FROM PT WHERE BarCode = " << barcode_prog;
//......
sqlite3_exec(db, stream.str().c_str(), 0, &errmsg);
//....
Kaela вне форума Ответить с цитированием
Старый 28.03.2013, 20:02   #3
maxcroud
 
Регистрация: 17.06.2012
Сообщений: 5
По умолчанию

printf(char* String, "SELECT * FROM `db`.`table` WHERE d=%s", "bla") ведь тоже можно использовать, %s - строка (%d - число).
maxcroud вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная в sql запросе exelim C/C++ Базы данных 1 19.12.2012 23:07
Переменная в sql запросе. sqlite exelim Общие вопросы C/C++ 3 19.12.2012 21:10
Переменная в запросе Михаил Юрьевич БД в Delphi 5 11.09.2012 23:29
переменная в sql (ms2008)запросе Snake22 SQL, базы данных 3 15.06.2012 12:53
Переменная в запросе SQL varyat Microsoft Office Access 4 16.03.2011 19:04