MyODBC 3.5 и массивы параметров
подскажите, поддерживает ли mysql ODBC драйвер (версия 3.51, база - mysqld-5.0.21) массивы параметров при insert?
стандартный пример...
подготавливаю оператор
SQLPrepare( insert into table values(?) );
устанавливаю атрибуты оператора:
SQLSetStmtAttr( ..., SQL_ATTR_PARAM_BIND_TYPE, SQL_BIND_BY_COLUMN, ... );
SQLSetStmtAttr( ..., SQL_ATTR_PARAMSET_SIZE, n, ... );
SQLSetStmtAttr( ..., SQL_ATTR_PARAM_STATUS_PTR, pstatus, ... );
SQLSetStmtAttr( ..., SQL_ATTR_PARAMS_PROCESSED_PTR, ¶ms_processed,... );
связываю параметры
SQLBindParameter( ... )
выполняю запрос
SQLExecute( stmt );
ПРОБЛЕМА:
вставляется только 1 (одна), первая, строка. значение обработанных параметров - тоже 1.
судя по трейсу, мне не удается установить атрибут оператора SQL_ATTR_PARAMSET_SIZE в значение большее, чем 1:
==========================================================
odbc_bulk_selec f8c-f90 ENTER SQLSetStmtAttr
SQLHSTMT 003A1E88
SQLINTEGER 22 <SQL_ATTR_PARAMSET_SIZE>
SQLPOINTER 0x0012FF78
SQLINTEGER 0
odbc_bulk_selec f8c-f90 EXIT SQLSetStmtAttr with return code 1 (SQL_SUCCESS_WITH_INFO)
SQLHSTMT 003A1E88
SQLINTEGER 22 <SQL_ATTR_PARAMSET_SIZE>
SQLPOINTER 0x0012FF78 (2)
SQLINTEGER 0
DIAG [01S02] [MySQL][ODBC 3.51 Driver][mysqld-5.0.21-community-nt]Option value changed to default parameter size (502)
==========================================================
все остальные вызовы возвращают SQL_SUCCESS.
может что встречался с такой проблемой? если да, то как решили?
разобрался. если кому интересно, то множественная вставка в myodbc 3.51 осуществляется пока только через SQLBulkOperations, в будущем разработчики обещали реализовать функционал через функции, которые я сначала пытался использовать..