怎么将oracle8i中的lob字段从数据库中取出并显示在c++builder中,又怎么将CB中的图片(jpg)存入到数据库中!???

13312933476 2003-10-17 02:50:46
请教具体源代码实例!!
...全文
37 4 打赏 收藏 转发到动态 举报
写回复
用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);

第1章:对Spring框架进行宏观性的概述,力图使读者建立起对Spring整体性的认识。   第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。   第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架的三个最重要的框架级接口进行了剖析,并对Bean的生命周期进行讲解。   第4章:讲解如何在Spring配置文件使用Spring 3.0的Schema格式配置Bean的内容,并对各个配置项的意义进行了深入的说明。   第5章:对Spring容器进行解构,从内部探究Spring容器的体系结构和运行流程。此外,我们还将对Spring容器一些高级主题进行深入的阐述。   第6章:我们从Spring AOP的底层实现技术入手,一步步深入到Spring AOP的内核,分析它的底层结构和具体实现。   第7章:对如何使用基于AspectJ配置AOP的知识进行了深入的分析,这包括使用XML Schema配置文件、使用注解进行配置等内容。   第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。   第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。   第10章:对实际应用Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有云遮雾罩的感觉。   第11章:讲解了如何使用Spring JDBC进行数据访问操作,我们还重点讲述了LOB字段处理、主键产生和获取等难点知识。   第12章:讲解了如何在Spring集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。   第13章:本章重点对在Spring如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。   第14章:介绍Spring 3.0新增的OXM模块,同时对XML技术进行了整体的了解。   第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。   第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。   第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、项目设计、代码开发、单元测试直到应用部署经历整个实际项目的整体开发过程。

1,178

社区成员

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

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