当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 关系数据库都提供大文档的存储和提取。
 

 

    摘要:delphi具有强大的数据库应用程序开发功能,其client/sever版本可以开发一般的单机数据库应用系统、普通client/sever应用系统直至基于web的多层应用,其中自然离不开borland数据库引擎(bde)的功劳。不过在没有安装过delphi程序的计算机上运行数据库程序时,必须同时分发庞大的bde文件,borland建议用户用delphi附带的installshield制作安装程序来......
 ·用delphi 5创建web services    »显示摘要«
    摘要: m 作 者: cn_prince(欢喜王子) 2001-06-11 20:58:55 :0 :0 [回复] [打包] [转贴] 我尚无缘得见新版本的delphi。据可靠消息称,它提供对soap--web services的基础--的全面支持,而扔弃了borland midas。 为什么这只软件大鲨会对web services如此钟情?他们的动机很容易明白。web services意味......


Delphi中对Oracle存取RTF文档
    关系数据库都提供大文档的存储与提取.对于视频资料.音频资料.图象资料等大文档,一般需要 另外开辟字段用于存储摘要信息,因此在查询与检索时并不访问大字段,而只是在存储与提取时才操作 大字段.例如,你不能对oracle中的long raw类型进行like介词的查询,更不能使用等号“ =”查询. 这对于存储大段文本(容量超过2k)同时又需要全文检索是相当不便的.本文将介绍如何利用数据库的 字符串数据类型存取与查询大段文本.这里以oracle数据库与delphi应用程序为例,重点介绍如何在数据库中存取 rtf文档.

【程序编程相关:在TWebBrowser 屏蔽右键的弹出

【推荐阅读:让Fastreport3.x支持中文PD

    对于纯文本,可以简单地将其分割成若干个串,分别存储到varchar(2000)字段中即可.在查询时 可以使用like比较,从而达到全文检索的目的.为了保留换行等段落信息,应当将回车换行(#13#10) 也作为串的一部分进行保存.数据录入时可以提供memo控件(不是dbmemo)进行录入,然后顺序连接各行,当连接成的串临近2000个字符(单字节字符)长度时,就存入一条记录,然后对剩余的行重复上述操作.这样,最终将纯文本存成若干长度不超过2000的varchar(2000) 字段中.这里需要另外开辟字段 用于存储文本编号与子序号,以便区分不同的文本与读取文本时顺序连接所有的子串.查询纯文本时, 就可以象查询普通的varchar 字段一样,可以使用like,也可以使用等号“ =”(几乎不需要使用). 需要注意的是,可能用户提供的关键字正好被存储在不同的子串中,这时是查询不到的.因此,在设计时应当考虑存储重复的串.例如,每个子串中仅有前1900个字符是有效字符,最后100 个字符用于存储 下一个子串的前100 个字符.这样就避免了关键字被分开的情况.唯一的不足是,必须限制用户输入的 查询关键字长度不得超过100 个字符(50个汉字),但这很正常,算不上不足. 【扩展信息:ReportBuilder设置打印页范围

    事实上,同样可以利用这一技巧对 rtf文档进行存取与查询.这时,用于录入与显示 rtf文档的是 richedit控件(不是dbrichedit),而不再是memo控件.对于 rtf文档的存取,不能象存取纯文本那样 通过memo的属性lines.strings[index]进行操作(尽管richedit控件具有相同的属性),因为这样做就 无法保存文档的格式了.需要利用的是richedit的两个方法:savetofile与loadfromfile.需要了解的 是, rtf文件中用纯字符描述字体.字号.文本等各种格式信息与内容信息.因此,存储与提取时可以 视为纯文本进行操作.但对于查询,就不能直接用like加关键字的方式进行.因为 rtf文档中的每一个 汉字都是用特殊的表示方法存储,只有单字节字符是原样存储.所以在查询时要对关键字进行处理才能 用在查询语句中.

    在测试这个例子之前,必须有如下的数据结构,这里以oracle创建表的 sql语句形式给出:

(*

create table test( { 表名为 test }


...   下一页
 ·得到cpu速度,单位mhz    »显示摘要«
    摘要:function getcpuspeed: comp; { function to return the cpu clock speed only.} { usage: messagedlg(format(%.1f mhz, [getcpuspeed]), mtconfirmation, [mbok], 0); } var t: dword; mhi, mlo, nhi, ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE