DBRichEdit 编辑的内容,如何将格式保存到数据库字段中?

sdrainsz 2010-12-20 03:02:49
DBRichEdit 或者 RichEdit 控件中,设置的字体格式等内容,如何保存下来? 若采用SaveToFile 的方式,可以保存,但不想保存为文件格式,想把内容存储到 数据库中。不是单一的文档编辑器。

想实现一个类似 mybase 那样的记事本功能,左边是节点、索引,右边是编辑内容。将每个节点下面对应的编辑内容,联同字体格式等,一起存储到数据库中。目前文字内容可以保存,写到数据库字段中,但困惑的是如何保存格式内容?
...全文
292 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdrainsz 2010-12-23
  • 打赏
  • 举报
回复
已调试成功,粗心 代码查询时写错了
OraQuery1->Close();
OraQuery1->SQL->Clear();
OraQuery1->SQL->Add(" select * from PRJ_BG_TST where seq_id=1 ");

顺便通报一声,用如下这种方式也能写入的,似乎如下这种写法更好看一些:
OraSQL1->SQL->Clear();
OraSQL1->SQL->Add("begin update prj_bg_tst set WENZI_TXT=:parm1, WENZI_BLOB=:parm2 where seq_id=1; end; ");
OraSQL1->ParamByName("parm1")->AsString="程序代码写入的内容";
OraSQL1->ParamByName("parm2")->LoadFromStream(pMS,ftBlob);
OraSQL1->Execute();
zou1881 2010-12-23
  • 打赏
  • 举报
回复
OraQuery4->Edit();
OraQuery4->Post();
就够用了,其余的就是属性设置问题了
sdrainsz 2010-12-22
  • 打赏
  • 举报
回复
自己顶一下,请大家协助看一下。
sdrainsz 2010-12-22
  • 打赏
  • 举报
回复
请妖哥帮忙看一下如下代码。 奇怪,为何csdn发消息总是失败。我的QQ 号邮箱, 625296684@qq.com, 妖哥可否告知一下您的联系方式?

我使用CB6, 后台数据库是oracle,简单创建了一个数据表 PRJ_BG_TST,字段WENZI_TXT 用来存文字,WENZI_BLOB 存储带有格式的内容。数据库连接是使用 ODAC控件。

CREATE TABLE PRJ_BG_TST
(
SEQ_ID NUMBER,
WENZI_TXT VARCHAR2(2000 BYTE),
WENZI_BLOB BLOB
)

假设数据表中已存在了一条数据,主键seq_id=1 我使用如下代码 将RichEdit1 中的内容写入,感觉好像没有写成功。
TMemoryStream *mStream =new TMemoryStream();
RichEdit1->Lines->SaveToStream(mStream);
mStream->Position=0;
OraQuery4->Close();
OraQuery4->SQL->Clear();
OraQuery4->SQL->Add(" select * from PRJ_BG_TST where seq_id=1 ");
OraQuery4->Open();
OraQuery4->Edit();
OraQuery4->FieldByName("WENZI_TXT")->AsString="测试写入内容";
TBlobField *blob =(TBlobField *)OraQuery4->FieldByName("WENZI_BLOB");
blob->LoadFromStream(mStream);
OraQuery4->Post();
OraQuery4->Close();
delete mStream;

显示刚才写入的内容,采用如下的语句。 “测试写入内容”文字部分显示出来了,但RichEdit1 显示为空。
OraQuery1->Close();
OraQuery4->SQL->Clear();
OraQuery4->SQL->Add(" select * from PRJ_BG_TST where seq_id=1 ");
OraQuery1->Open();
TStream *Stream1;
Stream1=OraQuery1->CreateBlobStream(OraQuery1->FieldByName("WENZI_BLOB"), bmRead);
RichEdit1->Lines->LoadFromStream(Stream1);
delete Stream1;
sdrainsz 2010-12-20
  • 打赏
  • 举报
回复
可否提供一下代码样例?多谢了!
ccrun.com 2010-12-20
  • 打赏
  • 举报
回复
SaveToStream保存到流中,然后将流写到数据库中.

1,178

社区成员

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

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