|
Pervasive 辞書を表すオブジェクトです。このオブジェクトは、DtoDatabase オブジェクトのために使用されていません。DtoDictionary は、Open メソッドで辞書へのパスを指定する場合にのみ使用できます。
辞書ファイルに影響するすべての操作は、このオブジェクトから行う必要があります。このオブジェクトを使用してユーザーは、辞書のオープン、辞書の作成、テーブル情報の取得、テーブルの追加または削除を行うことができます。
メモ
ASP を使って、あるいは Visual Basic の CreateObject メソッドを使ってこのオブジェクトのインスタンスを作成する場合、DtoDictionary のプログラム ID は "DTO.DtoDictionary.2"(DTO バージョン 2)または "DTO.DtoDictionary.1"(DTO バージョン 1)になります。これら 2 つのバージョンの違いについては、「DTO2」を参照してください。
Dim result as DtoResult Dim dictionary as New DtoDictionary result = dictionary.Open("d:¥MyDemodata")
データベース名または辞書のパスを使ってデータ辞書ファイル セットを開きます。
Object
|
DtoDictionary オブジェクト。
|
path
|
ローカルの場合、辞書ファイルまたは名前付きデータベースの名前があるディレクトリへの絶対パスです。
リモート サーバーに接続している場合、この引数に対し名前付きデータベースを使用することはできません。
|
user
|
DDF セットの任意のユーザー名。
|
password
|
DDF セットの任意のパスワード。
|
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
メモ
引数 path には、DDF ファイルがあるディレクトリへのパス、あるいは ローカルの DBNAMES.CFG に含まれるデータベース名を使用することができます。データベース名の作成および管理については、DtoDatabases コレクションを参照してください。
この操作は、辞書ファイルのセットを開く手段として使用されます。このセットには、FILE.DDF、INDEX.DDF および FIELD.DDF が含まれます。また、多くのオプション DDF ファイルも含まれています。メモリを解放するために Close メソッドを呼び出すことを忘れないでください。辞書セットを一度開くと、Close メソッドが呼び出されるまでほかの誰もその辞書セットに変更を行うことができません。
このメソッドで返されるエラーの詳細については、DtoSession オブジェクトの Error プロパティを使って取得することができます。
Dim dictionary as new DtoDictionary Dim result as DtoResult result = dictionary.Open("d:¥MyDemodata")
空のデータ辞書ファイルのセットを作成します。
Object
|
DtoDictionary オブジェクト。
|
path
|
辞書ファイルを作成するディレクトリへの絶対パス。
|
username
|
DDF セットの任意のユーザー名。
|
password
|
DDF セットの任意のパスワード。
|
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
path 引数に指定したディレクトリが存在しなかった場合、そのディレクトリの作成を試行します。操作が成功した場合、file.ddf、field.ddf、index.ddf のセットが作成されます。
メモリを解放するために Close メソッドを呼び出すことを忘れないでください。辞書セットが一度作成されると、その他のクライアントは Close メソッドが呼び出されるまでその辞書セットを開くことも変更を行うこともできません。
このメソッドで返されるエラーの詳細については、Error プロパティを使って取得することができます。Open メソッドとは異なり、path パラメーターに指定できるのは絶対パスのみです。
Dim Dictionary As New DtoDictionary Dim result as DtoResult result = Dictionary.Create("C:¥TEST", "login", "password") If NOT result = Dto_Success Then MsgBox "Error"+ Session.Error(result) End If
データ辞書ファイルのセットを閉じます。Open メソッドを使って開いている、または Create メソッドを使って作成されていることが前提です。
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
辞書ファイルのセットを Open メソッドを使って開いている、または Create メソッドを使って作成した後にこのメソッドを呼び出します。エラー情報は Error プロパティを使って取得することができます。
Dim dictionary as new DtoDictionary Dim result as DtoResult result = dictionary.Open("d:¥MyDemodata") ' 'ここで操作を実行 ' result = dictionary.Close
データ辞書ファイルにテーブル情報を追加し、定義を一致させるためにデータ ファイルを作成します。
メモ
同じディレクトリに、ファイル名が同一で拡張子のみが異なるようなファイルを置かないでください。たとえば、同じディレクトリ内に Invoice.btr と Invoice.mkd という名前のデータ ファイルを作成しないでください。このような制限が設けられているのは、データベース エンジンがさまざまな機能でファイル名のみを使用し、ファイルの拡張子を無視するためです。ファイルの識別にはファイル名のみが使用されるため、ファイルの拡張子だけが異なるファイルは、データベース エンジンでは同一のものであると認識されます。
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
このメソッドは、DDF ファイルにテーブル定義を追加し、テーブルの Location プロパティで指定したデータ ファイルの作成を試みます。Location プロパティが空のままの場合、このメソッドでは tableName.mkd という名前のデータ ファイルの作成を試みます。この名前のテーブルが既に存在していた場合は、その名前に 1 つの番号を追加して再度作成を試みます。
この操作が正常終了するためには、少なくとも 1 列が定義されていなければなりません。
以下の例では、辞書オブジェクトを作成し、次にその辞書ファイルにテーブルを追加する方法を示します。
Dim Dictionary As New DtoDictionary Dim Table As DtoTable Dim Tables As DtoTables Dim result As dtoResult Dim Columns As DtoColumns Dim Indexes As DtoIndexes Dim Column As DtoColumn Dim Index As DtoIndex Dim Segments As DtoSegments Dim Segment As DtoSegment result = Dictionary.Create("C:¥TEST", "login", "password") If NOT result = Dto_Success Then MsgBox "Error"+ Session.Error(result) End If ' ******* テーブルの追加の開始 ******************* Set Table = New DtoTable Set Column = New DtoColumn With Column .Decimal = 0 .Flags = dtoColumnNullable .ISR = "" .Name = "F_Int" .Number = 0 .Size = 4 .Type = dtoTypeInteger End With Table.Columns.Add Column Set Column = New DtoColumn With Column .Decimal = 4 .Flags = dtoColumnNullable + dtoColumnCaseInsensitive .ISR = "" .Name = "F_Str" .Number = 1 .Size = 55 .Type = dtoTypeLString End With Table.Columns.Add Column Set Column = New DtoColumn With Column .Decimal = 4 .Flags = dtoColumnCaseInsensitive .ISR = "" .Name = "F_Str_Second" .Number = 2 .Size = 100 .Type = dtoTypeLString End With Table.Columns.Add Column Set Column = New DtoColumn With Column .Decimal = 10 .Flags = dtoColumnDefault .ISR = "" .Name = "F_Float" .Number = 3 .Size = 8 .Type = dtoTypeBFloat End With Table.Columns.Add Column 'インデックスを追加 Set Index = New DtoIndex result = Index.AddSegment("F_Int", 0) Set Segment = New DtoSegment Segment.Number = 0 Segment.ColumnName = "F_Int" Segment.Flags = dtoSegmentAscending Index.Segments.Add Segment Index.Name = "FintInd" Index.Number = 0 Index.Flags = dtoIndexModifiable Table.Indexes.Add Index '2 番目のインデックスを追加 Set Index = New DtoIndex Set Segment = New DtoSegment Segment.Number = 0 Segment.ColumnName = "F_Str" Segment.Flags = dtoSegmentAscending Index.Segments.Add Segment Set Segment = New DtoSegment Segment.Number = 1 Segment.ColumnName = "F_Str_Second" Segment.Flags = dtoSegmentAscending Index.Segments.Add Segment Index.Name = "FStrTagInd" Index.Number = 1 Index.Flags = dtoIndexModifiable Table.Indexes.Add Index Table.Overwrite = true Table.Flags = dtoTableTrueNullable Table.Name = "Table3" result = Dictionary.AddTable(Table) If NOT result = Dto_Success Then MsgBox "Error"+ Session.Error(result) End If
現在の辞書からテーブルを削除します。
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
この操作を成功させるには、辞書が正常に開かれている必要があります。
result = Dictionary.DropTable("Table3", true) If NOT result = Dto_Success Then MsgBox "Error"+ Session.Error(result) End If
辞書オブジェクトをリフレッシュします。
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
辞書オブジェクトおよび対応する DDF ファイルを削除します。
result
|
メソッド呼び出しの結果を示す DtoResult(Long 型の値)。DtoSession オブジェクトの Error プロパティを使って結果の説明を取得します。
|
|