Если это действительно двоичная строка, и у вас есть действительные двоичные данные (например, встроенные нули), то вам нужно быть осторожным, чтобы не использовать какой-либо из членов std :: string, которые могут обрабатывать ее как строку C ( например, с завершающим нулем), поскольку вы, очевидно, в конечном итоге потеряете данные.
Класс std::string
на самом деле не подходит для этой цели - он написан в предположении, что вы работаете с на самом деле строкой символов - поскольку вы используете большой двоичный объект или массив двоичных данных, a std::vector
вероятно, более уместно.
Для вставки данных потребуется привязать содержимое вектора к запросу SQL с помощью параметров привязки. То есть вместо использования SQLExecDirect для выполнения строки, содержащей запрос SQL, вы должны использовать SQLPrepare для создания дескриптора оператора - вы оставляете место, где находится значение двоичного файла значение будет идти с '?', затем использовать SQLBindParameter , чтобы связать заполнитель с двоичным значением. Затем вы вызываете функцию, используя SQLExecute .
В документации SQLBindParameter
есть несколько примеров кода.