// http://msdn.microsoft.com/en-us/library/windows/desktop/ms711786(v=vs.85).aspx void BindColumn(unsigned short index, ParameterType parameterType, const Column& column) { const HANAColumnType hct = column.GetColumnType(); switch (hct.sqlDataType) { case SqlDataType::SVARCHAR: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, hct.size, 0, (SQLPOINTER*)column.GetDataPtr(), hct.dataSize, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SNVARCHAR: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, hct.size, 0, (SQLPOINTER*)column.GetDataPtr(), hct.dataSize, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SDECIMAL: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, hct.size, 0, (SQLPOINTER*)column.GetDataPtr(), hct.dataSize, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SINTEGER: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 10, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SSMALLINT: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 5, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::STINYINT: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 3, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SFLOATN: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, hct.size, 0, (SQLPOINTER*)column.GetDataPtr(), hct.dataSize, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SDOUBLE: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 15, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SBIGINT: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 19, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SDATE: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 10, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::STIME: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 8, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::STIMESTAMP: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 20, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; case SqlDataType::SSECONDDATE: BindParameter(index, parameterType, hct.cDataType, hct.sqlDataType, 19, 0, (SQLPOINTER*)column.GetDataPtr(), 0, (SQLLEN*)column.GetDataLenPtr()); break; default:throw HANAException("Unkown column type"); break; } }