高分,大家来讨论一下domain的查询吧,来者有分,不够再加版主们也支持一下呀,

glassch 2004-04-13 09:08:50
由于是新手问题烦请大家注明是c/s下还是b/s下,
...全文
192 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyk_1986 2010-06-24
  • 打赏
  • 举报
回复
如果数据量多的话。。db.search和SearchView哪个更快些
cpl3113 2004-06-23
  • 打赏
  • 举报
回复
正在努力学习,继续努力
zelloss 2004-06-23
  • 打赏
  • 举报
回复
一般我用DB.search,这样做能满足大部分的要求,但要注意公式中的“=”和“@contain”
所谓“=”就是精确查询了,比如10个f的问题,如果是“@contain”那么就是包含了,比如
10个f,那么可以搜索出包含10个f的,如11个f,但不可能搜索出10个以下的。
缺点就是当数据库中文档非常多时,严重影响查询速度,解决方法就是转储一些文档!
mason520 2004-06-22
  • 打赏
  • 举报
回复
嗯,我也是刚接触的新手。
一般我都是对视图进行查询,就是把视图里的文档一个一个取出来与要查询条件进行比较。
cwww2003 2004-06-22
  • 打赏
  • 举报
回复
ding
ThomasXu 2004-06-22
  • 打赏
  • 举报
回复
to:yuzhejia(阿哲) and michael_law(馬可波羅)
多人一起进行时会不会出现错误,这个问题基本上可以这样回答。
如果用一个视图的话,肯定会出现你们所担心的问题。
要解决这个问题只用动态创建新的视图,使这个视图的名字在整个数据库中保持唯一。
1、做一个视图模板(名字为Template),这个视图没有一列,View Selection 和 Form Formula也是空的。
2、通过程序以Template为模板,创建一个新的视图

Dim Session As New NotesSession
Dim DB As NotesDatabase
Dim View As NotesView
Dim NewView As NotesView
Dim Doc As NotesDocument
Dim NewDoc As NotesDocument
Dim UserName As New NotesName( Session.EffectiveUserName )

//新视图的名字(登录人+当前小时+当前分钟+当前秒,确保该视图唯一)
StrHour = Right("0" + Trim(Str(Hour(Now))),2)
StrMin = Right("0" + Trim(Str(Minute(Now))),2)
StrSec = Right("0" + Trim(Str(Second(Now))),2)

NewViewName = "SEARCHVIEW_" + Ucase(UserName.Common) + "_" + StrHour + StrMin + StrSec

Set DB = Session.CurrentDatabase
Set View = DB.GetView("Template")
Set Doc = DB.GetDocumentByUNID( View.UniversalID )
Set NewDoc = Doc.CopyToDatabase( DB )
Call NewDoc.ReplaceItemValue("$TITLE",NewViewName)
Call NewDoc.Save(True,True)

Set NewView = DB.GetView(NewViewName)
……
……

3、需要做一个定时代理(一个小时一次),将这个小时以前创建的搜索视图全部删除.
glassch 2004-06-22
  • 打赏
  • 举报
回复
终于有人又记起我这个帖子了,公司准备给项目升级,下一步要完成的是搜索所有数据库中满足条件的文档并列表显示还要有链接,
林帆,你的是不是有点类似对关系型数据库表的查询。
michael_law 2004-04-16
  • 打赏
  • 举报
回复
上面的:searchView.SelectionFormula(condition)

应该改为:searchView.SelectionFormula = condition
michael_law 2004-04-16
  • 打赏
  • 举报
回复
前面说的建立视图查询结果,只有在6.x的版本上才能实现,因为只有在6.x的版本上才有相应的这些函数。
1、建立一个基本搜索视图。例如:searchview
2、为此基本搜索视图建立嵌入文档作为查询结果的显示。例如:searchform
3、为查询建立代理。
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim searchView As NotesView

Set db = session.CurrentDatabase
Set searchView = db.getView("searchview")

REM 视图的显示条件
Dim condition As String
Dim viewColumns As Variant
condition = "@LowerCase(form)='formname'"
searchView.SelectionFormula(condition)
viewColumns = searchView.Columns

REM 列的数据:数组0为列标题、数组1为列显示公式
Dim columnName(1,3) As String
columnName(0,0) = "标题1"
columnName(1,0) = "bt1"
columnName(0,1) = "标题2"
columnName(1,1) = "bt2"
columnName(0,2) = "标题3"
columnName(1,2) = "bt3"
columnName(0,3) = "标题4"
columnName(1,3) = "bt4"

REM 原视图列的数量与查询时要显示的列的数量进行比较,少了就往视图上添加列,多了就将多余的列删除
Dim i As Integer
If Ubound(columnName,2) > Ubound(viewColumns) Then
For i = 1 To Ubound(columnName,2) - Ubound(viewColumns)
searchView.CreateColumn
Next
Elseif Ubound(columnName,2) < Ubound(viewColumns) Then
For i = 1 To Ubound(viewColumns) - Ubound(columnName,2)
searchView.RemoveColumn(i)
Next
End If

REM 把视图列的信息放入基本视图当中
Dim viewColumn As NotesViewColumn
viewColumns = Ubound(searchView.Columns)
For i = 1 To Ubound(searchView.Columns)
Set viewColumn = viewColumns(i)
viewColumn.Title = columnName(0,i)
viewColumn.Formula = columnName(1,i)

REM 第一列为排序列
If i = 1 Then viewColumn.IsSorted = True
Next

REM 转到嵌入基本视图的表单进行显示
Print("/" + db.filePath + "/searchform?OpenForm")
End Sub
glassch 2004-04-16
  • 打赏
  • 举报
回复
我们现在采取的就是全文索引的方式呀,大家都说是缺点,有没有一个好点的解决方法
michael_law 2004-04-16
  • 打赏
  • 举报
回复
这个也是我要问他的问题,因为实现这种搜索功能不难,但是要适应同时多人搜索就要找方法了。
yuzhejia 2004-04-16
  • 打赏
  • 举报
回复
用视图做查询,在多人一起进行时会不会出现错误,甚至看到别人的搜索结果?
glassch 2004-04-16
  • 打赏
  • 举报
回复
可惜我是5.0.10下次用6.x时用
liuxingyu0435 2004-04-15
  • 打赏
  • 举报
回复
如果数据库多或数据量大的话,千万不要给所有的数据库建立全文索引,尤其BS结构的,打开执行实在太慢了.我们单位的一套系统,论坛里建了个全文索引,数据量一大服务器老是报索引的错误.有时处理慢了论坛就进不去了.但是不建全文索引有时查询就查不到.给每人建邮箱时也建立了全文索引.现在邮箱慢死了.
xiaoqinger 2004-04-15
  • 打赏
  • 举报
回复
我是用的db.ftsearch速度的确很慢,有时也有选择某个条件查不出来的时候,很想知道原因。
上面说的建立视图作为查询结果那得建多少个啊,一般查询条件都是不固定的。
acupofgreentea 2004-04-15
  • 打赏
  • 举报
回复
up
michael_law 2004-04-15
  • 打赏
  • 举报
回复
achan8021()
你这样做的话,是怎样处理多用户同时查询的问题呢
meteor_shower 2004-04-15
  • 打赏
  • 举报
回复
searchsite
searchdomain
大家用过么?
yuzhejia 2004-04-14
  • 打赏
  • 举报
回复
up
很想知道用视图做查询的细节。
怎么确定查询条件,怎么返回结果?
yuzhejia 2004-04-13
  • 打赏
  • 举报
回复
如何进行精确查找?
加载更多回复(15)

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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