
VC ADO获取非INT类型值
能成功连接到数据库,但只能拿到表中int类型的值,其他类型的报错。比如“select*from****”或者“selectnamefrom***”(name是text类型...
能成功连接到数据库,但只能拿到表中int类型的值,其他类型的报错。比如“select * from ****”或者“select name from ***”(name是text类型),RecordSet的open方法正常,adoEof判断或调用记录集时报错,try-catch返回未定义的错误,怎么解
hr = m_pRecordSet->Open(_bstr_t(strSql), variant_t((IDispatch *)m_pConnection,true), adOpenDynamic, adLockPessimistic,adCmdText);
if(SUCCEEDED(hr))
{
{
try
{
while((!m_pRecordSet->adoEOF) )//这句报错
{
strRecord = (LPCSTR)_bstr_t(m_pRecordSet->GetCollect((long)0));
m_pRecordSet->MoveNext();
}
result = true;
}
catch(_com_error &e)
{
CString strError;
strError.Format("%s", e.ErrorMessage());
::AfxMessageBox(strError);
}
}
} 展开
hr = m_pRecordSet->Open(_bstr_t(strSql), variant_t((IDispatch *)m_pConnection,true), adOpenDynamic, adLockPessimistic,adCmdText);
if(SUCCEEDED(hr))
{
{
try
{
while((!m_pRecordSet->adoEOF) )//这句报错
{
strRecord = (LPCSTR)_bstr_t(m_pRecordSet->GetCollect((long)0));
m_pRecordSet->MoveNext();
}
result = true;
}
catch(_com_error &e)
{
CString strError;
strError.Format("%s", e.ErrorMessage());
::AfxMessageBox(strError);
}
}
} 展开
2个回答
2018-06-05
展开全部
“select * from ****”如果产生“try-catch返回未定义”错误,说明,打开数据表记录集的语句有问题,没有具体代码不好说。
追问
已补充代码
2018-06-05 · 知道合伙人互联网行家
关注

展开全部
360问答
如何使用ADO获得sqlserver数据库中image字段的值
xjk2001 LV12
2013-07-29
满意答案
anhan5677
LV11
2013-07-29
Sql Server保存Image字段的值是以2进制数据保存的, 直接拿出来也可以, 如果要拿出来之后以图片显示的话, 需要Image控件, 操作步骤为: 1.创建内存流 用来保存数据 MS:=TMemoryStream.Create; M_JPEG:=TJPEGIMAGE.Create; 2.先取出数据 TBlobField(FieldByName(Image_Field)).SavetoStream(MS); 3.M_JPEG.LoadFormStream(MS); 加载流之前需要将流的指针移动到最前否则读取内存报错 Position:=0 4.Image.Picture.BitMap.Assign(M_JPEG); 这样就能显示出来了。 需要注意的是一般来说要知道图片的格式, 在加载到控件上的时候, 有时需要知道图片的格式用不同的方法加载。
如何使用ADO获得sqlserver数据库中image字段的值
xjk2001 LV12
2013-07-29
满意答案
anhan5677
LV11
2013-07-29
Sql Server保存Image字段的值是以2进制数据保存的, 直接拿出来也可以, 如果要拿出来之后以图片显示的话, 需要Image控件, 操作步骤为: 1.创建内存流 用来保存数据 MS:=TMemoryStream.Create; M_JPEG:=TJPEGIMAGE.Create; 2.先取出数据 TBlobField(FieldByName(Image_Field)).SavetoStream(MS); 3.M_JPEG.LoadFormStream(MS); 加载流之前需要将流的指针移动到最前否则读取内存报错 Position:=0 4.Image.Picture.BitMap.Assign(M_JPEG); 这样就能显示出来了。 需要注意的是一般来说要知道图片的格式, 在加载到控件上的时候, 有时需要知道图片的格式用不同的方法加载。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询