OLE DB Provider for Jet
更新 : 2005 年 12 月 5 日
Microsoft OLE DB Provider for Jet は Microsoft Access データベースに OLE DB インターフェイスを提供し、SQL Server 2005 の分散クエリに Access データベースおよび Excel ワークシートへのクエリを許可します。
Access データベースにアクセスするリンク サーバーを作成するには
リンク サーバーを作成するには、sp_addlinkedserver を実行します。この際、Microsoft.Jet.OLEDB.4.0 を provider_name として指定し、Access .mdb データベース ファイルの完全なパス名を data_source として指定します。.mdb データベース ファイルはサーバーに存在している必要があり、data_source はクライアントではなくサーバー上で評価されます。また、パスはサーバー上で有効でなくてはなりません。
たとえば、
c:\mydata
ディレクトリに存在するNwind.mdb
という名前の Access データベースに対して機能するNwind
というリンク サーバーを作成するには、次のようにします。sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 'c:\mydata\Nwind.mdb'
セキュリティで保護されていない Access データベースにアクセスするためには、Access データベースにアクセスしようとしている SQL Server ログインに、パスワードのないユーザー名 Admin へのログイン マッピングを定義する必要があります。
次の例では、
Joe
というローカル ユーザーがNwind
というリンク サーバーにアクセスできるようにします。sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'Admin', NULL
セキュリティ保護された Access データベースにアクセスするには、Access によって使用されている正しいワークグループ情報ファイルを使用するように、レジストリ エディタを使用してレジストリを構成します。レジストリ エディタを使用して、Access で使用するワークグループ情報ファイルの完全なパス名を次のレジストリ エントリに追加してください。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB
レジストリ エントリを構成した後、次のように
sp_addlinkedsrvlogin
を使用してローカル ログインから Access ログインへのログイン マッピングを作成します。sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'AccessUser', '034fhd99dl'
セキュリティ メモ : |
---|
この例では、Windows 認証は使用されていません。したがって、パスワードは暗号化されずに送信されます。パスワードは、ディスク、バックアップ、およびログファイルに保存されたデータ ソース定義やスクリプトで参照できます。この種類の接続では、システム管理者のパスワードを使用しないでください。特定のユーザー環境のセキュリティについては、ネットワーク管理者に問い合わせてください。 |
Access データベースにはカタログ名とスキーマ名がありません。したがって、Access ベースのリンク サーバー内にあるテーブルは、分散クエリで linked_server**...**table_name という 4 つの部分から構成される名前を使用して参照できます。
次の例では、Nwind
というリンク サーバーに存在する Employees
テーブルのすべての行を取得します。
SELECT *
FROM Nwind...Employees
Excel ワークシートに対してリンク サーバーを作成するには
Microsoft OLE DB Provider for Jet 4.0 を使用し、Microsoft Excel ワークシートにアクセスすることができます。
Excel ワークシートにアクセスするリンク サーバーを作成するには、次の例の形式を使用します。
EXEC sp_addlinkedserver EXCEL, 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\data\MySheet.xls', NULL, 'Excel 5.0;' GO
Excel ワークシートのデータにアクセスするには、セルの範囲を名前と関連付けます。名前付き範囲は、範囲の名前をテーブル名として使用することでアクセスできます。次のクエリを使用すると、前の例のリンク サーバーの設定を使用して
SalesData
という名前付き範囲にアクセスできます。SELECT * FROM EXCEL...SalesData GO
セルの名前付き範囲に 1 行を挿入すると、挿入した行は、そのセルの名前付き範囲の一部である最後の行の後ろに追加されます。したがって、列ヘッダーの後ろに行 rA を挿入する場合は、列ヘッダーのセルと名前を関連付け、その名前をテーブル名として使用します。セルの範囲は、行の挿入に応じて自動的に拡張されます。
書式付きテキスト ファイルに対してリンク サーバーをセットアップするには
Microsoft OLE DB Provider for Jet を使用し、テキスト ファイルにアクセスし照会できます。
Access .mdb ファイルのテーブルとしてファイルをリンクせず、テキスト ファイルに直接アクセスするリンク サーバーを作成するには、次の例のように
sp_addlinkedserver
を実行します。プロバイダは
Microsoft.Jet.OLEDB.4.0
、プロバイダ文字列は'Text'
です。データ ソースは、テキスト ファイルが格納されているディレクトリの完全なパス名です。Schema.ini ファイルは、テキスト ファイルと同じディレクトリに存在する必要があります。Schema.ini ファイルでは、テキスト ファイルの構造を記述します。Schema.ini ファイルの作成方法の詳細については、Jet Database Engine のマニュアルを参照してください。--Create a linked server. EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', 'c:\data\distqry', NULL, 'Text' GO --Set up login mappings. EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL GO --List the tables in the linked server. EXEC sp_tables_ex txtsrv GO --Query one of the tables: file1#txt --by using a four-part name. SELECT * FROM txtsrv...[file1#txt]
参照
概念
SQL Server でテスト済みの OLE DB プロバイダ
分散クエリ
その他の技術情報
sp_addlinkedserver (Transact-SQL)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2005 年 12 月 5 日 |
|