关于在如何像数据中插入图片的问题?高分相送!

rablee 2002-06-24 04:35:58
问题:
现在有一批的cad文件,想插入sql server2k数据库中,数据库中的字段数据类型是
image,用什么语句可以实现插入和查询呢?
btw:是不是用sql server2k的查询分析器不能实现图片的插入和查询呢?
3x!
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
small_wei 2002-06-24
  • 打赏
  • 举报
回复
用ODBC
重载crecordset
重写DoFieldExchange( CFieldExchange* pFX )
RFX_Binary( pFX, youfieldname, m_pbyte, 300000);//CByteArray *m_pbyte 长度你自己可以定长一些或短一些或动态。

m_pbyte //为你的图片数据。
使用时:

yourecordset.addnew();
yourecordset.m_pbyte = pbmp ;
yourecordset.update();
alidiedie 2002-06-24
  • 打赏
  • 举报
回复
study
chenybin 2002-06-24
  • 打赏
  • 举报
回复
我来UP好了
kingzai 2002-06-24
  • 打赏
  • 举报
回复
1。Using CLongBinary for BLOBs
2。Following code snippet shows how to do this in the actual code:
3。uses an Access database to store the images
// Store the Image to database table
//
try
{
dbImages.Open();
dbImages.AddNew();

CFile fileImage;
CFileStatus fileStatus;

fileImage.Open("c:\\winnt\\winnt256.bmp", CFile::modeRead);
fileImage.GetStatus(fileStatus);

dbImages.m_BLOBName = fileImage.GetFileTitle();
dbImages.m_BLOBImage.m_dwDataLength = fileStatus.m_size;

HGLOBAL hGlobal = GlobalAlloc(GPTR,fileStatus.m_size);
dbImages.m_BLOBImage.m_hData = GlobalLock(hGlobal);

fileImage.ReadHuge(dbImages.m_BLOBImage.m_hData,fileStatus.m_size);

dbImages.SetFieldDirty(&dbImages.m_BLOBImage);
dbImages.SetFieldNull(&dbImages.m_BLOBImage,FALSE);
dbImages.Update();

GlobalUnlock(hGlobal);

dbImages.Close();

pList->InsertItem(0,fileImage.GetFileTitle());
}
catch(CException* pE)
{
pE->ReportError();
pE->Delete();
return;
}


// To restore image from db table
CdbImages dbImages(&theApp.m_DB);
CString strFileName = pList->GetItemText(nIndex,0);
dbImages.m_strFilter.Format("BLOBName = '%s'",strFileName);
try
{
dbImages.Open();
if (dbImages.IsEOF())
AfxMessageBox("Unable to get image from db");
else
{
char tmpPath[_MAX_PATH+1];
GetTempPath(_MAX_PATH,tmpPath);

strFileName.Insert(0,tmpPath);

CFile outFile(strFileName,CFile::modeCreate|CFile::modeWrite);
LPSTR buffer = (LPSTR)GlobalLock(dbImages.m_BLOBImage.m_hData);
outFile.WriteHuge(buffer,dbImages.m_BLOBImage.m_dwDataLength);
GlobalUnlock(dbImages.m_BLOBImage.m_hData);
outFile.Close();

theApp.OpenDocumentFile(strFileName);
}

dbImages.Close();

}
catch(CException* pE)
{
pE->ReportError();
pE->Delete();
return;
}

cxy550 2002-06-24
  • 打赏
  • 举报
回复
如果是oracle的话,可以考虑用BLOB

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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