当前位置: 首页>>代码示例>>C++>>正文


C++ Binary::AssignDataToBuffer方法代码示例

本文整理汇总了C++中Binary::AssignDataToBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ Binary::AssignDataToBuffer方法的具体用法?C++ Binary::AssignDataToBuffer怎么用?C++ Binary::AssignDataToBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Binary的用法示例。


在下文中一共展示了Binary::AssignDataToBuffer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: DatabaseException

Nullable<Binary> Statement::GetBinaryDataInRow(unsigned int column) {
	Nullable<Binary> result;

	if (column >= _resultParams.size()) {
		throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "column out of range");
	}

	if (_resultBind[column].buffer_type != MYSQL_TYPE_BLOB) {
		throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "column not of correct type");
	}

	if (! (*(_resultParams[column]->IsNull()))) {
		if (mysql_stmt_fetch_column(_stmt, &(_resultBind[column]), column, 0) != 0) {
			throw DatabaseException(_stmt, "Error in GetDataInRow(Binary)");
		}	
		Binary fromdb;
		fromdb.AssignDataToBuffer((unsigned char *)_resultParams[column]->Buffer(), *(_resultParams[column]->BufferLength()));
		result = fromdb;
	}

	return result;
}
开发者ID:Respublica,项目名称:mysqlwrap,代码行数:22,代码来源:Statement.cpp

示例2: GetDataInRow

void Statement::GetDataInRow(unsigned int column, Nullable<Binary> &result) {
	if (column >= _resultParams.size()) {
		throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "column out of range");
	}

	if (! (*(_resultParams[column]->IsNull()))) {
		if (_resultBind[column].buffer_type == MYSQL_TYPE_TINY_BLOB) {
			if (*(_resultParams[column]->BufferLength()) >= 256) {
				throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "data too large for Blob type");
			}
		} else if (_resultBind[column].buffer_type == MYSQL_TYPE_BLOB) {
			if (*(_resultParams[column]->BufferLength()) >= 64 * 1024) {
				throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "data too large for Blob type");
			}
		} else if (_resultBind[column].buffer_type == MYSQL_TYPE_MEDIUM_BLOB) {
			if (*(_resultParams[column]->BufferLength()) >= 16 * 1024 * 1024) {
				throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "data too large for Medium Blob type");
			}
		} else if (_resultBind[column].buffer_type == MYSQL_TYPE_LONG_BLOB) {
			if (*(_resultParams[column]->BufferLength()) >= (size_t) 4 * 1024 * 1024 * 1024) {
				throw DatabaseException("Error in Statement::GetDataInRow", 0, "----", "data too large for Large Blob type");
			}
		} else {
			throw DatabaseException("Error in Statement::GetDataInRow<Binary>", 0, "----", "column not of correct type (should be Blob)");
		}

		if (mysql_stmt_fetch_column(_stmt, &(_resultBind[column]), column, 0) != 0) {
			throw DatabaseException(_stmt, "Error in GetDataInRow<Binary>");
		}	

		Binary fromdb;
		fromdb.AssignDataToBuffer((unsigned char *)_resultParams[column]->Buffer(), *(_resultParams[column]->BufferLength()));
		result = fromdb;
	} else {
		result.ClearValue();
	}
}
开发者ID:RaviDesai,项目名称:mysqlwrap,代码行数:37,代码来源:Statement.cpp


注:本文中的Binary::AssignDataToBuffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。