2012-02-09 22 views
3

私は、PowerShellを使用してリモートのPostgreSQLデータベースに接続しようとしています。 PowerShellを使ったのはこれが初めてのことですので、これがノブの質問であればごめんなさい。これは私のコードです:Powershellを使用してリモートのPostgreSQLデータベースに接続します。

$DBConnectionString = "Driver={PostgreSQL UNICODE}:Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;" 
$DBConn = New-Object System.Data.Odbc.OdbcConnection; 
$DBConn.ConnectionString = $DBConnectionString; 
$DBConn.Open(); 
$DBCmd = $DBConn.CreateCommand(); 
$DBCmd.CommandText = "SELECT * FROM mytable;"; 
$DBCmd.ExecuteReader(); 
$DBConn.Close(); 

私はこれを実行すると、私は取得0 "引数(S) "と" 開く「を呼び出すと例外":ERRORは、[IM002] [Microsoft]の[ODBCドライバマネージャ]データソース名が見つかりませんデフォルトドライバは指定されていません "。私はpgsqlodbcドライバをダウンロードしてインストールしましたが、まだこのエラーが発生しています。どのように私はこれを修正することができる任意のアイデアを誰も持っています私はインターネットを検索しましたが、現時点ではどこにも行きません。

ありがとうございました。

答えて

1

DSNがODBCデータソースに存在するかどうかを確認します。あなたが 'コントロールパネル'、 '管理者'に行くものを作成する必要がない場合。ツール '、'データソース(ODBC) 'を選択します。次に、[Add User DSN]を選択します。 PostgreSQLドライバを選択し、サーバとデータベースの詳細を入力します。 チェック接続がすべて正常です!

1

問題が見つかりました。私はPostgreSQL ODBCドライバがインストールされていると思っていましたが、そうではありませんでした。私はついにこのサイトを見つけてから働くようになった:http://code.google.com/p/visionmap/wiki/psqlODBCそれから私は上記の指示に従った。できます。

ありがとうございました。

0

実際にはドライバの宣言後に接続文字列に誤字があります。 代わりセミコロン:)の二重コロンがあり

誤:{PostgreSQLのUNICODE}サーバー

正しい:{PostgreSQLのUNICODE}。サーバー

0

はご相談ください:https://odbc.postgresql.org/
ダウンロード:Windows上https://www.postgresql.org/ftp/odbc/versions/msi/

データソース(ODBC):スタート→検索→ ODBC →ユーザーDSN →追加/設定

Screenshot ODBC Driver Setup

例:

$MyServer = "<ip>" 
$MyPort = "5432" 
$MyDB = "<database>" 
$MyUid = "<user>" 
$MyPass = "<pass>" 

$DBConnectionString = "Driver={PostgreSQL UNICODE(x64)};Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;" 
$DBConn = New-Object System.Data.Odbc.OdbcConnection; 
$DBConn.ConnectionString = $DBConnectionString; 
$DBConn.Open(); 
$DBCmd = $DBConn.CreateCommand(); 
$DBCmd.CommandText = "SELECT * FROM tb_module;"; 
$DBCmd.ExecuteReader(); 
$DBConn.Close();