как вставить строку в sql-запрос?

#c #mysql #sql #c

#c #mysql #sql #c

Вопрос:

ниже приведена часть моего кода,

  ...
 char hashvalue[]="somehash"; // or i can use std::string

 SQLCHAR* query = (SQLCHAR*)"SELECT username FROM users WHERE hash = ..." ;
 SQLExecDirectA( hStmt, query, SQL_NTS );
 ...
  

В приведенном выше коде я понятия не имею, как вставить в запрос hashvalue, чтобы выполнить мой запрос следующим образом:

  SQLCHAR* query = (SQLCHAR*)"SELECT username FROM users WHERE hash = "somehash"" ;
  

Я очень новичок в sql, заранее спасибо за помощь.

Комментарии:

1. Используйте std::string и наслаждайтесь славой перегруженных операторов.

Ответ №1:

Используйте std::string

 std::string query_string = "SELECT username FROM users WHERE hash = ";
query_string  = hashvalue;
SQLExecDirectA(hStmt, query_string.c_str(), SQL_NTS);
  

Другой метод:

 char query_buffer[1024];
snprintf(query_buffer,
         "SELECT username FROM users WHERE hash = %s",
         hashValue);
SQLExecDirectA(hStmt, query_buffer, SQL_NTS);
  

По сути, ваш вопрос заключается в том, как создать форматированную строку и не имеет ничего общего с SQL.