Ir para conteúdo
Fórum Script Brasil

Roberto Gugisch

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Tudo que Roberto Gugisch postou

  1. Tive que formatar meu servidor! Porém, antes eu fiz um backup pelo pg_dump (um backup com extensão .SQL e outro .TAR). Em ambos arquivos, tem a seguinte linha para criar o banco de dados: --CREATE DATABASE parana WITH TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'Portuguese, Brazil' LC_CTYPE = 'Portuguese, Brazil'; --ALTER DATABASE parana OWNER TO postgres; Porém, eu crio o banco com as linhas acima e mesmo assim tenho erro! Após rodar o script de restauração do banco de dados eu tenho o seguinte erro ao entrar no PgAdmin III versão 1.12: Ocorreu um erro fatal: conversão entre LATIN1 e WIN1252 não é suportada! Já tentei criar o banco com UTF8 mas dá erro do mesmo jeito com o LATIN1. Alguém tem uma idéia de como criar o banco para que resolva o problema? Já estou meio desesperado para resolver esse problema pois estamos com todos os sistemas parados!
  2. Criei uma tabela chama histórico com a seguinte estrutura: data (timestamp) - data e hora login (varchar 10) - login do usuário tabela (varchar 20) - nome da tabela id (integer) - ID do registro tipo (varchar 10) - tipo (insert/delete/update) conteudo (varchar 0) - conteudo do registro o que eu gostaria é de um loop com os campos para preenchimento do campo conteudo. Esse campo teria a seguinte forma: id = 10 cnpj = 1245678912 data = 15/10/2010 descricao = teste de descricao Eu imaginei algo assim FOR x IN [b]quantidade de campos[/b] If new.campo <> old.campo and tipo = 'update' svariavel = nome do campo || ' = ' || old.campo || ' / ' || new.campo || [b]troca de linha[/b] else svariavel = nome do campo || ' = ' || new.campo || [b]troca de linha[/b] end if x = x + 1 end loop INSERT INTO historico (data, login, tabela, id, tipo, conteudo) VALUES (now(), new.login, tabela, new.id, new.tipo, sVariavel); Só que não tenho nem idéia de como pegar a quantidade de campos nem de compará-la com o x do FOR Nem como faz\er o IF e as atribuições à variavel. Alguém tem algo assim pronto ou que saiba como fazer para me ajudar? Desde já agradeço a todos!
  3. Estou com um Windows Server 2008 com o PostgreSQL 8.x e o pgAdmin III 1.12 instalados! Quando tento fazer meu backup diário através do pg_dump (do pgAdmin III) ele me dá o seguinte erro: Falha na inicialização do aplicativo devido à configuração lado a lado incorreta. Consulte o log de eventos do aplicativo ou use a ferramenta de linha de comando sxstrace.exe para obter mais informações. O comando utilizado para o dump é: pg_dump.exe" --format=p --create --column-inserts --host=10.1.1.49 --port=5432 --username=postgres --file=20110331 postgres Alguém tem idéia do porque disso e de como resolver? Desde já agradeço a todos!
  4. Está me ocorrendo o erro abaixo durante a gravação de registros na tabela. Porém ele grava as informações. --------------------------- Debugger Exception Notification --------------------------- Project Inclusao7.exe raised exception class EZSQLException with message 'SQL Error: ERRO: sequência de bytes é inválida para codificação "UTF8": 0xe17269 HINT: Este erro pode acontecer também se a sequência de bytes não corresponde a codificação esperado pelo servidor, que é controlada por "client_encoding".'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- Alguém poderia me dizer como resolver isso? Ambiente: * Delphi 7 - Windows XP * PostgreSQL 8.4 - Windows Server 2008 - Banco setado para Win1252 Desde já agradeço a todos.
  5. Eu testei aqui, pois tenho um .bat que faz backup pelo menos 3 vezes ao dia! Funcionou, mas com algumas alterações: pg_dump.exe" --format=p --create --column-inserts --host=10.1.1.254 --port=5432 --username=postgres --file=%BACKUP_FILE1% parana Não precisei de direcionamentos pois a chave --file indica qual arquivo vai ser gerado! Agora falta um restore que realemnte funcione!
  6. Revivendo o tópico! Estou com problemas no Firewall. Estou com um servidor Windows 2008 Enterprise e com o PG 8.4. Já liberei a porta 5432 de todas as maneiras possíveis no firewall do servidor e mesmo assim só consigo conectar no server se desligar o firewall do server! No meu micro (um XP) fiz a tentativa de instalar o PG e liberar também a porta 5432, mas mesmo assim, só consigo uma conexão com o banco se o firewall estiver desligado! Além de liberar a porta 5432, o que mais eu tenho que liberar no Firewall para conectar com o PG?
  7. Ok. E como você volta elas? Pois o comando PSQL me deu erro quando retornei minha base, além de ele não retornar tudo!
  8. Refiz as tabelas que usam as Trigger, refiz as triggers, refiz as funções. Tudo funcionou! Deve ser alguma coisa relativo ao restore do PG pelo PSQL. Tem idéia do que pode ter acontecido? Poderia me mostrar a forma como você faz backup e a forma como você restaura eles? Preciso acertar aqui para que não ocorra de novo o que ocorreu dessa vez.
  9. Uso o comando abaixo: "C:\Arquivos de programas\pgAdmin III\1.12\pg_dumpall.exe" --host 187.7.131.36 --port 5432 --username postgres --file %BACKUP_FILE% Isso faz o backup de TUDO que tem no PG. Você faz diferente? Estou recriando a base toda manualmente para ver se tem algo de errado no restore mesmo! O que estou notando de diferente são os generators. Antes eu simplismente colocava no DEFAULT do campo: nextval('status_id'::regclass) agora tenho que colocar: nextval('parana.status_id'::regclass) pois senão não encontra! Muito estranho ele não encontrar! O erro que dá nas trigger parece que ele não acha a tabela referente a ela e dá erro tentando achar uma tabela com nome NEW.
  10. Kakao, me desculpe. A versão anterior é a 8.4.5.1 e a nova versão é a 8.4.7.1. Instalei no meu micro a versão anterior e os mesmos problemas estão ocorrendo. Creio que é alguma cois aque o PSQL trouxe de errado! O mais estranho é que o PSQL não retorna as triggers e funções. Tenho que fazer isso na mão! Você comentou que não precisaria de um restore. Mas como vou voltar meu banco? Eu nenhuma vez eu utilizei o restore, mas sempre o PSQL. Como te disse no primeiro post, eu fiz um DUMPALL (na verdade faço isso 2 vezes por dia - agendado no server) e isso é enviado ao meu e-mail. Se quiser te passo o arquivo SQL gerado para você dar uma olhada! E novamente, obrigado pela ajuda! :rolleyes:
  11. A versão anterior era 8.4.0.x a atual é a 8.4.7.1. Não creio que tenha mudado algo com relação a isso! Mas também nem sei onde buscar esse tipo de informação! Sou novo no PG e ele tem certas particularidades que me deixam ainda de cabelo em pé! Obrigado pela ajuda Kakao!
  12. Ontem instalei uma nova versão do meu servidor! Antes disso eu fiz um dump no meu banco de dados (dumpall). Reinstalei o servidor (Windos 2008 Enterprise e reinstalei o PG. Ao retornar o meu Dump tive alguns problemas, o psql não reconhecia alguns comandos como "\connect postgres". O que ele não reconheceu refiz manualmente. Só que as triggers que eu tenho no banco deixaram de funcionar. Já as olhei e reolhei e não vejo nada que possa estar erradas. Notem que elas funcionavam normalmente. O erro que estão dando é o seguinte (este erro é de um das triggewr, mas acredito que resolvendo um resove-se todos os outros). --------------------------- SQL Error: ERRO: registro "new" não tem campo "dt_mudanca" CONTEXT: função PL/pgSQL "update_posvendas" linha 2 em IF. --------------------------- OK --------------------------- Minha trigger: BEGIN INSERT INTO parana.historico_pv ( id, status, dt_mudanca, data ) VALUES ( new.id, new.status, new.dt_status, now() ); IF new.observacao <> '' THEN INSERT INTO parana.hist_pv ( id, dt_mudanca, observacoes, data ) VALUES ( new.id, new.dt_status, new.observacao, now() ); END IF; RETURN new; END; É uma trigger simples, ela simplismente guarda todas as alterações que existiram no campo Observações e no campo Status! Outra coisa que alterou depois que foi alterado o servidor são os generations que antes estavam assim: nextval('ordens_id'::regclass) e agora só funcionam se estiverem assim: nextval('parana.ordens_id'::regclass) Eu tive que incluir o schema neles para que funcionassem. Sem ele o PG nem achava o generator. Minha plataforma: * PG 8.4 rodando no Windows Server 2008 Enterprise * Delphi 7 conectando através do Zeos Alguém teria alguma sugestão de como acertar isso? Desde já agradeço a todos.
  13. Possuo as seguintes tabelas (Ordens e Historico): CREATE TABLE parana.ordens ( id integer NOT NULL, tipo character varying(10) NOT NULL DEFAULT 'Fixa'::character varying, status character varying(30), dt_mudanca date, CONSTRAINT ordens_pkey PRIMARY KEY (id) ); CREATE TABLE parana.historico ( "Id" integer NOT NULL DEFAULT 0, status integer NOT NULL DEFAULT 0, dt_mudanca date NOT NULL DEFAULT '1971-01-01'::date, CONSTRAINT historico_pkey PRIMARY KEY ("Id", dt_mudanca, status) ); E a seguinte trigger para a tabela ordens: CREATE OR REPLACE FUNCTION parana.insert_ordens() RETURNS trigger AS $BODY$ begin insert into parana.historico ( id, status, dt_mudanca ) values (new.id, new.status, new.dt_mudanca); return new; end; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; Quando eu tento inserir um registro na tabela ordens me dá o seguinte erro: ERRO: coluna "id" da relação "historico" não existe LINE 1: insert into parana.historico ( id, status, dt_mudanca ) valu... ^ Não entendo o porque a mesma não funciona. Estou migrando de um banco de dados FireBird para o PG, mas estou apanhando muito com as triggers! Alguém poderia me ajudar a solucionar esse problema? Acredito que com a solução desse os outros eu consiga resolver por mim mesmo! Desde já agradeço a todos! Resolvido! O problema é que inadvertidamente eu criei o campo com a primeira letra em maísuculo! Ajustei o campo para minúsculo e o problema se resolveu!
  14. Acabei de instalar um novo server (Windows 2008 64bits)e instalei o PostgreSQL 9.0 64 bits. Localmente eu consigo conectar, mas pelo IP não consigo de jeito nenhum! Existe alguma configuração à ser feita para que eu possa acessar ele? Já procurei por passo a passo mas todos eles são somente para instalar ele no windows. Nada para configurar! Desde já agradeço a todos! [RESOLVIDO] Consegui resolver o problema já!
  15. Bom dia, possuo duas tabelas. Uma que é o destino e outra em que eu importo arquivos vindos do Excel. O que eu preciso fazer é atualizar a tabela destino (ORDENS) com base na tabela temporária (SIBEL). Só que não consigo fazer isso pois sou novato em SQL. O que eu tinha feito foi o seguinte: UPDATE ordens SET STATUS=sibel.status, dt_mudanca=sibel.dt_mudanca, tp_pedido=sibel.tp_pedido, os_sap=sibel.os_sap, dt_reanalise=sibel.dt_reanalise, dt_credito=sibel.dt_credito, dt_aprovacao=sibel.dt_aprovacao, decisao=sibel.decisao, observacoes=sibel.observacoes, nf=sibel.nf, status_entrega=sibel.status_entrega, dt_mudanca_entrega=sibel.dt_mudanca_entrega WHERE cnpj=sibel.cnpj AND os_sibel=sibel.os_sibel Mas me dá erro no WHERE porque ele não reconhece a tabela SIBEL. Como posso fazer essa atualização? Desde já agradeço a todos pela ajuda!
×
×
  • Criar Novo...