2012-04-26 3 views
0

PostgreSQL을 기반으로하는 데이터베이스가 포함 된 응용 프로그램이 있습니다. 내 응용 프로그램을 사용하여이 데이터베이스의 백업을 얻습니다. 예를 들면. 프로그램 메뉴에서 옵션을 클릭하고 데이터베이스 백업으로 파일을 가져오고 싶습니다. 나는이 데이터베이스에 대한 모든 관리 권한을 가지고있다. 응용 프로그램은 .net 4.0 (C#), Windows 양식에서 wrtitten됩니다.내 응용 프로그램에서 postgresql 데이터베이스 백업

어떻게하면 문제를 해결할 수 있습니까? 내가 '


그것을 시도했습니다 그러나 그것은 작동하지 않습니다 :

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(); 

오류 :

오류 : 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

나는 그것을 시도했지만 작동하지 않습니다 : string 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

관련 문제