社区
数据库及相关技术
帖子详情
怎么将oracle8i中的lob字段从数据库中取出并显示在c++builder中,又怎么将CB中的图片(jpg)存入到数据库中!???
13312933476
2003-10-17 02:50:46
请教具体源代码实例!!
...全文
36
4
打赏
收藏
怎么将oracle8i中的lob字段从数据库中取出并显示在c++builder中,又怎么将CB中的图片(jpg)存入到数据库中!???
请教具体源代码实例!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fx_xhb
2003-10-17
打赏
举报
回复
我刚刚遇到这个问题,注意一点通过BDE得话不能取得大于1M得BLOB数据!!!!
很倒!!
13312933476
2003-10-17
打赏
举报
回复
to:yyt(菜鸟)
如果我要将:d:\picture\xwt.jpg 存到数据库中的blob字段。在上面的代码中怎么写呢????
13312933476
2003-10-17
打赏
举报
回复
我试试!!先谢谢了,!!
等会儿就揭帖!!
影子传说
2003-10-17
打赏
举报
回复
CB中实现BLOB字段的读写
对于SQL中的TEXT、IMAGE、MEMO字段的存取,可以采用下列程序:
BLOB字段的读取:
TBlobSTream* TemplateStream;
char* TempPlatePtr;
TemplateStream=new TBlobStream((TBlobField*)WebQuery->FieldByName
("SearchTem"),bmReadWrite);
TemplatePtr= new char[TemplateStream->Size];
TemplateStream->Read(TemplatePtr, TemplateStream->Size);
BLOB字段的写入:
TBlobSTream* TemplateStream;
char* TempPlatePtr;
TemplateStream=new TBlobStream((TBlobField*)WebQuery->FieldByName
("SearchTem"),bmReadWrite);
TemplatePtr= new char[TemplateStream->Size];
TemplateStream->Write(TemplatePtr, TemplateStream->Size);
________________________________________________________________
补充:
获得字段的大小用函数datalength
SQL Server端要作一点设置:
By default, WRITETEXT is a nonlogged operation. This means that
text or image data is not logged when it is written into the database.
To use WRITETEXT in its default, nonlogged state,
//注意!!
the system administrator must use the sp_dboption system stored
procedure to set select into/bulkcopy,
//
which allows nonlogged data to be inserted.
做了试验,直接写SQL语句好象不行.
____________________________________________________________________
一些注意事项和一个例子
在写入时:
(1)如果使用的是TTable,则要将其ReadOnly属性先置为false,然后调用Edit函数;
(2)如果使用的是TQuery,则要将其RequestLive属性先置为true,然后调用Edit函数;
使得TTable(TQuery)是可写的.
下面是一个使用TQuery往content表(主键file_id)中插入一条记录的例子,
script为一个BLOB字段:
TBlobStream *pScriptStream;
//插入一条记录
strSQL1="insert into content(file_id,script,key_image) values('";
strSQL1=strSQL1+m_szFileID+"',null,null)";
dmStoryEditor->qryExec->SQL->Clear();
dmStoryEditor->qryExec->SQL->Add(strSQL1);
dmStoryEditor->qryExec->ExecSQL();
dmStoryEditor->qryExec->Close();
//整理要写入的Blob数据
LockMemories(NewsScript);
NewsScript.GetEdition(NewsScript.m_ScriptHead.byteEditionNum);
NewsScript.m_pScript=(BYTE *)GlobalLock(NewsScript.m_hScript);
if(NewsScript.m_pScript!=NULL)
{
//再将刚插入的记录读出来,使该Query与该条记录关联
strSQL1="select file_id,script from content where file_id='"+
m_szFileID+"'";
//允许该Query写
dmStoryEditor->qryExec->RequestLive=true;
dmStoryEditor->qryExec->SQL->Clear();
dmStoryEditor->qryExec->SQL->Add(strSQL1);
dmStoryEditor->qryExec->Open();
dmStoryEditor->qryExec->First();
//将该Query置为可写
dmStoryEditor->qryExec->Edit();
pScriptStream=new TBlobStream((TBlobField*)dmStoryEditor->
qryExec->FieldByName("script"),bmReadWrite);
pScriptStream->Write(NewsScript.m_pScript,
NewsScript.m_lScriptRealSize);
dmStoryEditor->qryExec->Post();
dmStoryEditor->qryExec->RequestLive=false;
delete pScriptStream;
}
GlobalUnlock(NewsScript.m_hScript);
UnLockMemories(NewsScript);
Spring+3.x企业应用开发实战光盘源码(全)
第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了
LOB
字段
处理、主键产生和获取等难点知识。 第12章:讲解了如何在Spring
中
集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM...
Oracle
中
的
LOB
字段
解读
当
LOB
字段
大小超过4k时,
数据库
会单独为该
LOB
字段
分配额外的B
LOB
Segments存储B
LOB
对象,存储在
lob
segment
中
的
lob
缺省不在缓冲区缓存,对于
lob
的读写都是物理IO,代价非常高,所以对于大于4kb的
lob
字段
更新效率非常...
oracle
lob
值是什么,关于
Oracle
数据库
LOB
大
字段
总结
概述在
ORACLE
数据库
中
,DBA_OBJECTS视图
中
OBJECT_TYPE为
LOB
的对象是什么东西呢?其实OBJECT_TYPE为
LOB
就是大对象(
LOB
),它指那些用来存储大量数据的
数据库
字段
。
Oracle
11gR2 文档:...
oracle
查询有
lob
的表,查询
Oracle
数据库
中
带有
lob
字段
的表的大小
注意:由于
lob
字段
有独立的
lob
segment来存储,故对于带有
lob
字段
的表,不能仅仅查询dba_segments.以下脚本来自:How to Compute the Size of a Table containing Outline C
LOB
s and B
LOB
s[Article ID 118531.1]经过...
操作
oracle
数据库
的
LOB
(大对象)类型
字段
查询
数据库
时会发现,有的
数据库
表里面的有些
字段
不会
显示
值,只会
显示
,那么为什么会这样呢,它的类型有什么不一样吗?
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章