Microsoft Jet and Replication オブジェクトの概要

Microsoft® Jet and Replication オブジェクト (JRO) は、Microsoft Jet データベース エンジン固有のアプリケーションに機能を追加します。Jet and Replication オブジェクトは、ADO の Connection オブジェクトに接続されるため、Microsoft® ActiveX® データ オブジェクト (ADO) を基礎としています。ただし、Jet and Replication オブジェクトは、Microsoft Jet データベースでのみ機能します。ADO および Connection オブジェクトの詳細については、「Microsoft ADO プログラマーズ リファレンス」、またはADO の Web サイト (http://www.microsoft.com/japan/developer/data) を参照してください。

Jet and Replication オブジェクトでは、次のことができます。

  • データベース レプリカ セットの作成と同期

  • データベースの最適化、およびパスワードと暗号化など最適化されたデータベースのオプションの指定

  • 変更された保留中のデータをデータベースに書き込み、データベースからメモリに最新のデータを読み込むことによって、メモリ キャッシュを更新

Jet エンジン

Jet データベース エンジンは、JetEngine オブジェクトによって表されます。JetEngine オブジェクトでは、暗号化されたデータのオプションを含む最適化された Jet データベースのコピーの作成、データベース エンジンのバージョンの変更、ユーザーの ID とパスワードの引渡し、システムのデータベース情報またはレジストリ情報の指定、国別情報特有の照合順序の設定または上書き、リレーションシップの解除、破損したレプリカの修復などを行います。また、データベース操作のキャッシュを完全にフラッシュすることにより、保留中であったデータへの変更をすべて、強制的に処理させることができます。

レプリカ

レプリカ データベースは、Replica オブジェクトによって表されます。Replica オブジェクトでは、新しいレプリケート データベースの作成、あるレプリカ (完全、部分、デザイン マスター) のオプションの定義、2 つのレプリカ間の変更の同期、同期中に発生する競合の判断などを行います。

フィルタ

部分レプリカは、Replica オブジェクトの Filters コレクションに収集される Filter オブジェクトを使って作成します。Filter オブジェクトは、レプリケートされるレコードを制限する条件を定義します。フィルタは、部分レプリカのテーブルまたはリレーションに適用できます。

詳細については、それぞれのオブジェクト、プロパティ、メソッドの説明、または次のトピックを参照してください。

  • Jet and Replication オブジェクト

  • Jet and Replication コレクション

  • Jet and Replication メソッド

  • Jet and Replication プロパティ

  • Jet and Replication の例


Jet and Replication オブジェクト モデル

次の図は、Jet and Replication オブジェクトの表し方と関連を示しています。


Jet and Replication オブジェクト

JRO オブジェクトの概要

オブジェクト | 説明
Filter | レプリケート データベースのレコードセットを制限する、抽出条件を指定します。
JetEngine | データベースの最適化およびキャッシュからのデータの更新など、Jet エンジン固有の機能の制御を提供します。
Replica | レプリケート データベースのコピーを表します。

Jet and Replication オブジェクトは、Filter、Replica、JetEngine という 3 つのオブジェクトで構成されています。Filter オブジェクトは、Replica の Filters コレクションに含めることができます。

Filter オブジェクト

Filter オブジェクトの抽出条件を指定することによって、部分レプリカを作成できます。フィルタ抽出条件では、レプリケートする特定のデータを選択できます。たとえば、Customer テーブルから、特定の居住地域からなるレコードを選択してレプリケートすることができます。

JetEngine オブジェクト

JetEngine オブジェクトを使って、データベースの最適化および、保留中のデータの変更をキャッシュから更新します。最適化データベースは、スペースの節約、データの暗号化など新規データベース コピーのオプションの指定、データベース エンジンのバージョン変更、ロケールによる照合順序の設定などを行います。保留中のデータベース操作をすべて強制的に処理して、キャッシュからデータを更新します。これは、多数のユーザーが使用しデータ処理が多数発生する環境において、レコードセット内のデータを最新の状態にします。

Replica オブジェクト

Replica オブジェクトを使って、レプリケート データベースの作成および管理を行います。レプリカでは、デザイン マスターの識別、新規レプリカの作成、データベースのオブジェクトのレプリケート機能についての情報の取得、2 つのレプリカ間の変更の同期などを行います。

Jet and Replication オブジェクトのプロパティおよびメソッドの詳細については、それぞれのオブジェクトのトピックを参照してください。


Filter オブジェクト (JRO)

Filter オブジェクト

レプリケート データベースのレコードセットを制限する、抽出条件を指定します。

解説

Filter オブジェクトを使って、データベース内のレコードのサブセットをレプリケートします。フィルタを使うと、抽出条件に適合するデータを含む部分レプリカを作成できます。Filter オブジェクトは、レプリカの Filters コレクションに含めることができます。

Filter オブジェクトのプロパティを使って、次のことを行います。

  • TableName プロパティで、適用されるフィルタの、テーブル名を指定します。

  • FilterType プロパティを使って、フィルタがテーブルまたはリレーションシップに基づいているかどうかを判断します。

  • FilterCriteria プロパティで、完全レプリカからレプリケートするために満たす必要のある、レコードの抽出条件を指定します。


JetEngine オブジェクト (JRO)

JetEngine オブジェクト

データベースの最適化およびキャッシュからのデータの更新など、Jet エンジン固有の機能の制御を提供します。

解説

JetEngine を使って、Jet データベース エンジンの機能にアクセスします。JetEngine オブジェクトは、Jet データ ソースに接続されたときにのみ機能します。

JetEngine オブジェクトのメソッドを使って、次のことを行います。

  • CompactDatabase メソッドで、データベースの最適化および別のデータベース プロパティの修正を行います。

  • RefreshCache メソッドで、キャッシュに変更を保留中のデータを強制的に処理し、レコードセットまたはデータベースの内容を最新にします。


Replica オブジェクト (JRO)

Replica オブジェクト

レプリケート データベースのコピーを表します。

解説

Replica オブジェクトのコレクション、メソッド、プロパティを使って、次のことを行います。

  • Filters コレクションで、レプリカのフィルタにアクセスします。

  • CreateReplica メソッドで、新規レプリカを作成します。

  • GetObjectReplicability、SetObjectReplicability メソッドで、オブジェクトがローカルまたはレプリケートであるかどうかを判断します。

  • MakeReplicable メソッドで、データベースをレプリケート可能にします。

  • PopulatePartial メソッドで、部分レプリカを取得します。

  • Synchronize メソッドで、2 つのレプリカを同期します。

  • ActiveConnection プロパティで、レプリカに接続される ADO Connection オブジェクト、または有効な接続文字列を指定します。

  • ConflictFunction プロパティで、独自の競合を解決するコードを指定します。

  • ConflictTables プロパティで、同期中に発生したテーブルの競合を含む Recordset を返します。

  • DesignMasterId プロパティで、レプリカ セットのデザイン マスターの一意の識別子を指定します。

  • Priority プロパティで、競合の解決中に使用するレプリカの相対的な優先順位を判断します。

  • RetentionPeriod プロパティで、レプリケート履歴の長さを指定します。

  • ReplicaId プロパティで、レプリカの一意の識別子を返します。

  • ReplicaType プロパティで、レプリカが、完全、部分、デザイン マスターのいずれであるかを判断します。

  • Visibility プロパティで、レプリカが、グローバル、ローカル、匿名のいずれであるかを判断します。


Jet and Replication コレクション

Jet and Replication オブジェクトには、1 つのコレクション、Filters が含まれています。Replica オブジェクトは Filters コレクションを含めることができます。Filters コレクションは、レプリケート データベースのレコードセットを制限する抽出条件の定義のための Filter オブジェクトを含みます。

Filters コレクションは標準の ADO コレクションで、Count、Append、Delete、Item、および Refresh というプロパティとメソッドを使ってメンバにアクセスします。


Filters コレクション (JRO)

Filters コレクション

レプリカの Filter オブジェクトすべてを含みます。

解説

Replica オブジェクトは Filters コレクションを含めることができます。

Filters コレクションのプロパティおよびメソッドを使って、次のことを行います。

  • Count プロパティで、コレクションに含まれるフィルタの数を返します。

  • Item プロパティで、コレクションの列にアクセスします。

  • Append メソッドで、コレクションに新規フィルタを追加します。

  • Delete メソッドで、コレクションからフィルタを削除します。

  • Refresh メソッドで、現在のデータベースのスキーマを反映するように、コレクションのオブジェクトを更新します。


Jet and Replication メソッド

JRO メソッドの概要

メソッド | 説明
Append | 部分 Replica の Filters コレクションに、新規の Filter オブジェクトを追加します。
CompactDatabase | 閉じられたデータベースのコピーおよび最適化、データベースのバージョンを変更するオプションの指定、照合順序の指定、暗号化の指定、その他のオプションの指定を行います。
CreateReplica | 現在のレプリケート データベースの新規レプリカを作成します。
Delete | Replica の Filters コレクションから Filter オブジェクトを削除します。
GetObjectReplicability | オブジェクトが、ローカルまたはレプリケートのどちらであるかを示します。
MakeReplicable | データベースをレプリケート可能にします。
PopulatePartial | 部分レプリカを取得します。
Refresh | コレクションのオブジェクトを更新して、プロバイダから利用できるオブジェクト、およびプロバイダに指定されるオブジェクトに反映します。
RefreshCache | 保留中の書き込みをすべて .mdb ファイルに強制的に書き込み、.mdb ファイルの最新データでメモリを更新します。
SetObjectReplicability | オブジェクトがローカルとレプリカのどちらであるかを設定します。
Synchronize | 2 つのレプリカを同期します。


Append メソッド (JRO)

Append メソッド

部分 Replica の Filters コレクションに、新規の Filter オブジェクトを追加します。

構文

Filters.Append(TableName [, FilterType], FilterCriteria)

パラメータ

TableName TableName プロパティが適用されているフィルタの、テーブル名を指定する文字列型 (String) の値を指定します。

FilterType フィルタがテーブルまたはリレーションシップのどちらに基づいているかを判断する、FilterType プロパティを示す列挙型 (Enum) の値を指定します。

FilterCriteria FilterCriteria プロパティを使って完全レプリカからレプリケートされる、レコードセットが満たす必要のある抽出条件を指定する文字列型 (String) の値を指定します。

解説

レプリカが ReplicaType プロパティによって定義された部分レプリカではない場合、エラーが発生します。同じ名前または同じ種類のフィルタが既に存在する場合も、エラーが発生します。

TableName の同じ値を使って、FilterType の jrFilterTypeTable を 2 回追加しようとした場合、エラーが発生します。


CompactDatabase メソッド (JRO)

CompactDatabase メソッド

閉じられたデータベースのコピーおよび最適化、データベースのバージョンを変更するオプションの指定、照合順序の指定、暗号化の指定、その他のオプションの指定を行います。

構文

JetEngine.CompactDatabase(SourceConnection, DestConnection)

パラメータ

SourceConnection 最適化されるコピー元データベースへの接続を指定する文字列型 (String) の値を指定します。SourceConnection によって指定されたデータベースが既に開いている場合、エラーが発生します。

DestConnection 最適化によって、作成されるコピー先データベースへの接続を指定する文字列型 (String) の値を指定します。DestConnection によって指定されたデータベースが既に存在する、または同じ名前の別のファイルが既に存在する場合、エラーが発生します。

解説

接続プロパティは、データベースを最適化する情報を指定するために使います。少なくとも、Data Source プロパティは、SourceConnection および DestConnection の両方を指定する必要があります。次の表は、このメソッドで使用できる、接続プロパティの一覧です。ほかの接続プロパティはすべて無視されます。

プロパティ | コピー元 | コピー先 | 説明
Provider |  |  | データ ソースへの接続に使う、プロバイダの名前を示します。このプロパティを指定しない場合は、Microsoft.Jet.OLEDB.4.0 プロバイダが使われます。 コピー元文字列のプロバイダ名がコピー先文字列のプロバイダ名と異なる場合、エラーが発生します。
Data Source |  |  | データベースの名前を示します。このプロパティは、コピー元およびコピー先接続の両方に必要です。
User Id |  |  | コピー元データベースがセキュリティ設定されている場合、ユーザーの名前を示します。
Password |  |  | コピー元データベースがセキュリティ設定されている場合、ユーザーのパスワードを示します。
Locale Identifier |  |  | 新規データベースのロケール識別子を示します。このプロパティを省略した場合、コピー先データベースは規定値の 0x409 (General) を持ちます。 ロケールは、データベースの文字列を比較する照合順序を指定します。コピー先データベースの値については、解説を参照してください。
Jet OLEDB:Database Password |  |  | データベースがパスワードによってセキュリティ設定されている場合、そのパスワードを示します。
Jet OLEDB:Engine Type |  |  | 開こうとしているコピー元データベースのバージョン、または作成される新規データベースのバージョンを示します。次に、使用できる OLE DB エンジンの種類を示します。 1 - JET Version 1,0 2 - JET Version 1.1 3 - JET Version 2.x 4 - JET Version 3.x 5 - JET Version 4.x コピー先データベースについてこのプロパティを省略した場合、既定値の 5 が設定されます。コピー先データベースの値として、コピー元データベースの値より前のバージョンを指定することはできません。
Jet OLEDB:Registry Path |  |  | Microsoft Jet Database Engine の値を含む、Windows のレジストリ キーについての情報を設定します。
Jet OLEDB:System Database |  |  | システム データベースの場所を示します。
Jet OLEDB:Encrypt Database |  |  | 新規データベースを暗号化するかどうかを示します。このプロパティを省略した場合、データベースは暗号化されません。
Jet OLEDB:Don't Copy Locale on Compact |  |  | データベースの並べ替え順序を使用することを示し、列ごとのロケール設定を上書きします。ブール型 (Boolean) の値です。
Jet OLEDB:Compact Without Relationships |  |  | 新規データベースにリレーションシップをコピーするかどうかを示します。ブール型 (Boolean) の値です。
Jet OLEDB:Compact Without Replica Repair |  |  | 破損したレプリケート データベースを、ほかのレプリカで修復するかどうか、また修復するためのほかのレプリカがあるかどうかを示します。ブール型 (Boolean) の値です。

このメソッドを使って、"同じ場所" の最適化、すなわちコピー元データベースとコピー先データベースが同じであるような最適化はできません。プロバイダが Jet データベースの最適化をサポートしていない場合は、エラーが発生します。

解説

次の表は、コピー先データベースおよびロケール識別子 (LCID) の値の一覧です。

説明 | LCID
Chinese Punctuation | 0x00000804
Chinese Stroke Count | 0x00020804
Chinese Stroke Count (Taiwan) | 0x00000404
Chinese Bopomofo (Taiwan) | 0x00030404
Croatian | 0x0000041a
Czech | 0x00000405
Estonian | 0x00000425
French | 0x0000040c
General | 0x00000409
Georgian Modern | 0x00010437
German Phone Book | 0x00010407
Hungarian | 0x0000040e
Hungarian Technical | 0x0001040e
Icelandic | 0x0000040f
Japanese | 0x00000411
Japanese Unicode | 0x00010411
Korean | 0x00000412
Korean Unicode | 0x00010412
Latvian | 0x00000426
Lithuanian | 0x00000427
Macedonian | 0x0000042f
Norwegian/Danish | 0x00000414
Polish | 0x00000415
Romanian | 0x00000418
Slovak | 0x0000041b
Slovenian | 0x00000424
Spanish Traditional | 0x0000040a
Spanish Modern | 0x00000c0a
Swedish/Finnish | 0x0000041d
Thai | 0x0000041e
Turkish | 0x0000041f
Ukrainian | 0x00000422
Vietnamese | 0x0000042a

注意 General の並べ替え順序には、次の言語を含みます。Africaans、Albanian、Arabic、Basque、Bulgarian、Byelorussian、Catalan、Dutch、English、Faeroese、Farsi、German - Standard、Greek、Hebrew、Hindi、Indonesian、Italian、Malay、Portuguese、Russian、Serbian、Swahili、Urdu。


CreateReplica メソッド (JRO)

CreateReplica メソッド

現在のレプリケート データベースの新規レプリカを作成します。

構文

Replica.CreateReplica(ReplicaName, Description [, ReplicaType] [, Visibility]
[, Priority] [, Updatability])

パラメータ

ReplicaName 作成される完全レプリカまたは部分レプリカの、名前およびパスを指定する文字列型 (String) の値を指定します。指定する名前が 255 文字を超える場合、エラーが発生します。

Description 作成されるレプリカを説明する文字列型 (String) の値を指定します。

ReplicaTyp 省略可能です。作成されるレプリカの種類を示す列挙型 (Enum) の値を指定します。既定値は jrRepTypeFull です。詳細については、ReplicaType プロパティを参照してください。次の定数が、ReplicaType に有効な値です。

定数 | 説明
JrRepTypeFull | レプリカは完全レプリカです。
JrRepTypePartial | レプリカは部分レプリカです。

Visibility 省略可能です。レプリカの参照可能範囲を示す列挙型 (Enum) の値を指定します。既定値は jrRepVisibilityGlobal です。詳細については、Visibility プロパティを参照してください。次の定数が、Visibility に有効な値です。

定数 | 説明
JrRepVisibilityGlobal | レプリカはグローバルです。
JrRepVisibilityLocal | レプリカはローカルです。
JrRepVisibilityAnon | レプリカは匿名です。

Priority 省略可能です。競合の解決時に使用するレプリカの優先順位を表す長整数型 (Long) の値を指定します。既定値は –1 で、データベースによって既定値が決定されることを示します。グローバル レプリカでは、既定での優先順位は、親レプリカの優先順位の 90% の割合です。さらに、グローバル レプリカに有効な値は将来制限される可能性があります。ユーザーがデータベースの管理者の場合、すべての範囲の値が有効です。そうでない場合、優先順位の最大値は、親レプリカの優先順位の 90% の割合です。ローカルおよび匿名レプリカでは、値は常に 0 で変更できません。この値は、レプリカの作成時に強制的に与えられ、ほかのすべての値は無視されます。詳細については、Priority プロパティを参照してください。

Updatability 省略可能です。有効な更新の種類を示す列挙型 (Enum) の値を指定します。既定値は jrRepUpdFull です。定数 jrRepUpdReadOnly を指定すると、ユーザーは新規レプリカのレプリケート可能なオブジェクトのスキーマとレコードを修正できなくなります。ただし、新規レプリカをレプリカ セットのほかのメンバと同期させると、デザインとデータの変更は新規レプリカに伝えられます。次の定数が、Updatability に有効な値です。

定数 | 説明
jrRepUpdFull | レプリカは更新できます。
jrRepUpdReadOnly | レプリカは読み取り専用です。

解説

レプリカを開くのに失敗し、ActiveConnection プロパティが設定されない場合、エラーが発生します。

このメソッドは、データベースがレプリケート可能な場合にのみ使用できます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのメソッドの使用を試みた場合、エラーが発生します。

レプリカは、まったく同じ属性または作成されたレプリカより制限度の高い属性の、どちらかを継承します。たとえば、読み取り専用グローバル レプリカは、読み取り専用のローカルまたは匿名レプリカのみを作成できます。ローカル レプリカは、同じ属性の別のローカル レプリカのみを作成できます。


Delete メソッド (JRO)

Delete メソッド

Replica の Filters コレクションから Filter オブジェクトを削除します。

構文

Filters.Delete(Index)

パラメータ

Index 削除する Filter オブジェクトの名前またはインデックスを指定する、バリアント型 (Variant) の値を指定します。

解説

2 つのフィルタが同じ名前の場合、最初のフィルタが削除されます。同じ名前の複数のフィルタを削除する場合、順序値を使って明示的にフィルタを削除します。

名前または順序で指定されたフィルタがコレクションに存在しない場合、エラーが発生します。


GetObjectReplicability メソッド (JRO)

GetObjectReplicability メソッド

オブジェクトが、ローカルまたはレプリケートのどちらであるかを示します。

構文

Set ReturnValue = Replica.GetObjectReplicability(ObjectName, ObjectType)

戻り値

オブジェクトがレプリケートかどうかを示す、ブール型 (Boolean) の値を指定します。データベースがレプリケート可能でなければ、このメソッドは既定ではすべてのオブジェクトに True を返します。True は、データベースがレプリケート可能である場合、オブジェクトがレプリケート可能であることを示します。レプリケート データベースでは、このメソッドは既定ではすべての新規オブジェクトに False を返します。False は、オブジェクトがレプリケートされないことを示します。

パラメータ

ObjectName レプリケートの状態を取得するオブジェクトの名前を指定する文字列型 (String) の値を指定します。

ObjectType ObjectName によって指定されたオブジェクトの種類を指定する文字列型 (String) の値を指定します。

解説

GetObjectReplicability メソッドは、オブジェクトが現在レプリケートであるか、将来レプリケートできるかどうかを示します。

ObjectName および ObjectType パラメータは、オブジェクトの名前 (Customers など) またはオブジェクトのコンテナ (Tables など) を示す文字列です。指定した名前および指定した種類のオブジェクトがデータベースに存在しない場合、エラーが発生します。指定する文字列が 64 文字を超える場合、エラーが発生します。

オブジェクトのレプリケート機能の変更の詳細については、SetObjectReplicability メソッドを参照してください。

ObjectName および ObjectType パラメータによって指定されたオブジェクトが存在しない場合、エラーが発生します。


MakeReplicable メソッド (JRO)

MakeReplicable メソッド

データベースをレプリケート可能にします。

構文

Replica.MakeReplicable([ConnectString] [, ColumnTracking])

パラメータ

ConnectString 省略可能です。レプリケート可能にするデータベースの名前およびパスを指定する文字列型 (String) の値を指定します。ConnectString は ActiveConnection プロパティを上書きします。

ColumnTracking 省略可能です。列または行によって追跡を変更するかどうかを示すブール型 (Boolean) の値を指定します。既定値は True です。同じフィールドを同時に変更する場合、列レベルの競合の解決は、2 つのレコードのマージおよび競合のレポートによって行います。同じ列で頻繁に更新が重なる場合は、このオプションを設定するとパフォーマンスが向上します。

解説

ConnectString パラメータを省略し、ActiveConnection プロパティが排他モードに設定されていない場合、エラーが発生します。このメソッドが成功すると、ActiveConnection プロパティが設定されます。


PopulatePartial メソッド (JRO)

PopulatePartial メソッド

部分レプリカを取得します。

構文

Replica.PopulatePartial(FullReplica)

パラメータ

FullReplica データに取得するレプリカのパスおよびファイル名を表す文字列型 (String) の値を指定します。

解説

部分レプリカを完全レプリカと同期させると、部分レプリカに "オーファン" レコードを作成することができます。たとえば、"Region = 'CA'" の FilterCriteria で Coutomers テーブル用の Filter を持つとします。ユーザーが部分レプリカの顧客居住地域を NY から CA に変更し、Synchronize メソッドを使った同期が発生する場合、変更は完全レプリカに伝えられます。しかし、部分レプリカの NY を含むレコードは、レプリカの抽出条件を満たさないため、オーファンとなります。

オーファン レコードの問題を解決するために、PopulatePartial メソッドを使います。PopulatePartial メソッドは Synchronize メソッドと似ていますが、完全レプリカで部分レプリカ内のすべての変更を同期させ、部分レプリカ内のすべてのレコードを削除して、現在のレプリカ フィルタに基づいて部分レプリカを再取得します。レプリカ フィルタを変更しない場合であっても、PopulatePartial は部分レプリカ内のすべてのレコードを消去し、現行のフィルタに基づいて再取得します。

一般的に、部分レプリカを作成するとき、およびレプリカ フィルタを変更するときはいつも、PopulatePartial メソッドを使用します。アプリケーションがレプリカ フィルタを変更する場合、次の手順に従います。

  1. フィルタが変更される部分レプリカで完全レプリカを同期します。

  2. Filter オブジェクトを使って、レプリカ フィルタを変更します。

  3. PopulatePartial メソッドを呼び出して、部分レプリカからすべてのレコードを削除し、新規レプリカ フィルタ抽出条件を持つ完全レプリカからすべてのレコードを転送します。

レプリカ フィルタが変更され、最初に PopulatePartial を呼び出さずに Synchronize メソッドが呼び出された場合、トラップ可能なエラーが発生します。

PopulatePartial メソッドは、排他アクセスのために開かれる部分レプリカにのみ呼び出されます。さらに、部分レプリカ自身内で実行されているコードから、PopulatePartial メソッドを呼び出すことはできません。代わりに、完全レプリカまたは別のデータベースから排他的に部分レプリカを開いて、PopulatePartial メソッドを呼び出します。

注意 部分レプリカの消去および再取得の前に PopulatePartial によって一方向の同期が実行されます。PopulatePartial を呼び出す前に Synchronize を呼び出すことお薦めします。直接またはインターネット同期モードを使用するときに、Synchronize の呼び出しに失敗した場合、トラップ可能なエラーが発生します。PopulatePartial メソッド (部分レプリカ内のすべてのレコードを削除する) で処理されたかどうかを判断するために、このエラーを使用できます。直接同期ではトラップ可能なエラーは発生しません。詳細については、Synchronize メソッドを参照してください。PopulatePartial メソッドが自分自身によって呼び出され、レコードの同期中にエラーが発生した場合、部分レプリカのレコードは消去されず、目的の結果を得られない場合があります。

このメソッドは、データベースがレプリケート可能で PartialReplica に使用されている場合にのみ使うことができます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのメソッドの使用を試みた場合、エラーが発生します。


Refresh メソッド (JRO)

Refresh メソッド

コレクションのオブジェクトを更新して、プロバイダから利用できるオブジェクト、およびプロバイダに指定されるオブジェクトに反映します。

構文

collection.Refresh


RefreshCache メソッド (JRO)

RefreshCache メソッド

保留中の書き込みをすべて .mdb ファイルに強制的に書き込み、.mdb ファイルの最新データでメモリを更新します。

構文

JetEngine.RefreshCache(Connection)

パラメータ

Connection キャッシュを更新する、ADO Connection オブジェクトです。接続が有効でない場合、エラーが発生し、ADO Connection を開きます。RefreshCache メソッドをサポートしていない接続をプロバイダが使用した場合、エラーが発生します。

解説

データベースへの複数の接続を持たないシングル ユーザー環境では、このメソッドを使用する必要はありません。RefreshCache メソッドによって、データベース エンジンはデータをディスクに強制的に書き込み、メモリ上のロックを解放するため、このメソッドをマルチユーザー環境で使用するとパフォーマンスが向上します。


SetObjectReplicability メソッド (JRO)

SetObjectReplicability メソッド

オブジェクトがローカルとレプリカのどちらであるかを設定します。

構文

Replica.SetObjectReplicability(ObjectName, ObjectType, Replicability)

パラメータ

ObjectName レプリケートの状態を取得するオブジェクトの名前を指定する文字列型 (String) の値を指定します。

ObjectType ObjectName によって指定されたオブジェクトの種類を指定する文字列型 (String) の値を指定します。

Replicability オブジェクトが現在レプリケートか、将来レプリケートできるかどうかを指定するブール型 (Boolean) の値を指定します。

解説

SetObjectReplicability メソッドは、ローカル オブジェクトまたはレプリケート オブジェクトを作成します。データベースがレプリケート可能でない場合、Replicability パラメータが False に設定され、データベースがレプリケート可能にされたときオブジェクトがローカルに保たれることを示します。レプリケート可能でないデータベースのオブジェクトは、既定ではレプリケート可能になります。しかし、レプリケート可能データベースに作成された新規オブジェクトは、既定ではレプリケート可能になりません。レプリケート可能データベース内の新規オブジェクトをレプリケート可能にするには、Replicability パラメータを True に設定します。

ObjectName および ObjectType パラメータは、オブジェクトの名前 (Customers など) またはオブジェクトのコンテナ (Tables など) を示す文字列です。指定した名前および種類のオブジェクトがデータベースに存在しない場合、エラーが発生します。指定する文字列が 64 文字を超える場合、エラーが発生します。

SetObjectReplicability は次に示す Microsoft Access コレクションのオブジェクトを無視します。Forms、Reports、DataAccessPages、Macros、Modules。Access システム テーブル、MSysAccessObjects は、これらのオブジェクトのレプリケート機能を制御し、データベースをレプリケート可能にする前にのみ設定できます。既定値は True です。

オブジェクトのレプリケート機能を判断する詳細については、GetObjectReplicability メソッドを参照してください。


Synchronize メソッド (JRO)

Synchronize メソッド

2 つのレプリカを同期します。

構文

Replica.Synchronize(Target [, SyncType] [, SyncMode])

パラメータ

Target 同期するレプリカのパスおよびファイル名、ターゲット レプリカを管理する Synchronizer の名前、ターゲット レプリカを含むインターネット サーバーの名前を指定する文字列型 (String) の値を指定します。

SyncType 省略可能です。実行する同期の種類を指定する列挙型 (Enum) の値を指定します。SyncType パラメータの既定値は jrSyncTypeImpExp です。次の定数が、SyncType に有効な値です。

定数 | 説明
JrSyncTypeExport | 現在のレプリカからターゲット レプリカへ、変更を送ります。
JrSyncTypeImport | ターゲット レプリカから現在のレプリカへ、変更を送ります。
JrSyncTypeImpExp | 既定値です。現在のレプリカからターゲット レプリカへ、およびその逆に、変更を送ります。

SyncMode 省略可能です。同期の方法を指定する列挙型 (Enum) の値を指定します。jrSyncModeIndirect は SyncMode パラメータの既定値です。次の定数が、SuncMode に有効な値です。

定数 | 説明
JrSyncModeIndirect | 既定値です。間接同期を行います。
JrSyncModeDirect | 直接同期を行います。
JrSyncModeInternet | インターネット経由で間接同期を行います。

解説

Target パラメータに識別されるレプリカは、同じレプリカ セットの一部である必要があります。両方のレプリカが同じ ReplicaId プロパティ設定を持つ場合、または 2 つの異なるレプリカ セットのデザイン マスターである場合、同期は失敗します。これは、プロバイダによって、強制的に行われます。

SyncMode が間接同期であるとき、Target パラメータの値には Synchronizer の名前を指定する必要があります。Jet Replication は "ドロップボックス" に変更を残します。Synchronizer はターゲット レプリカの変更の検出と適用を管理します。間接同期が正しく動作するためには、Synchronizer をローカル コンピュータおよびターゲット コンピュータの両方で実行する必要があります。

SyncMode がインターネット間接同期であるとき、Target パラメータの値には、LAN (ローカル エリア ネットワーク) のパスではなく URL (ユニバーサル リソース ロケータ) を指定する必要があります。Target パラメータに URL が指定されていて、SyncMode パラメータが jrSyncModeInternet でない場合、エラーが発生します。

SyncMode が直接同期であるとき、両方のレプリカが同時に開かれて同期されます。WAN 上またはリモート ダイヤルアップ ネットワーク上では、間接同期を使用することによって、信頼性およびパフォーマンスが向上します。Target パラメータを ServerName.Database.Publication に設定し、かつ直接同期 (jrSyncModeDirect) を実行することによって、SQL Server および Jet データベースの両方を含むレプリカ セットの SQL Server レプリカと同期することもできます。Target パラメータが ServerName.Database.Publication で、SyncMode が直接同期でない場合、エラーが発生します。

このメソッドは、データベースがレプリケート可能な場合にのみ使用できます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのメソッドの使用を試みた場合、エラーが発生します。

レプリケーション マネージャは Synchronizer のインストールと設定に必要であり、Replman は、間接およびインターネット同期の状態の監視に使用する必要があります。これは、Microsoft Office 2000, Developer Edition でのみ利用可能です。レプリケーション マネージャの詳細については、Microsoft Access ヘルプのレプリケーション マネージャの項目を参照してください。


Jet and Replication プロパティ

JRO プロパティの概要

プロパティ | 説明
ActiveConnection | Replia が属する Connection オブジェクトを示します。
ConflictFunction | 同期中の競合の解決に使用する、カスタムの競合解決関数の名前を示します。
ConflictTables | テーブルの一覧に含める、および競合テーブルに関連付けられる、Recordset を指定します。
Count | コレクションのオブジェクト数を示します。
DesignMasterId | レプリカ セットのデザイン マスターの一意の識別子です。
FilterCriteria | 完全レプリカからレプリケートするためにレコードが満たす必要のある、抽出条件を指定します。
FilterType | フィルタの種類を示します。
Item | 名前またはインデックスによって、コレクションの指定されたメンバを返します。
Priority | 競合の解決に使用するレプリカの相対的な優先順位を指定します。
ReplicaId | データベース レプリカの一意の識別子です。
ReplicaType | レプリカの種類を示します。
RetentionPeriod | レプリケーション履歴を保持する日数を示します。
TableName | フィルタが適用されるテーブル名を示します。
Visibility | データベースの参照可能範囲を示します。グローバル、ローカル、または匿名のいずれかです。


ActiveConnection プロパティ (JRO)

ActiveConnection プロパティ

Replica が属する Connection オブジェクトを示します。

設定値と戻り値

接続の定義を含む文字列型 (String) の値、または開かれた Connection オブジェクトのどちらかを設定します。また、値の取得も可能です。

解説

既定値は Null です。

ActiveConnection プロパティの値を無効にすると、すべての関連付けられたオブジェクトはデータ ソースから切断されます。


ConflictFunction プロパティ (JRO)

ConflictFunction プロパティ

同期中の競合の解決に使用する、カスタムの競合解決関数の名前を示します。

設定値と戻り値

カスタム関数の名前である文字列型 (String) の値を設定します。また、値の取得も可能です。文字列型 (String) の値は、256 文字以下の文字列でなければなりません。既定値は、空文字列 ("") です。

解説

ConflictFunction プロパティは、同期しているレプリカ間で発生するデータの競合を解決するためのカスタムの競合解決コードに使用できます。また、組み込みの競合回避モジュールに表示するセット内の 1 つのレプリカを指定することもできます。ConflictFunction プロパティは、呼び出す関数の名前を文字列で設定します。設定できるのは Function プロシージャの名前であることに注意してください。Sub プロシージャの名前を設定することはできません。このプロパティが設定されない場合、Microsoft Access によって組み込みの競合回避モジュールが呼び出されます。

レプリケート データベース内の同じレコードが 1 つまたは複数のレプリカ内 (または、データベースで列レベルのトラックが有効な場合、同じレコード内の同じ列) で変更された場合、競合が発生します。通常、Microsoft Access はこれらの競合を解決するために、組み込みの競合回避モジュールを呼び出します。競合回避モジュール ウィザードがユーザーにそれぞれの競合を示し、ユーザーは正しいデータを含むレコードから変更されたものをユーザー自身で判断する必要があります。レプリカの ReplicaId (GUID) に等しい ConflictFunction プロパティを設定することによって、組み込みの競合回避モジュールを使って競合を表示するレプリケーション セットに、1 つのレプリカを設定できます。

アプリケーションの競合解決を自動化させる場合、競合を解決するカスタム プロシージャを書いて、ConflictFunction プロパティの設定によって組み込み機能を上書きできます。競合解決コード内のエントリのポイントとして動作する、1 つの関数を作成できます。この関数の名前は、ConflictFunction プロパティで設定します。

このプロパティは、データベースがレプリケート可能な場合にのみ読み取りまたは設定できます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのプロパティの読み取りまたは設定を試みた場合、エラーが発生します。ReplicaType の値が jrRepTypeDesignMaster の場合もまた、エラーが発生します。


ConflictTables プロパティ (JRO)

ConflictTables プロパティ

テーブルの一覧に含める、および競合テーブルに関連付けられる、Recordset を指定します。

戻り値

2 つのレプリカの同期中に競合した各テーブルの、TableName および ConflictTableName という 2 列を含むレコードセットを返します。ConflictTables は読み取り専用です。

解説

このプロパティは、データベースがレプリケート可能な場合にのみ読み込むことができます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのプロパティの読み取りまたは設定を試みた場合、エラーが発生します。


Count プロパティ (JRO)

Count プロパティ

コレクションのオブジェクト数を示します。

戻り値

長整数型 (Long) の値を返します。

解説

Count プロパティを使って、与えらえれたコレクションのオブジェクト数を判断します。

コレクション メンバの番号付けは 0 から始まるため、コードは常に 0 のメンバからループを開始し、Count プロパティの値から 1 を引いて、引いた値のメンバで終了します。Microsoft® Visual Basic® を使って、Count プロパティによるチェックなしにコレクションのメンバを通したループを行う場合、For Each...Next コマンドを使います。

Count プロパティが 0 の場合、コレクションにオブジェクトはありません。


DesignMasterId プロパティ (JRO)

DesignMasterId プロパティ

レプリカ セットのデザイン マスターの一意の識別子です。

設定値と戻り値

レプリカ セット (GUID) のデザイン マスターを一意に識別する、バリアント型 (Variant) の値を設定します。また、値の取得も可能です。デザイン マスターが作成されたとき、このプロパティは自動的に設定されます。既定値は、空文字列 ("") です。

解説

デザイン マスターは、そのレプリカの 1 つを新規デザイン マスターとして設定できます。レプリカは新規デザイン マスターとなることはできますが、デザイン マスターの異なるレプリカとなることはできません。

特殊な条件下では (たとえば、デザイン マスターが消去または壊れた場合)、現在のレプリカでこのプロパティを設定できます。ただし、セットに既に別のデザイン マスターがあるときにレプリカにこのプロパティを設定すると、2 つの統合不可能なセットにレプリカ セットが分割されてしまい、データを同期することができなくなります。

このプロパティは、データベースがレプリケート可能な場合にのみ読み込むことができます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのプロパティの読み取りまたは設定を試みた場合、エラーが発生します。


FilterCriteria プロパティ (JRO)

FilterCriteria プロパティ

完全レプリカからレプリケートするためにレコードが満たす必要のある、抽出条件を指定します。

設定値と戻り値

文字列型 (String) の値を設定します。また、値の取得も可能です。テーブルに基づくフィルタに対しては、文字列は、キーワード WHERE ではなく SQL 文の WHERE 句を表します。リレーションシップに基づくフィルタに対しては、文字列はリレーションシップの名前を含みます。FilterCriteria はいったん設定されると読み取り専用になり、Append メソッドを使ってのみ設定できます。

解説

既定値は、空文字列 ("") です。


FilterType プロパティ (JRO)

FilterType プロパティ

フィルタの種類を示します。

設定値と戻り値

列挙型 (Enum) の値を設定します。また、値の取得も可能です。次の定数が、FilterType で有効な値です。FilterType はいったん設定されると読み取り専用になり、Append メソッドを使ってのみ設定できます。

定数 | 説明
JrFilterTypeTable | 既定値です。テーブルに基づくフィルタです。
JrFilterTypeRelationship | リレーションシップに基づくフィルタです。


Item プロパティ (JRO)

Item プロパティ

名前またはインデックスによって、コレクションの指定されたメンバを返します。

構文

Set object = collection.Item ( Index )

戻り値

オブジェクトへの参照を返します。

パラメータ

Index コレクション内の特定のオブジェクトの名前またはインデックスを指定するバリアント型 (Variant) の値を指定します。

解説

Item プロパティを使うと、コレクションに指定されたオブジェクトを返します。プロパティが Index 引数に対応するオブジェトをコレクションに見つけられない場合、エラーが発生します。さらに、コレクションが名前付きオブジェクトをサポートしていない場合、序数参照を使う必要があります。

Item プロパティはすべてのコレクションの既定のプロパティであるため、次の構文形式は相互に取り替えることができます。

collection.Item (Index)

collection (Index)


Priority プロパティ (JRO)

Priority プロパティ

競合の解決に使用するレプリカの相対的な優先順位を指定します。

戻り値

優先順位を示す、0 ～ 100 の長整数型 (Long) の値を返します。Priority は読み取り専用です。

解説

競合を解決するアルゴリズムは、次のとおりです。

  • 優先順位の高いレプリカを優先

  • 優先順位が等しい場合、ReplicaId の低いレプリカを優先

以前のバージョンでは、競合解決アルゴリズムは、最も変更の多い行および前述の 2 つ目のルールのレプリカに基づいていました。古いデータベースが変換されたときの互換性を保つには、すべてのレプリカの優先順位を 90 にします。

グローバル レプリカでは、既定での優先順位は、親レプリカの優先順位の 90% の割合です。さらに、グローバル レプリカに有効な値は将来において、制限される可能性があります。ユーザーがデータベースの管理者の場合、すべての範囲の値が有効です。そうでない場合、優先順位の最大値は、親レプリカの優先順位の 90% の割合です。ローカルおよび匿名レプリカでは、値は常に 0 で変更できません。この値は、レプリカの作成時に強制的に与えられ、ほかのすべての値は無視されます。

このプロパティは、データベースがレプリケート可能な場合にのみ読み込むことができます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのプロパティの読み取りを試みた場合、エラーが発生します。


ReplicaId プロパティ (JRO)

ReplicaId プロパティ

データベース レプリカの一意の識別子です。

戻り値

データベース レプリカ (GUID) を一意に識別する、バリアント型 (Variant) の値を返します。このプロパティは、レプリカが作成されたときに自動的に生成されます。ReplicaId は読み取り専用です。

このプロパティは、データベースがレプリケート可能な場合にのみ読み込むことができます。ReplicaType が jrRepTypeNotReplicable で、ユーザーがこのプロパティの読み取りまたは設定を試みた場合、エラーが発生します。


ReplicaType プロパティ (JRO)

ReplicaType プロパティ

レプリカの種類を示します。

戻り値

次の定数のいずれかである、列挙型 (Enum) の値を返します。

定数 | 説明
jrRepTypeNotReplicable | 既定値です。データベースはレプリケートできません。
jrRepTypeDesignMaster | レプリカはデザイン マスターです。
jrRepTypeFull | レプリカは完全レプリカです。
jrRepTypePartial | レプリカは部分レプリカです。

ReplicaType は読み取り専用です。

解説

ReplicaType プロパティは、データベースがレプリケート可能であるかどうかを判断するために使われ、レプリケート可能である場合、レプリカの種類を判断します。ReplicaType が jrRepTypeNotReplicable である場合、データベースはレプリケートできません。CreateReplica メソッドの ReplicaType パラメータを使って、新規の完全または部分レプリカを作成します。


RetentionPeriod プロパティ (JRO)

RetentionPeriod プロパティ

レプリケーション履歴を保持する日数を示します。

設定値と戻り値

日数を表す、5 ～ 32,000 の範囲の整数型 (Integer) の値を設定します。また、値の取得も可能です。

解説

RetentionPeriod プロパティは、レプリカ セットについての削除レコード、スキーマの変更、ほかのシステム固有の情報などを残しておく時間数を、日付単位で指定します。データベースが ADO、RDO、レプリケーション マネージャなどによってレプリケート可能になっている場合、既定値は 60 です。

データベースが Access によってレプリケート可能になっている場合、既定値は 1000 です。

このプロパティは、デザイン マスターでのみ設定できます。ReplicaType が jrTypeDesignMaster でない場合、エラーが発生します。


TableName プロパティ (JRO)

TableName プロパティ

フィルタが適用されるテーブル名を示します。

設定値と戻り値

テーブル名を指定する、文字列型 (Sring) の値を設定します。また、値の取得も可能です。リレーションシップに基づくフィルタでは、リレーションシップの多い側のテーブルになります。TableName はいったん設定されると読み取り専用になり、Append メソッドを使ってのみ設定できます。

解説

既定値は、空文字列 ("") です。


Visibility プロパティ (JRO)

Visibility プロパティ

データベースの参照可能範囲を示します。グローバル、ローカル、または匿名のいずれかです。

戻り値

レプリカ セット内のレプリカの参照可能範囲を示す、列挙型 (Enum) の値を返します。次の定数のいずれかを指定できます。

定数 | 説明
jrRepVisibilityGlobal | 既定値です。レプリカはグローバルです。
jrRepVisibilityLocal | レプリカはローカルです。
jrRepVisibilityAnon | レプリカは匿名です。

Visibility は読み取り専用です。

解説

グローバル レプリカは、ほかのすべての種類のレプリカから作成できる、通常のレプリカです。グローバル レプリカによる変更は、完全にトラックされ、セット内のほかのすべてのグローバル レプリカで交換できます。グローバル レプリカは、ハブとなるすべてのローカルまたは匿名レプリカで変更を交換できます。

注意 デザイン マスターは、グローバル レプリカです。

ローカルまたは匿名レプリカは、ハブであるグローバル レプリカとのみ同期します。これらのレプリカは、レプリカセットのほかのレプリカとは同期できません。すべてのローカルまたは匿名レプリカは常に優先順位が 0 であるため、グローバル ハブ レプリカでの変更と競合した場合、競合解決処理により変更は自動的に失われます。競合のない変更であることがハブに伝えられた場合、ハブは変更元であると仮定されます。

ハブ レプリカだけがローカル レプリカを認識し、ローカル レプリカへの交換をスケジュールできます。

匿名レプリカを認識しているレプリカ (ハブ レプリカを含む) はありません。ハブ レプリカは、匿名レプリカの交換をスケジュールすることはできません。しかし、匿名レプリカはシステム トラック情報が維持されず、レプリカ サイズが減少するので、大量配布を行うインターネット上で使うことをお薦めします。

Visibility は、CreateReplica メソッドを使っていったん作成されたレプリカを変更することはできません。

このプロパティは、データベースがレプリケート可能な場合にのみ読み込むことができます。

ReplicaType プロパティが jrRepTypeNotReplicable でなく、かつユーザーがこのプロパティの読み取りを試みた場合、エラーが発生します。


Jet and Replication の例

ここでは、次の JRO メソッドの使用方法を学びます。

注意 Sub から End Sub までのコード例全体を、使用するエディタに貼り付けてください。例の一部だけを使った場合、または改行の情報が失われると、この例を正しく実行できません。

Append メソッドの例では、テーブルへ新規フィルタを追加します。

CompactDatabase メソッドの例では、CompactDatabase メソッドを使って、データベースの最適化および暗号化を行います。

CreateReplica メソッドの例では、CreateReplica メソッドを使って、完全レプリカを作成します。

MakeReplicable メソッドの例では、MakeReplicable メソッドを使って、デザイン マスターを作成します。

PopulatePartial メソッドの例では、PopulatePartial メソッドを使って、レプリカを更新します。

RefreshCache メソッドの例では、RefreshCache メソッドの使用方法を示します。

Synchronize メソッドの例では、Synchronize メソッドを使った、デザイン マスターとレプリカ間の変更の更新、インターネット経由での同期、直接同期を行います。


Append メソッドの例 (JRO)

Append メソッドの例

この例では、テーブルへの新規フィルタの追加方法を示します。

Public Sub AppendFilter()

    Dim flt As JRO.Filter
    Dim rep As New JRO.Replica

    ' Connect to an existing partial replica.
    rep.ActiveConnection = "C:\Program Files\" & _
        "Microsoft Office\Office\Samples\Partial of Northwind.mdb"

    ' Append a partial filter to a table.
    rep.Filters.Append "Customers", jrFilterTypeTable, "Region='CA'"
    Set flt = rep.Filters.Item(1)

    ' Print the information.
    Debug.Print flt.FilterCriteria
    Debug.Print flt.FilterType
    Debug.Print flt.TableName

End Sub


CompactDatabase メソッドの例 (JRO)

CompactDatabase メソッドの例

この例では、CompactDatabase メソッドを使ったデータベースの最適化および暗号化を行う方法を示します。

Public Sub CompactAndEncrypt()

    Dim je As New JRO.JetEngine

    ' Make sure that a file doesn't exist with the name of
    ' the compacted database.
    If Dir("C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind2.mdb") <> "" Then Kill _
        "C:\Program Files\Microsoft Office\Office\Samples\Northwind2.mdb"

    ' Compacts and encrypts version Northwind database.
    je.CompactDatabase _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind2.mdb;" & _
    "Jet OLEDB:Encrypt Database=True"

End Sub


CreateReplica メソッドの例 (JRO)

CreateReplica メソッドの例

この例では、CreateReplica メソッドを使った完全レプリカの作成方法を示します。

Public Sub CreateRep()

    Dim repMaster As New JRO.Replica

    ' Connect to the Northwind database.
    repMaster.ActiveConnection = "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb"

    ' Delete myTestRep if it exists.
    If (Dir("C:\Program Files\Microsoft Office\" & _
        "Office\Samples\myTestRep.mdb") <> "") Then Kill _
        ("C:\Program Files\Microsoft Office\Office\Samples\" & _
        "Replica of Northwind.mdb")

    ' Create a full replica.
    repMaster.CreateReplica "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Replica of Northwind.mdb", "My Full Replica1", _
        jrRepTypeFull, jrRepVisibilityGlobal

End Sub


MakeReplicable メソッドの例 (JRO)

MakeReplicable メソッドの例

この例では、MakeReplicable メソッドを使ったデザイン マスターの作成方法を示します。

Public Sub MakeRep()

' This code example demonstrates how to use
' MakeReplicable by specifying the ConnectionString parameter.
' NOTE: This connection string does not need to explictly specify
' exclusive connection mode, JRO does this automatically.

    Dim repDM As New JRO.Replica
    ' Make northwind.mdb replicable with record level tracking
    repDM.MakeReplicable "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb", False

End Sub


PopulatePartial メソッドの例 (JRO)

PopulatePartial メソッドの例

この例では、PopulatePartial メソッドを使ったレプリカの更新方法を示します。

Public Sub PartialRep()

' This code demonstrates how to create a partial replica with a
' relationship filter and a table filter.
' NOTE: PopulatePartial requires an exclusive connection.

    Dim repMaster As New JRO.Replica
    Dim repPartial As New JRO.Replica
    Dim flt As JRO.Filter
    repMaster.ActiveConnection = _
        "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"

    If (Dir("C:\Program Files\" & _
        "Microsoft Office\Office\Samples\" & _
        "Partial of Northwind.mdb") <> "") Then Kill _
        ("C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Partial of Northwind.mdb")

    ' Northwind.mdb is already replicable so you can
    ' create replicas from it.
    repMaster.CreateReplica "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Partial of Northwind.mdb", _
        "Partial Replica of Northwind", jrRepTypePartial

    Set repMaster = Nothing

    ' PopulatePartial requires an exclusive connection to the database.
    repPartial.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Partial of Northwind.mdb;" & _
        "Mode=Share Exclusive"

    repPartial.Filters.Append "Orders", jrFilterTypeRelationship, _
        "CustomersOrders"

    repPartial.Filters.Append "Customers", jrFilterTypeTable, _
        "CustomerID"
    repPartial.PopulatePartial "C:\Program Files\" & _
        "Microsoft Office\Office\Samples\Northwind.mdb"

End Sub


RefreshCache メソッドの例 (JRO)

RefreshCache メソッドの例

この例では、RefreshCache メソッドの使用方法を示します。

Public Sub RefCache()

    Dim lateje As JRO.JetEngine
    Dim conn As New ADODB.Connection
    Dim conn2 As New ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim fld As ADODB.Field

    ' Open both connections to the database.
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb;"
    conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb;"

    Set lateje = CreateObject("JRO.JetEngine")

On Error Resume Next
    conn.Execute "drop table tab1"
On Error GoTo 0

    ' Create table and input new values for columns.
    conn.Execute "create table tab1 ( col1 int)"
    conn.Execute "insert into tab1 values (1)"
    conn.Execute "insert into tab1 values (2)"

    ' Flush the data so that conn2 can see the changes from conn1.
    lateje.RefreshCache conn2
    Set rs = conn2.Execute("select * from tab1")
    Set fld = rs.Fields(0)
    Debug.Print "Record 1: " & fld.Name & " = " & Str(fld.Value)

    conn.Close
    conn2.Close
    Set lateje = Nothing

End Sub


Synchronize メソッドの例 (JRO)

Synchronize メソッドの例

ここでは、Synchronize メソッドの使用方法の 3 つの例を示します。まず、次の例では、Synchronize メソッドを使ったデザイン マスターとレプリカ間の変更を更新する方法を示します。

Public Sub DirectSync()

    Dim repMaster As New JRO.Replica
    Dim RepNorthwind As New JRO.Replica
    Dim conn As New ADODB.Connection

    ' Open the database.
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data source=C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb;"

    ' If a replica of the database exists, it is deleted.
    repMaster.ActiveConnection = conn
    ' "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    If (Dir("C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Replica of Northwind.mdb") <> "") Then Kill _
        ("C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Replica of Northwind.mdb")

    ' Create a new replica of the database.
    repMaster.CreateReplica "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Replica of Northwind.mdb", _
        "Replica1 for Northwind.mdb", _
        jrRepTypeFull, jrRepVisibilityGlobal

    ' New values are put into tab1.
On Error Resume Next
    conn.Execute "drop table tab1"
On Error GoTo 0
    conn.Execute "create table tab1 ( col1 int)"
    conn.Execute "insert into tab1 values (1)"
    conn.Execute "insert into tab1 values (2)"

    ' Synchronize the values.
    repMaster.Synchronize "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Replica of Northwind.mdb", jrSyncTypeImpExp, _
        jrSyncModeDirect

End Sub

次の例では、インターネット経由での同期に Synchronize メソッドを使用する方法を示します。インターネット経由での同期を行う前に、インターネット レプリケーションを完全にセットアップしておく必要があります。

Public Sub InternetSync()

    Dim rep As New JRO.Replica

' This is the replica on your local machine.
    rep.ActiveConnection = "C:\Program Files\Microsoft Office\" & _
        "Office\Samples\Northwind.mdb"

' The name of the Internet server is "my_server"
' and is configured for Internet replication.
    rep.Synchronize "http://MY_SERVER", jrSyncTypeImpExp, _
        jrSyncModeInternet

    Set rep = Nothing
End Sub

次の例では、間接同期に Synchronize メソッドを使用する方法を示します。

Public Sub IndirectSync()

    Dim repMaster As New JRO.Replica

    repMaster.ActiveConnection = "C:Program Files\" & _
        "Microsoft Office\Office\Samples\Northwind.mdb"

    ' The Synchronizer that manages the replica is called
    ' SynchronizerName, the one with which
    ' you want to exchange data.
    repMaster.Synchronize "SynchronizeName", jrSyncTypeImpExp, _
        jrSyncModeIndirect

End Sub