100分没有人回答,改为300分。Paradox表Formated Memo字段查询问题。(300分)

  • 主题发起人 主题发起人 wbo
  • 开始时间 开始时间
W

wbo

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个Paradox表atable中有Formated Memo字段fm,用于保存Rich Text文件的内容,
用SQL语句:select * from atable where fm like "%AAA%"
结果什么都没有。可实际上有好几个记录的fm中都包含有AAA这个字符。如果把
Formated Memo改为memo,则查询有结果。如何解决?
 
不知你有没有试过把Rich Text保存为文本文件来看看?
你看到的将全是控制字符,就是说不存在‘AAA’这样的字母的。
至于如何解决,你看着办吧。
 
xianjun:
把Rich Text保存为文本文件后多了很多控制字符,但AAA还是存在的。
 
确实AAA还是可以见到的,但是应该是BDE不支持或者内部保存的格式问题吧
对Formatted Memo字段就是不能用Like操作符。
好象是没招!
如果空间没什么问题的话,可以用一个MEMO字段保存纯文本,然后进行两
者之间的同步,搜索的时候就用MEMO内容来搜索就行了。[:D]
当然,这是非常不好的“方法”了。[:(!]
 
memo字段的话,不行,因为格式的问题,改为char类型。
 
formatted Memo中保存的是大段的文章,增加一个字段会使数据库太大。
 
那我就没办法了
或者你增加一个字段,里面保存文章的关键字,然后根据这些关键字来查询文章?
不知有没有大侠碰到过类似的问题?[?]
 
将Memo子段转为string子段,然后查找。
 
类似的问题一般处理方法:
(大文本保存)
增加一个字段,里面保存文章的关键字,然后根据这些关键字来查询文章。
 
[:(]看起来很简单嘛,但答案不理想
 
作为RICH TEXT存放时,AAA中可能包含了控制字符,比如:A#1#2A#13A,
当然无法匹配你的"%AAA%"了。
你为什么要通过MEMO字段来检索数据呢?
不论是MEMO还是FORMATED MEMO,这样做效率都是很底的。
这些数据主要都是存放在另一个和主表同名后缀不同的文件(atable.MB)中。
你的字段中存的是指针。如果你为你的字段指定了大小,实际上是表示有多少字节
可以直接存放在主表文件中,以提高访问效率(但不是为了检索)。
总希望通过MEMO字段来检索数据,这本身就不是一个好习惯,而且还加上了like 和 %。
BDE能够接受你的SQL语句,已经很对得起您了。
如果你的环境允许你升级到SQL-Server的话,我建议你去学学有关全文检索方面的用法,
也许在SQL-SERVER上能解决你的问题。
否则,我认为Tense的方法应该是最合理的。
 
勉强接受答案。谢谢各位关照。
 
多人接受答案了。
 
后退
顶部