1

さて、私がすでに行ったことは、Microsoft.Jet.OLEDB プロバイダーを介して mdb テーブルにアクセスするために接続できることです。次に、選択クエリ、OleDbDataAdapter、および DataSet を使用して、テーブルからデータを取得できます。

今、私は Npgsql 経由で Postgresql に接続できますが、私を逃れるものは何ですか - どうすればアクセス テーブルからデータを取得し、それを postgresql テーブルに入れることができますか?

私が達成したいのは、アクセスmdbテーブルからデータを取得し、「select into」クエリを使用してpostgresqlテーブルに挿入することです。

4

3 に答える 3

1

このインスタンスでは、あるデータベースから別のデータベースへの「SELECT INTO」クエリを使用できないと思います (2 つのデータベースが異なるエンジン上にあるため)。あなたがしなければならないことは、データを MDB からいくつかの CLR オブジェクトに読み込んで保存し、次に CLR データを PostgreSQL データベースに読み込むことです。これはかなり簡単です。思い通りにやるのは無理だな

于 2010-07-06T11:39:11.767 に答える
0

ここにあなたを助けるかもしれないいくつかの非常にアマチュアなメモがあります. 私は postgressql にアクセスできないため、SQL Server Express について言及しています。SQL サーバー テーブルを Access にリンクし、接続プロパティを確認して接続文字列を取得しましたが、こちらも参照できます: http://www.connectionstrings.com/postgre-sql。この 2 行は、Access の table1 から SQL Express の table2 に値を挿入します。Access では、正しくない場合、クエリは警告なしで失敗します (この場合は Access 2010)。これを Visual c# 2010 Express で試しました。

//create the database connection
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\docs\\db.mdb");

//create the command object and store the sql query
OleDbCommand aCommand = new OleDbCommand("INSERT into [ODBC;Description=TEST;DRIVER=SQL Server;SERVER=COMP\\SQLEXPRESS;Trusted_Connection=Yes;DATABASE=test].Table2 (id, atext) select id, atext from table1", aConnection);
于 2010-07-06T16:36:11.090 に答える
0

ねえ、私を助けてくれたすべての人に感謝します、私はついにそれを理解しました. したがって、同じ状況に遭遇するすべての人のために、Postgresql の正しい接続文字列を使用したソリューションを次に示します。

//create the database connection
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\docs\\db.mdb");

//create the command object and store the sql query
OleDbCommand aCommand = new OleDbCommand("INSERT into [ODBC;DSN=PostgreSQL;DATABASE=postgres;SERVER=localhost;PORT=5432;UID=postgres;PWD=test;].Table2 (id, atext) select id, atext from table1", aConnection);
于 2010-07-12T09:36:33.727 に答える