本文整理汇总了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;
}
示例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();
}
}