Backup com postgre

bons dias
o backup funciona e tal mas o meu maior porblema e o seguinte:

code:
Process p = r.exec(" “C:\Programas\PostgreSQL\8.2\bin\pg_dump.exe” -U postgres -b -Fc -i teste -f "+caminho+a+b);

este programa vai buscar apenas a tabela teste… ja pos uma vareavel a tomar o valor onde em vez de teste ponho “+a” mas passa a dar erro no “-f”…
o meu maior problema e que a db tem de ser daqdo pelo utilzador e nao consigo por a variavel direito la…

Fiquem Bem

Se o “caminho” for um nome de arquivo contendo espaços, veja se é possível passar aspas no comando.

 Process p = r.exec(" \"C:\Programas\PostgreSQL\8.2\bin\pg_dump.exe\" -U postgres -b -Fc -i teste -f "+ "\"" + caminho+a+b + "\"");

A propósito, que raio de nome de variável é “a” e “b”? Não tenha preguiça de usar nomes mais elucidativos :stuck_out_tongue:

[quote=reshpu]code:
Process p = r.exec(" “C:\Programas\PostgreSQL\8.2\bin\pg_dump.exe” -U postgres -b -Fc -i teste -f "+caminho+a+b);[/quote]

Tem alguma coisa errada nesse dump e por isso a reclamação. O que o pg_dump não está entendendo é essa variável teste solta aí no seu sistema. Vamos ao man do pg_dump:

[list] -t table

   --table=table
          Dump data for table only. It is possible for there to be  multi‐
          ple  tables  with the same name in different schemas; if that is
          the case, all matching  tables  will  be  dumped.  Specify  both
          --schema and --table to select just one table.

[/list]

Se você quer só uma tabela a estrutura é, no seu caso:

pg_dump -U postgres -d BANCO_A_SER_DUMPEADO -t TABELA_A_SER_DUMPEADA -f CAMINHO_DO_ARQUIVO

você pode omitir o -d se o seu banco de dados se chamar postgres (meio ruim isso, né?) ou se não tiver num banco de dados (só num schema, esse conceito é um pouco diferente, mas é igual o do oracle).

-Fc é para você colocar num formato mais rápido de retorno usando o pg_restore;
-b não sei que raio é isso…
-i é um ignore version do banco de dados (seu servidor tá tão bagunçado assim? Ou você vai distribuir um pg_dump junto com sua aplicação?)

verifique sua sintaxe, abraços e boa sorte