execute()メソッドとexplain() メソッドが設計ドキュメントのみを検索するかどうかを指定します。true に設定すると設計ドキュメントのみが検索され、false に設定すると通常通りデータドキュメントのみが検索されます。デフォルト値は false です。
Boolean
dquery は NotesDominoQuery のオブジェクトです。
Dim bDesignDocOnly as Boolean
bDesignDocOnly = dquery.DesignDocumentsOnly
dquery.DesignDocumentsOnly = True
このプロパティを使用して、 execute() メソッドと explain() メソッドの検索対象を設計文書のみに制限するかどうかを制御します。
true に設定すると、設計文書のみが検索されます。false に設定すると、Notes 文書も検索されます。
注意: 次のいずれかのクエリ用語が使用されている場合、DQL は設計ドキュメントの検索を実行できません。
Query is not understandableexecute()または explain()の呼び出し中にスローされます。
isDesignDocumentsOnly メソッド (DominoQuery - Java)
setDesignDocumentsOnly メソッド (DominoQuery - Java)
すべてのクエリの処理でスキャンされる文書の最大許容数を指定します。この数を超えると、DQL 実行時にエラーが返されます。デフォルトは500,000です。
Long
Dim maxdocs as Long maxdocs = dquery.Maxscandocs
dquery.Maxscandocs = 1000000
getMaxScanDocs メソッド (DominoQuery - Java)
setMaxScanDocs メソッド (DominoQuery - Java)
すべてのクエリの処理でスキャンされるビューエントリの最大許容数を指定します。この数を超えると、DQL 実行時にエラーが返されます。デフォルトは200,000です。
Long
Dim maxentries as Long maxentries = dquery.Maxscanentries
dquery.Maxscanentries = 1000000
getMaxScanEntries メソッド (DominoQuery - Java)
setMaxScanEntries メソッド (DominoQuery - Java)
クエリを処理する際にビュー検索の処理を実行しないことを指定します。デフォルトはFalse(オフ)です。
Boolean
Dim nviews as Boolean nviews = dquery.Noviews
dquery.Noviews = True
'Viewname'.column <operator> <value>
In ('viewname1', 'viewname2')
ビューと NSF スキャンの使用における他の構文用語の調整に役立ちます。
isNoViews メソッド (DominoQuery - Java)
setNoViews メソッド (DominoQuery - Java)
Explain または Execute を使用してクエリを処理する前に、DQL 処理でデザイン カタログを完全に再構築するように指定します。
Boolean
デフォルトは False です。
Dim rebuildDsgnCat as Boolean rebuildDsgnCat = dquery.RebuildDesignCatalog
dquery.RebuildDesignCatalog = True
このプロパティを使用すると、クエリを実行する前にデザインカタログの完全な再構築が行われるため、コストがかかります。
デザインカタログへの設計者権限がない場合、 RebuildDesignCatalog 実行中に「その操作を実行する権限がありません」というメッセージが表示され、設定が失敗し、クエリ結果は表示されません。
Explain または Execute を使用してクエリを処理する前に、DQL 処理でデザインカタログを更新するように指定します。
Boolean
デフォルトは False です。
Dim refDsgnCat as Boolean refDsgnCat = dquery.RefreshDesignCatalog
設定する:
dquery.RefreshDesignCatalog = True
このプロパティを使用すると、リソースの使用や時間がかかるものの、RebuildDesignCatalog よりはコストが低く、現在のデータベース設計の状態が現在のデータベースのデザインカタログ文書に正確に反映されます。
デザインカタログへの設計者権限がない場合、 RefreshDesignCatalog実行中に「その操作を実行する権限がありません」というメッセージが表示され、設定が失敗し、クエリ結果は表示されません。
Explain または Execute を使用してクエリを処理する前に、データベースの全文索引を更新するように DQL に指定します。
Boolean
デフォルトは False です。
Dim refFT as Boolean refFT = dquery.RefreshFullText
dquery.RefreshFullText = True
Dim refFT as Boolean refFT = dquery.RefreshFullText To set: dquery.RefreshFullText = True
このプロパティを使用すると、リソースの使用や時間がかかりますが、クエリ処理の前に最新の更新が全文索引に反映されることが保証されます。
DQL のクエリでビューに対する処理を実行する場合に、開いているすべてのビューを更新するように指定します。
Boolean
デフォルトは False です。
Dim refviews as Boolean refviews = dquery.Refreshviews
dquery.Refreshviews = True
このプロパティを使用すると競合が発生する可能性がありますが、処理時にすべてのインデックスが最新であることが保証されます。
サーバー全体で有効にするには、サーバーに次の notes.ini 設定を追加します: QUERY_REFRESH_ALL_VIEWS=1
isRefreshViews メソッド (DominoQuery - Java)
setRefreshViews メソッド (DominoQuery - Java)
DQL クエリの実行に許容される最大秒数を指定します。この秒数を超えるとDQL実行時にエラーが返されます。
Integer
デフォルトは300(5分)です。
Dim secs as Integer secs = dquery.Timeoutsec
dquery.Timeoutsec = 1000
getTimeoutSecs メソッド (DominoQuery - Java)
setTimeoutSecs メソッド (DominoQuery - Java)
DQL クエリ用に最適化された Domino ビューの索引を作成します。
NotesDominoQuery CreateIndex(String IndexName, Variant Field, Optional Boolean Isvisible, Optional Boolean Nobuild)
IndexName
Field
Variant 文字列または文字列配列。インデックスを作成するフィールドの名前。
Isvisible
Boolean。ビューを表示します。指定しない場合は、括弧を使用して非表示のビューが作成されます。例えば、「myindex」は「(myindex)」になります。true に設定すると、すべてのユーザーがデータベースを開いたときに、呼び出しによって作成されたビューが表示されます。
Nobuild
Boolean。ビューを構築せず、通常のビュー処理で構築できるようにします。CreateIndex によって作成されるすべてのビューは、更新オプションが「自動」に設定された状態で作成されます。指定されていない場合、作成されるビューは CreateIndex 操作の一部として構築されます。
なし
Dim IndexName As String
Dim FieldName As Variant
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim TheQuery As NotesDominoQuery
Set db = Session.CurrentDatabase
Set TheQuery = db.Createdominoquery()
IndexName = "idx1"
FieldName = "order_status"
' Create the index, default the options
Call TheQuery.CreateIndex(IndexName, FieldName)
指定されたパラメータに従って渡されたクエリ文字列を実行し、名前付き結果をデータベースに返します。これにより、結果への再アクセスがより高速になります。複雑なクエリを再利用する場合、これにより処理時間が大幅に短縮されます。
Set doccol = NotesDominoQuery.Execute(Query$, Optional String ResultName, Optional Boolean Replace, Optional Long ExpireHours)
Query$
String 型。DQL 構文のクエリ。
ResultName
String 型。将来のDQL参照のために、DocumentCollection をデータベースに保存する際に使用する名前。名前は大文字と小文字を区別しません。
Replace
Boolean 型。ResultNameを持つ保存済みの DocumentCollection が存在する場合は上書きします。設定されていない場合は、競合を示すエラーがスローされます。
ExpireHours
NotesDocumentCollection
Dim Query As String
Dim db As NotesDatabase
Dim TheQuery As NotesDominoQuery
Dim doccol As NotesDocumentCollection
Dim ResultName As String
Dim ExpireHours As Long
Dim Session As New NotesSession
Set db = Session.getdatabase("", "my.nsf")
Set TheQuery = db.Createdominoquery()
Query$ = "firstname = 'Annabelle' and lastname = 'Stevens' and 'Personview'.dept = 'Sales'"
ResultName = "MySavedResults"
ExpireHours = 72
' Runs the query, returns results in doccol and saves them for future reference (DQL in clause)
' in "MySavedResults", a named set of documents that will be deleted by updall in 72 hours
Set doccol = TheQuery.Execute(Query$, ResultName, ExpireHours)
Execute メソッド (DominoQuery - Java)
設定されたパラメータに従って渡されたクエリ文字列を実行し、クエリがどのように実行されたかを示す説明の文字列を返します。
Set explainstring = NotesDominoQuery.Explain(Query$)
Query$
文字列。DQL 構文のクエリ。
String
explain 出力を理解して操作するには、「 explain 」を参照してください。
Dim Query$ as String
Dim ExplainString as String
Dim NotesDatabase db
Dim TheQuery As NotesDominoQuery
Set db = Session.Getdatabase("my.nsf")
Set TheQuery = db.Createdominoquery()
Set Query$ = "firstname = 'Annabelle' and lastname = 'Stevens' and 'Personview'.dept = 'Sales'"
Set ExplainString = TheQuery.Explain(Query$)
Domino DQL クエリ用語に最適化されたインデックスを一覧表示します。
NotesDominoQuery.ListIndexes()
なし
NotesJsonNavigatorObject
"DBName":"dev\\ordwrk2.nsf",
"Indexes":[
{
"Indexname":"All",
"Columnname":"Sales_person",
"Columnref":true,
"Fieldref":true
},
...
ここでColumnref は DQL'viewname'.columnname 構文をフィールドで使用できるかどうか、 Fieldref は、フィールド名を DQL 用語で直接使用できるかどうかです。Dim Session As New NotesSession
Dim db As NotesDatabase
Dim IndexList As String
Dim TheQuery As NotesDominoQuery
Dim jsnav As NotesJSONNavigator
Dim el As NotesJSONElement
Set db = Session.CurrentDatabase
Set TheQuery = db.Createdominoquery()
Set jsnav = TheQuery.ListIndexes()
IndexList = jsnav.Stringify()
Print IndexList
listIndexes メソッド (DominoQuery - Java)
DQL クエリ文字列を解析して正しい構文を検証します。
Set parsestring = NotesDominoQuery.Parse(Query$)
Query$
文字列。DQL 構文のクエリ。
String
不正なクエリによって生成されるエラーメッセージによって問題を解決できます。
Dim Query$ as String
Dim ParseString as String
Dim NotesDatabase db
Dim TheQuery As NotesDominoQuery
Set db = Session.Getdatabase("my.nsf")
Set TheQuery = db.Createdominoquery()
Set Query$ = "firstname != 'Annabelle' and lastname = 'Stevens and 'Personview'.dept = 'Sales'"
Set ParseString = TheQuery.Explain(Query$)
この場合、!=演算子はエラーであり、'Stevens の先頭の単一引用符は閉じられていません。
DQL 構文の詳細については、「Domino クエリ言語」セクションを参照してください。
Parse メソッド (DominoQuery - Java)
DQLクエリ用語に最適化されたビュー索引を削除します。RemoveIndex は実稼働ビューも削除できます。削除するビュー索引の選択には注意してください。
NotesDominoQuery RemoveIndex(String IndexName)
IndexName
削除するインデックスの名前。
インデックス名で括弧を省略し、同じ名前の表示可能なビューがない場合、非表示のビューを削除します。例えば、「myview」と「(myview)」が存在する場合、「myview」は「myview」のみを削除します。しかし、「(myview)」のみが存在する場合、「myview」は「(myview)」を削除します。インデックス・ビューには、データベース内の他のビューとは異なる名前を付けることをお勧めします。
なし
Dim IndexName As String
Dim FieldName As Variant
Dim Session As New NotesSession
Dim TheQuery As NotesDominoQuery
Dim db As NotesDatabase
Set db = Session.CurrentDatabase
IndexName = "idx1"
' Remove the index
Call TheQuery.RemoveIndex(IndexName)
RemoveIndex メソッド (DominoQuery - Java)
NotesDominoQuery Execute メソッドによって作成された名前付き結果を削除します。
NotesDominoQuery.RemoveNamedResult(ResultName$)
ResultName$
文字列。NotesDominoQuery の Execute メソッドによって作成された名前付き結果セット。
なし
DominoQuery インスタンスから、以前に設定されたすべての名前付き変数と値を削除します。
NotesDominoQuery.Resetnamedvariables()
なし
なし
DominoQuery インスタンスから、以前に設定されたすべての名前付き変数と値を削除します。SetNamedVariable が、指定された名前にバインドされた値が存在することを示すエラーを返した場合は、ResetNamedVariablesを呼び出して変数の状態をクリアしてください。
既存のバインドされた変数値の上書きはサポートされていません。同じ名前で変数を設定する前に、ResetNamedVariables を呼び出して変数の状態をクリアする必要があります。
Dim Query$ as String
Dim lastname$ as String
Dim NotesDatabase db
Dim TheQuery As NotesDominoQuery
Dim doccol As NotesDocumentCollection
Set db = Session.Getdatabase("my.nsf")
Set TheQuery = db.Createdominoquery()
TheQuery.Setnamedvariable("lastname", "Stevens")
Set Query$ = "firstname" != 'Annabelle' and lastname = "lastname"
Set doccol = TheQuery.Execute(Query$)
…
TheQuery.Resetnamedvariables()
TheQuery.Setnamedvariable("salary", 55000)
TheQuery.Setnamedvariable("department", "Sales")
Set Query$ = "salary >= "salary and department = "department"
Set doccol = TheQuery.Execute(Query$)
DQL クエリ内の名前付き置換変数に値を割り当てます。
NotesDominoQuery.Setnamedvariable( variablename$, value )
variablename$
文字列。DQLクエリで疑問符の後に指定される置換変数の名前。つまり、「date_of_birth?」は DQL 構文では「?date_of_birth」と解釈されます。
value
Variant。文字列、数値、または DateTime オブジェクトになります。
なし
Dim Query As String
Dim lastname As String
Dim db As NotesDatabase
Dim TheQuery As NotesDominoQuery
Dim doccol As NotesDocumentCollection
Dim Session As New NotesSession
Set db = Session.Getdatabase("", "my.nsf")
Set TheQuery = db.CreateDominoQuery()
REM Note - substitution variable names are case sensitive.
REM Maximum subsitution variable name length is 16 bytes
Call TheQuery.Setnamedvariable("lastname", "Stevens")
Query = "firstname != 'Annabelle' and lastname = ?lastname"
Set doccol = TheQuery.Execute(Query$)
置換変数の詳細については、「Domino クエリ言語」セクションを参照してください。
setNamedVariable メソッド (DominoQuery - Java)