1、用ODAC5.1.0.6与ORACLE数据库相联。
2、往BLOB字段添加数据的方式:COPY WORD文档中的数据,然后在TDBRICHEDIT控件中PASTE,再让ODAC控件中的TSMARTQUERY DATASE自动POST。
其实觉得以上两点,用ADO应该也是一样的。。
3、用TDBRICHEDIT显示BLOB类型的数据,当BLOB类型的数据比较小时,TDBRICHEDIT的显示完全没问题,字体、中文字符、表格等的显示完全正确。
4、如果数据较大时(>100K),TDBRICHEDIT的显示就不正确(即使没有中文、没有表格,仅是字体、段落的设置也显示不正确,TXT文本没试过),其显示的内容就像是用NOTEPAD打开RTF格式的文件一样。
5、如果把RICHEDIT中显示的内容COPY下来,PASTE到一文本文件中,保存为TXT文件,然后再用写字板打开该文件,则能正确显示,包括字体、格式、表格等。
6、如果抛开字体、表格等格式不说,用TDBMEMO,则无论数据多大,TDBMEMO的显示都正确。
上网查了一下,很多有关贴子说RICHEDIT显示汉字为乱码,主要答复是RICHED*.DLL文件是否为中文以及设置PLAINTEXT为TRUE。而我这个问题,中文显示应该是没问题的,RICHED*.DLL为中文,OS为WINXP,而我要保存字体、表格等格式,因而不能设置PLAINTEXT为TRUE。另外,有关数据库,网上说BLOB类型的数据好像有个32K限制,这个我不是很清楚,况且我是用ODAC而非BDE、ADO。另外,我用同样的方法保存3M左右的BMP文件都没问题(用TDBIMAGE显示)。查了很多资料,都解决不了该问题,故只有在这里发文了,希望大家指教一下。
==========================
先谢了!