社区
数据库
帖子详情
如何更新视图?
Turelies
2004-08-16 10:39:22
在SQL server2000中!
...全文
108
2
打赏
收藏
如何更新视图?
在SQL server2000中!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gongcengshi
2004-08-16
打赏
举报
回复
try
{
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->Open((_bstr_t)strSQL, _variant_t(pConnection, true),
adOpenStatic,adLockOptimistic,adCmdText);
if(!pRecordset->EndOfFile)
{
long nSize = pRecordset->GetFields()->GetItem("GRAPHIC")->ActualSize;
if(nSize > 0)
{
_variant_t varBLOB;
varBLOB=pRecordset->GetFields()->GetItem("GRAPHIC")->GetChunk(nSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
if(BYTE *pBuffer = new BYTE [nSize+1]) ///ÖØÐÂÉêÇë±ØÒªµÄ´æ´¢¿Õ¼ä
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(pBuffer,pBuf,nSize); ///½»º³åÇøm_pBMPBuffer
SafeArrayUnaccessData (varBLOB.parray);
CFile f;
CFileException e;
CFileStatus fStatus;
CString strFileType = (LPCTSTR)(_bstr_t)pRecordset->GetCollect(_variant_t("DRAWINGNAME"));
strFileType = strFileType.Right(4);
int n = strFileType.GetLength();
strName = strFileType.Left(n-4);
CString FilePath = "E:\\";
FilePath = FilePath+strName+strFileType;
if(f.Open(FilePath, CFile::modeWrite | CFile::modeCreate | CFile::typeBinary, &e))
{
f.Write(pBuffer, nSize);
f.GetStatus(FilePath, fStatus);
f.Close();
}
delete [] pBuffer;
pBuf=0;
m_pNetFind->ShowWindow(SW_HIDE);
FileOpen(FilePath); //通过文件名字打开文件的,
}
}
}
}
pRecordset->Close();
pRecordset.Release();
}
catch(_com_error &e)
{
CString err;
err.Format("%d\n%s", e.Error(), (char *)e.Description());
AfxMessageBox(err);
return FALSE;
}
在oracle中我建立视图,想从视图中得到long raw类型的字段“GRAPHIC”中的文件内容,但是long nSize = pRecordset->GetFields()->GetItem("GRAPHIC")->ActualSize;的取值不正确,就无法从数据库得到正确的文件数据,希望大家帮忙解决一下!
gongcengshi
2004-08-16
打赏
举报
回复
try
{
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->Open((_bstr_t)strSQL, _variant_t(pConnection, true),
adOpenStatic,adLockOptimistic,adCmdText);
if(!pRecordset->EndOfFile)
{
long nSize = pRecordset->GetFields()->GetItem("GRAPHIC")->ActualSize;
if(nSize > 0)
{
_variant_t varBLOB;
varBLOB = pRecordset->GetFields()->GetItem("GRAPHIC")->GetChunk(nSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
if(BYTE *pBuffer = new BYTE [nSize+1]) ///ÖØÐÂÉêÇë±ØÒªµÄ´æ´¢¿Õ¼ä
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(pBuffer,pBuf,nSize); ///¸´ÖÆÊý¾Ýµ½»º³åÇøm_pBMPBuffer
SafeArrayUnaccessData (varBLOB.parray);
//ÎļþдÈë²Ù×÷
CFile f;
CFileException e;
CFileStatus fStatus;
CString strFileType = (LPCTSTR)(_bstr_t)pRecordset->GetCollect(_variant_t("DRAWINGNAME"));
strFileType = strFileType.Right(4);
int n = strFileType.GetLength();
strName = strFileType.Left(n-4);
// strFileType
// CString strGYinfo = "currectOpenDoc";
CString FilePath = "E:\\";
FilePath = FilePath+strName+strFileType;
if(f.Open(FilePath, CFile::modeWrite | CFile::modeCreate | CFile::typeBinary, &e))
{
f.Write(pBuffer, nSize);
f.GetStatus(FilePath, fStatus);
f.Close();
}
delete [] pBuffer;
pBuf=0;
m_pNetFind->ShowWindow(SW_HIDE);
FileOpen(FilePath);
}
}
}
}
pRecordset->Close();
pRecordset.Release();
}
catch(_com_error &e)
{
CString err;
err.Format("%d\n%s", e.Error(), (char *)e.Description());
AfxMessageBox(err);
return FALSE;
}
在oracle中我建立视图,想从视图中得到long raw类型的字段“GRAPHIC”中的内容但是long nSize = pRecordset->GetFields()->GetItem("GRAPHIC")->ActualSize;的取值不正确,希望大家帮忙解决一下!
Qt之模型/
视图
(实时
更新
数据)
Qt实现的MVC编程 功能: (1)添加委托(进度条) (2)显示文件名称、大小、进度、速度、剩余时间、状态等。 (3)可进行添加、
更新
、删除、清空等操作。 (4)实时
更新
数据
Android 自定义ViewGroup 实战篇 -> 实现FlowLayout源码程序
代码为博客实例代码:http://blog.csdn.net/lmj623565791/article/details/38352503 有问题请博客留言
MVC使用Knockout.JS实现的单页应用程序(SPA)1
MVC使用Knockout.JS实现的单页应用程序(SPA)1
RecyclerView 瀑布流、ListView、GridView实例源码
代码为博客实例代码,http://blog.csdn.net/lmj623565791/article/details/45059587 有问题请博客留言
仿微信对话列表滑动删除功能
仿微信对话列表滑动删除功能,在listview中可以滑动删除item
数据库
4,018
社区成员
39,807
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章