Прототип функции выглядит следующим образом:
SQLRETURN SQLBindParameter(
SQLHSTMT StatementHandle,
SQLUSMALLINT ParameterNumber,
SQLSMALLINT InputOutputType,
SQLSMALLINT ValueType,
SQLSMALLINT ParameterType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParameterValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
Меня больше интересуют параметры 6,8, 9 и 10 и то, как они применяются к переменным строкам. Другие встроенные типы данных кажутся менее проблематичными
Все примеры, которые я видел в интернете
например http://msdn.microsoft.com/en-us/library/ms709287(v=vs.85).aspx
используйте статические массивы, которые кажутся прямыми. Но я хочу
используйте std :: vector и все мои попытки потерпели неудачу.
Скажем, я хочу связать эти строки.
std::vector<std::string> countries = boost::assign::list_of("Argentina")( "Burkina Faso")( "China")( "Dominica Republic");
Примечание: я использую std::vector<string>
для удобства объявления.
Я не могу отправить c.str()
в базу данных, драйвер должен иметь возможность изменять строку в некоторых ситуациях
Итак, я объявляю буфер следующим образом
std::vector<char> my_data;
и скопируйте мои строки в буфер.
Как мне тогда передать следующие параметры:
ColumnSize ?
ParameterValuePtr ? // this I think I am sure should be &my_data[0]
BufferLength ?