Example #1
0
		// 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;
			}
		}