用MySQL的API取出blob类型数据的代码怎么写

syk123456789 2007-04-19 09:01:12
弄了二天了,在本机试行,一换到其他的机子就不行
...全文
418 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
syk123456789 2007-04-25
  • 打赏
  • 举报
回复
非常感谢Myu2006(轻骑-ASM),哪个问题已经解决了.
Myu2006 2007-04-24
  • 打赏
  • 举报
回复
错了,兄弟不好意思,刚才发的代码是从我的一个函数中拿出来的,没有经过检查,有一个地方是多余的,现在我把它去掉重新发上来
MYSQL* Cnn;
if(mysql_query(Cnn,"SELECT blobcol FROM blobtest"))
{
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),"",MB_OK);
return false;
}
//============================================================================
MYSQL_RES *pRes;
pRes=mysql_store_result(Cnn);
if(NULL==pRes)
{
if(mysql_errno(Cnn))
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),NULL,MB_OK);
else
::MessageBox(::GetForegroundWindow(),"该操作没有返回结果集",NULL,MB_OK);
return false;
}
unsigned long *lens,num_fields;

lens=mysql_fetch_lengths(pRes);
if(NULL==lens)
{
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),NULL,MB_OK);
mysql_free_result(pRes);
return false;
}
MYSQL_ROW row;
row=mysql_fetch_row(pRes);
if(NULL==row)
{
mysql_free_result(pRes);
return false;
}
lstrcpyn(buf,row[0],lens[0]);//就在这一句取出BLOB的值

mysql_free_result(pRes);
Myu2006 2007-04-24
  • 打赏
  • 举报
回复
MYSQL* Cnn;
if(mysql_query(Cnn,"SELECT blobcol FROM blobtest"))
{
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),"",MB_OK);
return false;
}
//============================================================================
MYSQL_RES *pRes;
pRes=mysql_store_result(Cnn);
if(NULL==pRes)
{
if(mysql_errno(Cnn))
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),NULL,MB_OK);
else
::MessageBox(::GetForegroundWindow(),"该操作没有返回结果集",NULL,MB_OK);
return false;
}
unsigned long *lens,num_fields;

lens=mysql_fetch_lengths(pRes);
if(NULL==lens)
{
::MessageBox(::GetForegroundWindow(),mysql_error(Cnn),NULL,MB_OK);
mysql_free_result(pRes);
return false;
}
num_fields=mysql_num_fields(pRes);
for(unsigned long i=0;i<num_fields;i++)
pFieldLens[i]=lens[i];

MYSQL_ROW row;
row=mysql_fetch_row(pRes);
if(NULL==row)
{
mysql_free_result(pRes);
return false;
}
lstrcpyn(buf,row[0],lens[0]);//就在这一句取出BLOB的值

mysql_free_result(pRes);
syk123456789 2007-04-23
  • 打赏
  • 举报
回复
我用mysql_fetch_row()取出来的列值都是空的,用mysql_fetch_lengths()能得到那列的长度,但是接着怎么弄啊,我想把blob字段的值取出来存到一个文件中,具体怎么弄能帮帮忙说具体点吗
Myu2006 2007-04-20
  • 打赏
  • 举报
回复
一样的写法呀
不就是mysql_fetch_row()吗?
只不过fetch出来的记录你一定得用mysql_fetch_lengths()来判断那列的长度,
以便正确地取出它的内容,因为它可能包含有0字符
CsharpGame 2007-04-19
  • 打赏
  • 举报
回复
也只能友情帮顶了
syk123456789 2007-04-19
  • 打赏
  • 举报
回复
怎么都没人知道吗,急用啊
daily66 2007-04-19
  • 打赏
  • 举报
回复
帮顶

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧