3

私はストアドプロシージャが初めてなので、これを理解するのに少し助けが必要です。このストア プロシージャを使用して、.DBF テーブルを Sql Server 2008 にインポートしようとしています。

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('vfpoledb','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

このエラーが表示されます。OLE DB プロバイダ "vfpoledb" が登録されていません。これは正しくありません。インストールして、他のアプリケーションで正常に動作します。

私もこのプロバイダーでこの方法で実行しようとしましたが、リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" のデータ ソース オブジェクトを初期化できませんというエラー メッセージが表示されます。

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

このストアド プロシージャを作成する最も簡単な方法は何ですか? ウィザードやプログラムではなく、ストアド プロシージャにしたいので、プログラムを提供しないでください。

4

3 に答える 3

4

あなたが試すことができます

SELECT * into SomeTable
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\SomeServer\SomePath\;
SourceType=DBF',
'SELECT * FROM SomeDBF')

この前の質問から

于 2009-05-19T22:38:50.767 に答える
2

VFPOLEDBの「フレンドリ名」についてはわかりませんが、特定のDBFファイルを名前で指定している限り、2番目のSPは機能するはずです(つまり、「Microsoft.Jet.OLEDB.4.0」を使用)。実際のファイルではなく、ディレクトリを指しているようです。

詳細については、http: //msdn.microsoft.com/en-us/library/ms190312.aspxを参照してください。

于 2009-05-19T22:35:18.417 に答える