假如你已经晓得数据库连接基础知识,以下代码就是把数据上传到sql数据库的二进制字段中,sql中的字段最好使用longblob类型(可存储的数据大)。
void CMainFrame::insert_tbl_xxx_test(sql::Connection* conn, dat_t* dat)
{
try {
const char sql[] = "REPLACE INTO tbl_xxx(bin) VALUES(?)";
boost::scoped_ptr< sql::PreparedStatement > prep_stmt(conn->prepareStatement(sql));
char* blobData = reinterpret_cast<char*>(dat); //C++的强制类型转换
std::string value(blobData, dat->size);
std::istringstream tmp_blob(value);
prep_stmt->setBlob(1, &tmp_blob);//1代表的是上传字段中的第几个,从sql语句中看到现在只上传1个字段bin成员。
prep_stmt->execute();
}
}