Как вставить данные в таблицу по переменной C? - PullRequest
0 голосов
/ 06 июня 2019

Я хочу вставить данные в таблицу, данные являются переменными C.

Вот мой текущий код:

const char* sqlUpdateTable = "INSERT INTO MyTable 
                                          VALUES(25, 'String1', 'String2')
                                       ON CONFLICT (id) 
                                       DO 
                                         UPDATE SET name = 'New String';";

На самом деле, не только 'String1', 'String2'и 'New String' должна быть переменной, но id также является переменной C / C ++.

id - это long.

String1 - double.

String2 - int.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Я думаю, это то, что я должен делать?

sqlite3_stmt* res;
const char* sqlInsert = "INSERT INTO MyTable VALUES(NULL, ?, ?);";

sqlite3_prepare_v2(db, sqlInsert, -1 , &res, 0);

const char* test1 = "ABC";
const char* test2 = "XYZ";

if (sqlite3_bind_text( res, 1, test1, 3, 0 ) != SQLITE_OK) 
{
    printf("\nError 1.\n");
}
if (sqlite3_bind_text(res, 2, test2, 3, 0) != SQLITE_OK)
{
    printf("\nError 2.\n");
}

int step = sqlite3_step(res);
0 голосов
/ 06 июня 2019

используйте sprintf ()

char buffer [200];
double mydouble = 4.0;
long mylong = 2;
int myint = 4;
int n=sprintf (buffer, "INSERT INTO MyTable VALUES(25, '%f', '%i') ON CONFLICT (%l) DO UPDATE SET name = 'New String';", mydouble, myint , mylong);

см: http://www.cplusplus.com/reference/cstdio/sprintf/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...