2

タイトルが示すように、openrowset を使用して FoxPro dbf ファイルを SQL サーバーにインポートしようとしています。最初に、DBF を xls ファイルにエクスポートし、インポート/エクスポート ウィザードを使用してインポートしようとしました。これは正常に機能しますが、非常に長い文字列を保持するフィールドが 1 つあります。この文字列は、dbf から xls へのエクスポート中に 4096 文字で切り捨てられます。

openrowset を使用してこれを行う方法が記載された古い投稿を見つけました。

最初の答えを試すと:

select *
from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\path\;
SourceType=DBF',
'select * from TABLE.DBF')

エラーが発生します:

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

2番目の答えを試すと:

select *
from openrowset('VFPOLEDB',
'\\Path\';'';'',
'select * from TABLE.DBF')

エラーが発生します:

Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "VFPOLEDB" has not been registered.

OLE*.dll ファイルを手動で regsvr32 に登録しようとしましたが、一部しか機能しませんでした。ole32、oleacc、oleaut32、および oleprn では、成功メッセージが表示されました。oleacchooks、oleaccrc、oledlg、および oleres で、次のエラーが発生しました。

The module "oleacchooks" was loaded but the
entry-point DllRegisterServer was not found.

Make sure that "oleacchooks" is a valid DLL or OCX file
and then try again

いくつかの 調査の後、コンポーネントをインストールしようとしましたが、FoxPro の msi ファイル (ここにあります) をインストールしようとしたときに、次のエラーが発生しました。

An error occurred while processing the last operation.
Error code 80110408 - Error occurred reading the application file

The event log may contain additional troubleshooting information.

だから、私はここで公式に迷っています。openrowset を機能させる方法、または dbf ファイルをインポートする他の方法について提案がある人はいますか?

4

2 に答える 2

0

VFPOLEDB.1 をプロバイダーとして使用してみてください。ドライバーのバージョンの問題が発生している可能性があります。

于 2013-11-01T13:41:49.397 に答える