データソースのセットアップ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データベースデータの比較 >

データソースのセットアップ

データベースからテーブルのデータを比較する場合、データベース接続の詳細と他の構成パラメータを含むデータソースが構成されている必要があります。 1つのデータソース が比較に含まれる各テーブル、ビュー、または、カスタム SQL クエリのために存在する必要があります。

 

データソースを構成するために、クライアント構成ファイル を開き、 <name> が一意の名前であり、このデータソースを識別する箇所に新規の [datasouce:<name>] セクションを追加します。[datasource] セクション内に存在する可能性のあるパラメーターが以下にリストされています。

 

サーバー構成ファイル にデータソースを追加することができます。この機能は (DiffDog コマンドラインクライアントではない) DiffDog Server が作動するマシンからデータソースに接続する必要がある場合に役に立ちます。データベースへのアクセスを持たない DiffDog Server サービスは個別のユーザーとして作動するため、SQL Server などのデータベースのための Windows 認証を必要とするサーバー側の接続で問題が発生する可能性があります。 この場合の回避策は、クライアント構成ファイル内のデータソースを定義することです。 data-diff コマンドを作動するユーザーとして DiffDog コマンドラインクライアントは作動します。

 

上記の通り、各データソースは SQL クエリにより抽出されるテーブル、ビュー、または、カスタムの名前を持つレコードセットを提供する必要があります。これを指定するために、(相互的に排他的な) table または sql オプション をセットします。重要なことは、各テーブル、ビュー、または、レコードセットのために各行の一意性を保証する列が少なくとも1つ存在する必要があることです。この列 (または、複数の列) は「キー」 列として参照されます。テーブルに主キー、キー列が既に存在する場合、行の一意性は保証されます。それ以外の場合、「キー」 列として扱われるべき1つ、または、複数の列を指定することが奨励されます。これは key-columns-by-namekey-columns-by-ordinal オプションを設定することにより行うことができます。

 

type

必須のパラメーターです。データベース接続の型を指定します。 有効な値: adoadonetjdbcodbcpostgresql および sqlite。 例:

 

type=sqlite

 

postgresqlsqlite はビルトインでドライバーを必要としません。 他のデータベース型のために、比較ジョブを作動するマシンに適したデータベース接続メソッドを選択してください。このような接続は、マシンにインストールされた対応するデータベースドライバーを必要とします。詳細に関しては、サポートされるデータベースを参照してください。

 

path

条件パラメーターです。データベースファイルへのパスを指定します。 SQLite データベースのためにのみ適用することができます。connection パラメーターを設定している場合、これらは双方排他的なため、このパラメーターを設定しないでください。

 

path=C:\Articles.sqlite

SQLite

 

connection

条件パラメーターです。データベース接続文字列を指定します。 path パラメーターを設定している場合、これらは双方排他的なため、このパラメーターを設定しないでください。

 

connection=Data Source=DBSQLSERV;User ID=altova_user;Password=dhjdf84h;Provider=SQLNCLI11.1;Initial Catalog=NANONULL;Persist Security Info=true

SQL Server (ADO)

connection=jdbc:db2://mydb2-105:50000/NANONULL

DB2 (JDBC)

connection=jdbc:oracle:thin:@dbora12c:1521:orcl12c

Oracle (JDBC)

connection=my.dbserver.com

PostgreSQL (Native)

メモ:ネイティブな PostgreSQL 接続のために、connection はデータベースサーバーの IP アドレスであることができます。例えば、 127.0.0.1。 ネイティブな PostgreSQL 接続のデータベースとポートは、 databaseport オプション内で指定されています。

 

接続を確認するためにローカルマシン上で使用することのできるコピーし張り付けることのできる書式で表示されている、 db-drivers コマンドを呼び出します。また、ライセンス供与済みの DatabaseSpy が存在する場合、ここからデータベースの接続を作成し、プロパティウィンドウ内で表示されている通り接続の詳細を再利用することができます。

 

database

ネイティブな PostgreSQL 接続のためにのみ必須で適応することができます。PostgreSQL 接続のデータベースを指定します。

 

database = ZooDB

 

port

PostgreSQL データベース接続のポートを指定します。ネイティブな PostgreSQL データベース接続のためにのみ適用することができます。

 

table

条件パラメーターです。比較の左側と右側のパート内で使用されるデータベーステーブル、または、ビューの名前を指定します。このパラメーターを構成した場合、これらは双方排他的なため、 sql パラメーターを設定しないでください。 例:

 

table=[HR].[dbo].[Employees]

SQL Server

table="ALTOVA_ADMIN"."customers"

IBM DB2

ヒント:DatabaseSpy を使用する場合、オンラインブラウザー内のテーブルを右クリックして、コンテキストメニューから「新規の SQL Editor で表示  | パス」 を選択して、フルテーブルの名前を取得することができます。

 

key-columns-by-name

各テーブル、ビュー、または、レコードセットのために、各行の一意性を保証する列が少なくとも1つ必要になります。この列 (または、複数の列) は以後「キー」 列として称されます。テーブルに主キーが存在する場合、キー列は既に存在し、行の一意性は保証されます。それ以外の場合、として扱われる1つ、または、複数の列を指定することが奨励されます。テーブル上の実際の主キー、または、一意のキーの一部である列である必要は必ずしもありません。 例:

 

key-columns-by-name="guid"

 

 

key-columns-by-name="first_name","last_name","email"

 

「キー」 列の定義は任意ですが、ベストプラクティスのために行われることが奨励されます。「キー」 列を定義しない場合、 アプリケーションが自動的に決定しますが、これはすべてのデータベースドライバー全体に対して一貫して作動しない場合があります。また、テーブル、または、ビューのためにのみ作動します。ですから、計算された結果を返す SQL クエリ、または、ストアドプロシージャにより返される結果を使用する場合、 「キー」 列を明示的に定義することが奨励されます。

 

キー列を指定すると、 キー列の数量は、「左側」と「右側」のデータソースのために同じである必要があります。 例えば、2つのキー列を左側のデータソースのために指定し、右側のデータソースのために1つのキー列のみ指定すると、比較はエラーと共に失敗します。

 

key-columns-by-ordinal

「キー」 列 を 名前 (上記参照) またはテーブル内の1から開始する序数を指定することができます。このオプションにより序数によりキー列を指定することができます。 例:

 

key-columns-by-ordinal=1

 

 

key-columns-by-ordinal=1,2,5

 

キー列を指定すると、 キー列の数量は、「左側」と「右側」のデータソースのために同じである必要があります。

 

user

条件パラメーターです。データベースに接続するために必須のユーザー名を指定します。データベースが匿名の接続を受け入れる場合、または、接続文字列がユーザー名を既に含む場合このパラメーターは必要ありません。 (connection パラメーターを確認してください)。

 

pass

条件パラメーターです。データベースに接続するために必須のパスワードを指定します。データベースが匿名の接続を受け入れる場合、または、接続文字列がパスワードを既に含む場合このパラメーターは必要ありません。 (connection パラメーターを確認してください)。

 

assembly

このオプションは ADO.NET 接続のために必須です。 例:

 

assembly=System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

SQL Server のための .NET Framework Data Provider

assembly=IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26

IBM i のための .NET Framework Data Provider

ローカルのマシン上で表示されているコピーして貼り付けることのできるフォーマットで表示されている .NET アセンブリを確認するために、 db-drivers コマンドを実行します。

 

 

class

ADO.NET と JDBC 接続のためにこのオプションは必須です。 例:

 

class=com.ibm.db2.jcc.DB2Driver

JDBC を介した IBM DB2

class=com.mysql.jdbc.Driver

JDBC を介した MySQL

class=System.Data.SqlClient

ADO.NET を介した SQL Server

ローカルのマシン上で表示されているコピーして貼り付けることのできるフォーマットで表示されている JDBC ドライバーを確認するために db-drivers コマンドを実行します。

 

sql

条件パラメーターです。SELECT クエリを現在のデータベースの構文内で指定します。 SELECT クエリから受け取ったレコードセットは、比較の左側、または、右側の部分として使用される場合があります。このパラメーターをセットすると、双方が相互的に排他的なため table パラメーターを設定しないでください。サンプル:

 

sql="SELECT * FROM employees WHERE a > 5 and b < 6 ORDER BY c"

SELECT クエリ

sql="EXEC dbo.uspGetEmployeeManagers @BusinessEntityID = 50"

ストアドプロシージャ

ストアドプロシージャの呼び出しを指定すると、出力パラメーターだけではなく、ストアドプロシージャがレコードセットを返すことが期待されます。


(C) 2019 Altova GmbH