web-dev-qa-db-ja.com

MSSQLリンクサーバー機能とODBCを使用してFoxproデータベースファイルに正常に接続する方法

Foxpro ODBCドライバを使用して、MSSQL Serverのリンクサーバー機能を介してFoxproファイルベースのデータベースファイルにアクセスしようとしています。

このために、

  • 最新のFoxproをインストールしましたODBC Microsoftのドライバー、
  • このドライバを使用しているシステムDSNを作成しました
  • 「フリーテーブルディレクトリ」ではなく、「データベースタイプ」で「Visual FoxProデータベース(.DBC)」オプションを選択
  • (ローカルマシン上の)dbcファイルへのパスを指定しました
  • インストールされたMSSQL Server 2008 R2 Express
  • インストールされたMSSQL Server Management Studio 2008
  • 次のようなGUIウィザードを使用して、新しいリンクサーバーを作成しようとしました: New Linked Server screenshot

ただし、最後のステップが完了することはありません(実行中は永久に表示されます)。 Management Studioを強制的に閉じて再起動すると、新しいリンクサーバーは存在しますが、カタログサブアイテムのみが含まれます。それを拡張しようとすると、Management Studioは再びループに入ります。

5
Henno
  • Microsoft OLE DB FoxPro for Visual FoxProをダウンロードしてインストールします
  • MSSQL Management Studioの[システムオブジェクト]> [リンクサーバー]> [プロバイダー]に、「VFPOLEDB」として表示されていることを確認します。私はそれをインストールし、アンインストールして、そこに到達するまで再インストールする必要がありました(そして、いいえ、Windowsの再起動は機能しませんでした)。
  • システムオブジェクトを開き、[リンクサーバー]を右クリックして、新しいリンクサーバーの追加を選択します。
  • 次のようにフォームに入力します。screenshot of New Linked Server with proper values for Foxpro connection
    • ODBCアプレットにDSNを追加する必要はありません
    • [OK]をクリックして、テーブルが表示されるまで新しいリンクサーバーをドリルダウンできるかどうかを確認します。
    • テーブルを右クリックし、SELECTクエリを新しいクエリウィンドウにスクリプト化します。これは、この新しいリンクサーバーをクエリする方法の例です。
      SELECT * FROM [myLinkedServer]...[myTable]
6
Henno

最初に行うことは、32ビットSQL Serverを使用している場合は32ビットドライバーを使用し、64ビットSQL Serverを使用している場合は64ビットドライバーを使用していることを確認することです。 64ビットSQLサーバーは、32ビットODBC(またはOLEDBなど))ドライバーを使用できません。

Microsoftの古いODBCドライバーがサーバーインスタンスを停止するので、回避します。

2005年以降のSQL Serverの最新バージョンでは、「ACE」ドライバーで最高の成功を収めています。これらのドライバーは、古い「JET」ドライバーに取って代わり、Office 2007で導入されました。これらはOLEDBベースですが、必ずしも気付かない場合があります。 32ビット版と64ビット版のOffice 2010のリリース。 再配布可能なACEドライバーはダウンロード可能です Microsoftのサイトにあります。

新しいドライバーを使用すると、古いODBCドライバーのようにシステムDSNを作成する必要はありません。リンクサーバーを作成して実行するだけで済みます。方法の例がたくさんあるはずです。インターネットでACEドライバー(TSQLとSSMS GUIの両方を使用)を使用してリンクサーバーを作成します。

ドライバーを表すプロバイダー(プロバイダーフォルダーの[リンクサーバー]フォルダーの下を参照)が[処理を許可する]およびに設定されていることを確認します。

また、ネットワーク上のファイルにアクセスする方が、ローカルディスク上の同じファイルにアクセスするよりも難しい場合もあります。これは通常、委任とセキュリティの問題です。インフラストラクチャによっては、それを実現するのが面倒な場合があります。

(興味があれば、3〜4年前に「64ビットの世界でのレガシー接続」というブログエントリをいくつか作成し、dbase/foxproの問題、32/64ビットの問題、およびdb/2などについて取り上げました。おそらく、あなたが読みたいよりも多いでしょう。これは、64ビットのACEドライバーがリリースされる前に戻ったもので、現在は改善されています。)

0
darin strait