0

SQLOLEBDを使用して、VBScriptを使用してCSVファイルからレコードを取得するという非常に簡単な例を実行しようとしています。次のエラーが発生します:行:4文字:1エラー:無効な接続文字列属性 "コード:80004005ソース:SQLServer用のMicrosoftOLD DBプロバイダー誰かが私をまっすぐにしてくれませんか?

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open "Provider=SQLOLEDB; Data Source= C:\Users\public\; Extended Properties=""text;HDR=YES;FMT=Delimited"""

objRecordset.Open "SELECT * FROM employees.csv, objConnection, adOpenStatic, adLockOptimistic, adCmdText"

Do Until objRecordset.EOF
Wscript.Echo "name: " & objRecordset.Fields.Item("Name")
objRecordset.MoveNext
Loop

wscript.echo "Finished"

従業員.csv

id、name、grade 1、 "Ezequiel、Justin"、1 2、Charlie Sheen、4 3、 "Name、Your"、8 4、Another Guy、16

4

1 に答える 1

0

エラーの直接の原因は、間違ったOLE DBプロバイダーを使用していることです(Jetプロバイダーのエラーは32ビットと64ビットの問題である可能性があります)が、実際の目標は、テキストファイルのデータとデータのデータを結合することであるようです。テーブル。

2つの非常に単純なオプションは、a)さまざまな一括読み込み方法の1つを使用してファイルをSQL Serverテーブルに読み込み、通常どおりにテーブルを結合するか、b)OPENROWSET()を使用してファイルのテーブルを直接結合することです。これを頻繁に行う場合、またはデータが多い場合は、データベースエンジンを活用してインデックスを作成し、結合のパフォーマンスを向上させることができるため、最初のアプローチの方がおそらく優れています。

これにもSSISを使用できますが、このシナリオではおそらくやり過ぎです。

また、SQLServerのバージョンやその他の特定の詳細について言及することは常に役立ちます。

于 2012-07-06T18:34:27.690 に答える