2012-04-26 17 views
0

私はPostgreSQLに基づいてデータベースを含むアプリケーションを持っています。私は自分のアプリケーションを使ってこのデータベースのバックアップを取っています。例えば、私は、プログラムメニューのオプションをクリックして、データベースバックアップでファイルを取得したいと考えています。私はこのデータベースの管理権限をすべて持っています。アプリケーションは、.net 4.0(C#)のWindowsフォームで作成されます。私のアプリケーションからのpostgresqlデータベースのバックアップ

問題をどのように解決できますか?

i「はそれを試みましたが、それは働いていない

string zapytanie = @"pg_dump WFR > C:\kopia"; 
       string pol = Ustawienia.ConnectionString; 
       NpgsqlConnection conn = new NpgsqlConnection(pol); 
       conn.Open(); 
       NpgsqlCommand comm = conn.CreateCommand(); 
       comm.CommandText = zapytanie; 

       comm.ExecuteNonQuery(); 
       conn.Close(); 

エラー:

ERROR:42601: "のpg_dump" またはその近くの構文エラー

スタックトレース:

w Npgsql.NpgsqlState.<ProcessBackendResponses_Ver_3>d__a.MoveNext() 
    w Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() 
    w Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() 
    w Npgsql.ForwardsOnlyDataReader.NextResult() 
    w Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) 
    w Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) 
    w Npgsql.NpgsqlCommand.ExecuteNonQuery() 
    w Faktury_i_Rachunki_2.Forms.FrmKopiaBezp.BtUtworzKopie_Click(Object sender, EventArgs e) w D:\nwfr3\Faktury i Rachunki 2.0\Forms\FrmKopiaBezp.cs:wiersz 38 
+1

あなたはpostgreマニュアルを読もうとしましたか? 'postgresql backup command'を検索するときにGoogleで初めてヒットしました。あなたがそれらのコマンドが十分でない理由を説明してください – jgauffin

+0

私はそれを試しましたが、それは動作していない: 文字列zapytanie = @ "pg_dump WFR> C:\ kopia"; string pol = Ustawienia.ConnectionString; NpgsqlConnection conn =新しいNpgsqlConnection(pol); conn.Open(); NpgsqlCommand comm = conn.CreateCommand(); comm.CommandText = zapytanie; comm.ExecuteNonQuery(); conn.Close(); – BKl

+0

あなたの質問(書式付き)にコメントを追加してください。エラーメッセージ – jgauffin

答えて

1

多分あなたアプリケーションにMs Windows用のバイナリファイル(および必要なDLL)をpg_dump.exeのコピーを含めることができます。次に、GUIから適切なパラメータを指定して起動します。

1

pg_dumpはツールではなくSQLコマンドです(あなたはライブラリがpg_dump.exeによって必要とされているかを調べるためにDependency Walkerを使用することができます)。 Process.Startを使用して実行する必要があります。

pg_dumpはSQLスクリプトを出力します。したがって、SQLスクリプト形式の標準をキャプチャするには、何らかの方法が必要です。 http://www.c-sharpcorner.com/UploadFile/edwinlima/SystemDiagnosticProcess12052005035444AM/SystemDiagnosticProcess.aspx

+0

ありがとうございました。私はそれをチェックし、解決策が得られたら、ここに貼り付けます。良い一日を! – BKl

関連する問題