2011-01-12 28 views
0

非常に古いPostges/PERL WebサイトをSQL Server/C#に変換する作業があります。PostgresへのODBC接続の設定

デスクトップに現在のバージョンのPostgresをインストールしており、古いデータベース(切り取りと貼り付け)から大部分のデータをインポートしました。

今、Visual Studio 2008/C#を使用してそのデータベースに接続しようとしています。

32ビットと64ビットのpsqlODBC Postgresドライバをダウンロードしました。私は正常に作成し、64ビットのドライバを使用してユーザーのDSNをテストすることができますが、ODBC接続を作成しようとすると、私のC#コードでエラーが発生します( "DLLの 'kernel32.dll' InterlockedIncrement 'という名前のエントリポイントを見つけることができません'')。

私は32ビットドライバをインストールして使用しようとしましたが、DSNを作成できません。ドライバリストに表示されないので、ちょっと立ち往生しています。

+1

私はこのページを見つけました。最後のステップは詳細な説明があります。私はそれがあなたのために働くかどうか分からないが、私はそれが役立つ場合に私はそれを投稿すると思った。 – David

+0

32ビット版と64ビット版のPostgreSQLドライバをインストールしていただければ幸いです。 32ビット版をインストール中にエラーがありましたか? –

答えて

1

PostgreSQLデータベースを他のdbエンジンに変換するだけであれば、PostgreSQLデータベース全体をpg_dumpを使ってテキストにエクスポートすることができます。スキーマのみをエクスポートする可能性があり、興味のあるテーブルからデータをエクスポートできます。これらは、INSERT ...文として、またはCSVに似た形式のCOPYとしてエクスポートできます。このようにすれば、ODBCは必要ありません。

+0

私は古いデータベースからすべてのデータをエクスポートすることができました。問題は現在のバージョンのPostgresにインポートすることです。 PgAdmin IIIのSQLツールはPgAdminをハングさせ、PSQLクライアントは1つのスクリプトで5000行もインポートできるようになっていましたが、今は300で窒息します。したがって、エンジン自体や私の持つ方法それが設定されました。私はまた、私はサイトを変換している間にデータにアクセスできるようにする必要がありますので、ODBCドライバはソリューションの必要な部分のようです。 –

+0

'pg_dump'でデータをテキストにエクスポートしましたか?もしそうなら、 'CREATE TABLE ...'を 'SQL Server'に特有の型を使うように変換し、' INSERT INTO ... 'や' COPY ... 'と同様の操作をすることができます。 AFAIKでは、いくつかの形式と形式が異なります。たとえば、日時形式は非常に異なります。 –

+0

データを移動するときは、pg_dumpの* new *バージョンを使用して*古いバージョンのPostgreSQLからデータをダンプします。 –

関連する問題