Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel
- Mensagem original -
>> Segundo seu pg_hba, tem uma linha que permite todo e qualquer IP sem senha
>> (host all postgres 0/0 trust), então, não deveria pedir senha nunca.
> Ou seja, está funcionando conforme se pede, neste caso a linha *local* não
> deveria agir da mesma forma?

Não. A linha local é pra socket Unix. Quando se passa o IP ou localhost no psql 
você está usando IP (linha host no pg_hba.conf).
Eu sinceramente não sei como são implementados sockets no Windows, então fico 
devendo a informação (ou algum outro colega pode te ajudar mais).

>> Verifique se o pg_hba.conf é do cluster certo (tipo, não tem outro rodando na
>> porta 5432?)
> 
> Realmente tinha outro cluster (9,2) rodando na porta 5432, mas eu parei o
> serviço e mesmo assim continua pedindo senha, daí eu mudei a porta do 8.4
> para 5432 e... funcionou, o que deve estar errado?

Provavelmente você estava mexendo no pg_hba.conf do cluster errado, sem querer.
Acontece, às vezes a confusão é grande quando se tem mais de um cluster numa 
máquina Windows, pela absoluta falta de padronização de diretórios desse S.O. :(
Todavia, fico contente que tenha atingido seu objetivo (pelo que entendi, 
automatizar um backup).

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Testes com PG 9.3

2013-09-03 Por tôpico Bruno Silva
Boa noite pessoal, estou fazendo testes com o PG 9.3rc1.
Vou agora transferir uma base de tamanho baixo ( 80G ), mas vou testar a
parte de dump e restore.
Vocês tem sugestão de algo para verificar como ficou?

Bruno E. A. Silva.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2013/9/3 Pain28248 . :
> Muda sim, pois as tabelas contém dados(pontos, descriçao...) e objetos que
> podem assumir figuras geométricas(polígonos) ai o modo como são acessados
> esses dados mudam um.

Mas não foi isso que ele perguntou.  Ele perguntou se alterava em
termos de cópias de segurança.


> pode instalar uma o PostGis normalmente, pois como falaram ai em cima, é a
> penas um extensão para acessos a dados geográficos e ao instalar ele criará
> automaticamente por default uma base de dados com um template(modelo) de
> como são organizadas as suas tabelas.

O modelo não tem nada a ver com ‘como são organizadas as tabelas’.
Ele apenas contém os tipos de dados e funções relevantes.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Pain28248 .
Muda sim, pois as tabelas contém dados(pontos, descriçao...) e objetos que
podem assumir figuras geométricas(polígonos) ai o modo como são acessados
esses dados mudam um. pouco, pois vai exigir outras formas de consulta. Vc
pode instalar uma o PostGis normalmente, pois como falaram ai em cima, é a
penas um extensão para acessos a dados geográficos e ao instalar ele criará
automaticamente por default uma base de dados com um template(modelo) de
como são organizadas as suas tabelas.

Espero ter ajudado

abs,

Jonnathann Silva Finizola(Graduando em Ciências da Computação-UFPB)


Em 3 de setembro de 2013 15:20, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2013/9/3 Danilo Silva :
> > Em 3 de setembro de 2013 11:42, Flavio Henrique Araque Gurgel
> >  escreveu:
> >> Em 03-09-2013 11:32, Danilo Silva escreveu:
> >>> Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:
>
> Basicamente, o PostGIS é um conjunto de tipos de dados e funções
> voltadas para coordenadas geográficas.
>
>
> >>> No que consiste a instalação do PostGIS?
>
> Além do código do PostGIS em si, tem de rodar um programeta em cada
> base de dados cadastrando esses tipos e funções.  Como o Flávio
> explicou.
>
>
> > Em termos de dump, backup base, altera alguma coisa?
>
> Como são novos apenas novos tipos de dados e funções, nada muda.
>
> Só tem de prestar atenção para não restaurar uma base sem antes
> instalar o PostGIS.
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Delphi + Zeos: Alterar campos de tabela via trigger

2013-09-03 Por tôpico Rafael Fialho Corrêa
O return old utilizado caso esteja fazendo um "insert", seria para quê?
Porque eu particularmente considero uma má implementação..


Em 3 de setembro de 2013 18:16, Rafael Naves
escreveu:

> @Rafael Fialho,
>
> Valeu pela resposta, mas a estrutura utilizada esta funcionando sem
> problemas para outros bancos e outras tabelas.
> Tudo acontece quando ativo a trigger da minha tabela do banco. Não consigo
> fazer nenhuma inserção no banco por conta do erro.
>
> @Marcelo Silva,
>
> Valeu pela resposta, mas não é o caso. A trigger fica lá no banco
> normalmente, a aplicação, uso apenas para fazer o insert ou update da
> tabela.
>
>
> Verifiquei também que ao fazer apply pela aplicação com a trigger ativa,
> não chega nada no log do Postgre.
>
>
>
> Em 3 de setembro de 2013 17:50, Marcelo da Silva escreveu:
>
>
>> Olha vou dar um "xutão" aqui...
>>
>> Se estiver executando sua Trigger num ZQuery normal, possivelmente ele
>> vai dar erro porque o ZQuery precisa de um retorno do SQL
>> Em outras palavras, ele serve pra SELECT * FROM TABELA
>> Assim como o ZUpdate serve pra UPDATE :-)
>> Pra executar Procedures e Triggers do banco você deve executar
>> diretamente no SQL direto
>>
>> Exemplo:
>>
>> var
>>   zqrLocal: TZQuery;
>> begin
>>   zqrLocal := TZQuery.Create(nil);
>>   zqrLocal.Connection := SeuZconecta;
>>   zqrLocal.Close;
>>   zqrLocal.SQL.Add('SEU SQL');
>>   zqrLocal.ExecSQL;
>>   FreeAndNil(zqrLocal);
>> end;
>>
>> Veja ai se funciona
>>
>>
>> Marcelo Silva
>> ---
>>
>>
>> Em 3 de setembro de 2013 17:35, Rafael Fialho Corrêa <
>> r.fia...@ibest.com.br> escreveu:
>>
>> Já passei por algo parecido sim, Rafael.
>>> Normalmente o erro estava no próprio SQL repassado ao Zeos.
>>> Eu utilizo sempre esta estrutura para escrita/edição de dados:
>>> "select * from tabela where id_tabela = :id_tabela"
>>> Neste caso, ao efetuar insert ou update, o sistema sempre se comporta de
>>> maneira correta.
>>>
>>> De qualquer forma, creio que deves verificar as propriedades do teu
>>> TZQuery, antes de mais nada, e verificar se a estrutura de query repassada
>>> ao componente está de maneira simples e "filtrada".
>>>
>>>
>>> Em 3 de setembro de 2013 17:06, Rafael Naves <
>>> emaildorafaelna...@gmail.com> escreveu:
>>>
 Boa tarde a todos,

 Eu tenho uma trigger simples para preencher alguns campos da minha
 tabela a cada alteração de registro:

 *CREATE TRIGGER tabela_teste_trigger_ui
 *
 *  BEFORE INSERT OR UPDATE *
 *  ON public.tabela_teste FOR EACH ROW *
 *  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*

 *> Ela aciona uma a função abaixo:*

 *CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
 *
 *)*
 *RETURNS trigger AS*
 *$body$*
 *BEGIN
 *
 *
 *
 *  if (TG_OP = 'INSERT') then*
 *operacao := 'I';*
 *  else*
 *operacao := 'A';  *
 *  end if;*
 *  *
 *  new.DATA_ALTERACAO:= current_timestamp;*
 *  new.TIPO_OPERACAO := operacao;
 *
 *  *
 *  if (TG_OP = 'INSERT') then
 *
 *return old;*
 *  else*
 *return new;*
 *  end if;*
 *
 *
 *END;
 *
 *$body$*
 *LANGUAGE 'plpgsql'*
 *VOLATILE*
 *RETURNS NULL ON NULL INPUT*
 *SECURITY INVOKER*
 *COST 100;*

 *Problemática:*

 Ao executar pelo banco de dados, através de scripts funciona
 normalmente, no entanto, quando é executada via aplicação usando Delphi
 2007 + Zeos 7.0.4 eu recebo o erro:

 *'0 record(s) updated. Only one record should have been updated.'*
 *
 *
 Em minhas pesquisas e testes realizado pude perceber que o problema
 esta relacionado com o update dos campos da tabela, fato é que, ao
 desativar a trigger a aplicação consegue gravar os dados normalmente na
 tabela.

 Alguém já passou por isso ou percebeu alguma coisa na função que possa
 estar ocasionando o problema?

 Obrigado.



 --
 
 Rafael M. Naves
 Analista/Programador
 (31)9861-4047 (*novo!*)
 (31)8636-8910
 http://www.twitter.com/navesrafael
 http://www.rafaelnaves.com


 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


>>>
>>> ___
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>> --
>> Marcelo Silva
>> 
>> Desenvolvedor Delphi / PHP
>> My Postgres database
>> Cel.: (11) 99693-4251
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.

Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Danilo Silva
Em 3 de setembro de 2013 17:44, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

>
> Em 03-09-2013 17:33, Danilo Silva escreveu:
>
>  Mesmo tirando está pedindo senha, será que o *bug* é do windows? pois
>> fui no linux e digitei: psql -U postgres -p 5433 -h
>>  e para minha surpresa, não pediu senha e
>> conectou.
>>
>
> Segundo seu pg_hba, tem uma linha que permite todo e qualquer IP sem senha
> (host all postgres 0/0 trust), então, não deveria pedir senha nunca.
>
Ou seja, está funcionando conforme se pede, neste caso a linha *local* não
deveria agir da mesma forma?

>
> Verifique se o pg_hba.conf é do cluster certo (tipo, não tem outro rodando
> na porta 5432?)


Realmente tinha outro cluster (9,2) rodando na porta 5432, mas eu parei o
serviço e mesmo assim continua pedindo senha, daí eu mudei a porta do 8.4
para 5432 e... funcionou, o que deve estar errado?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Danilo Silva
Em 3 de setembro de 2013 17:10, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

> Como você tentou conectar?
>>> Faltou isso pra saber onde você está "errando".
>>>
>>
>>
>> Foi mal, acabei esquecendo, mas segue: pelo prompt digito "C:\Program
>> Files (x86)\PostgreSQL\8.4\bin\psql.**exe" -U postgres -w -p 5433 -c
>> "SELECT pg_start_backup('bkpfisico',**TRUE);"
>>
>
> Tira a opção -w que vai conectar sem pedir a senha.
>
> Mesmo tirando está pedindo senha, será que o *bug* é do windows? pois fui
no linux e digitei: psql -U postgres -p 5433 -h  e
para minha surpresa, não pediu senha e conectou.

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Delphi + Zeos: Alterar campos de tabela via trigger

2013-09-03 Por tôpico Rafael Naves
@Rafael Fialho,

Valeu pela resposta, mas a estrutura utilizada esta funcionando sem
problemas para outros bancos e outras tabelas.
Tudo acontece quando ativo a trigger da minha tabela do banco. Não consigo
fazer nenhuma inserção no banco por conta do erro.

@Marcelo Silva,

Valeu pela resposta, mas não é o caso. A trigger fica lá no banco
normalmente, a aplicação, uso apenas para fazer o insert ou update da
tabela.


Verifiquei também que ao fazer apply pela aplicação com a trigger ativa,
não chega nada no log do Postgre.



Em 3 de setembro de 2013 17:50, Marcelo da Silva escreveu:

>
> Olha vou dar um "xutão" aqui...
>
> Se estiver executando sua Trigger num ZQuery normal, possivelmente ele vai
> dar erro porque o ZQuery precisa de um retorno do SQL
> Em outras palavras, ele serve pra SELECT * FROM TABELA
> Assim como o ZUpdate serve pra UPDATE :-)
> Pra executar Procedures e Triggers do banco você deve executar diretamente
> no SQL direto
>
> Exemplo:
>
> var
>   zqrLocal: TZQuery;
> begin
>   zqrLocal := TZQuery.Create(nil);
>   zqrLocal.Connection := SeuZconecta;
>   zqrLocal.Close;
>   zqrLocal.SQL.Add('SEU SQL');
>   zqrLocal.ExecSQL;
>   FreeAndNil(zqrLocal);
> end;
>
> Veja ai se funciona
>
>
> Marcelo Silva
> ---
>
>
> Em 3 de setembro de 2013 17:35, Rafael Fialho Corrêa <
> r.fia...@ibest.com.br> escreveu:
>
> Já passei por algo parecido sim, Rafael.
>> Normalmente o erro estava no próprio SQL repassado ao Zeos.
>> Eu utilizo sempre esta estrutura para escrita/edição de dados:
>> "select * from tabela where id_tabela = :id_tabela"
>> Neste caso, ao efetuar insert ou update, o sistema sempre se comporta de
>> maneira correta.
>>
>> De qualquer forma, creio que deves verificar as propriedades do teu
>> TZQuery, antes de mais nada, e verificar se a estrutura de query repassada
>> ao componente está de maneira simples e "filtrada".
>>
>>
>> Em 3 de setembro de 2013 17:06, Rafael Naves <
>> emaildorafaelna...@gmail.com> escreveu:
>>
>>> Boa tarde a todos,
>>>
>>> Eu tenho uma trigger simples para preencher alguns campos da minha
>>> tabela a cada alteração de registro:
>>>
>>> *CREATE TRIGGER tabela_teste_trigger_ui
>>> *
>>> *  BEFORE INSERT OR UPDATE *
>>> *  ON public.tabela_teste FOR EACH ROW *
>>> *  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*
>>>
>>> *> Ela aciona uma a função abaixo:*
>>>
>>> *CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
>>> *
>>> *)*
>>> *RETURNS trigger AS*
>>> *$body$*
>>> *BEGIN
>>> *
>>> *
>>> *
>>> *  if (TG_OP = 'INSERT') then*
>>> *operacao := 'I';*
>>> *  else*
>>> *operacao := 'A';  *
>>> *  end if;*
>>> *  *
>>> *  new.DATA_ALTERACAO:= current_timestamp;*
>>> *  new.TIPO_OPERACAO := operacao;
>>> *
>>> *  *
>>> *  if (TG_OP = 'INSERT') then
>>> *
>>> *return old;*
>>> *  else*
>>> *return new;*
>>> *  end if;*
>>> *
>>> *
>>> *END;
>>> *
>>> *$body$*
>>> *LANGUAGE 'plpgsql'*
>>> *VOLATILE*
>>> *RETURNS NULL ON NULL INPUT*
>>> *SECURITY INVOKER*
>>> *COST 100;*
>>>
>>> *Problemática:*
>>>
>>> Ao executar pelo banco de dados, através de scripts funciona
>>> normalmente, no entanto, quando é executada via aplicação usando Delphi
>>> 2007 + Zeos 7.0.4 eu recebo o erro:
>>>
>>> *'0 record(s) updated. Only one record should have been updated.'*
>>> *
>>> *
>>> Em minhas pesquisas e testes realizado pude perceber que o problema esta
>>> relacionado com o update dos campos da tabela, fato é que, ao desativar a
>>> trigger a aplicação consegue gravar os dados normalmente na tabela.
>>>
>>> Alguém já passou por isso ou percebeu alguma coisa na função que possa
>>> estar ocasionando o problema?
>>>
>>> Obrigado.
>>>
>>>
>>>
>>> --
>>> 
>>> Rafael M. Naves
>>> Analista/Programador
>>> (31)9861-4047 (*novo!*)
>>> (31)8636-8910
>>> http://www.twitter.com/navesrafael
>>> http://www.rafaelnaves.com
>>>
>>>
>>> ___
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Marcelo Silva
> 
> Desenvolvedor Delphi / PHP
> My Postgres database
> Cel.: (11) 99693-4251
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 

Rafael M. Naves
Analista/Programador
(31)9861-4047 (*novo!*)
(31)8636-8910
http://www.twitter.com/navesrafael
http://www.rafaelnaves.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pg

Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel


Em 03-09-2013 17:33, Danilo Silva escreveu:

Mesmo tirando está pedindo senha, será que o *bug* é do windows? pois
fui no linux e digitei: psql -U postgres -p 5433 -h
 e para minha surpresa, não pediu senha e conectou.


Segundo seu pg_hba, tem uma linha que permite todo e qualquer IP sem 
senha (host all postgres 0/0 trust), então, não deveria pedir senha nunca.


Verifique se o pg_hba.conf é do cluster certo (tipo, não tem outro 
rodando na porta 5432?)


[]s


__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Delphi + Zeos: Alterar campos de tabela via trigger

2013-09-03 Por tôpico Rafael Fialho Corrêa
Já passei por algo parecido sim, Rafael.
Normalmente o erro estava no próprio SQL repassado ao Zeos.
Eu utilizo sempre esta estrutura para escrita/edição de dados:
"select * from tabela where id_tabela = :id_tabela"
Neste caso, ao efetuar insert ou update, o sistema sempre se comporta de
maneira correta.

De qualquer forma, creio que deves verificar as propriedades do teu
TZQuery, antes de mais nada, e verificar se a estrutura de query repassada
ao componente está de maneira simples e "filtrada".


Em 3 de setembro de 2013 17:06, Rafael Naves
escreveu:

> Boa tarde a todos,
>
> Eu tenho uma trigger simples para preencher alguns campos da minha tabela
> a cada alteração de registro:
>
> *CREATE TRIGGER tabela_teste_trigger_ui
> *
> *  BEFORE INSERT OR UPDATE *
> *  ON public.tabela_teste FOR EACH ROW *
> *  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*
>
> *> Ela aciona uma a função abaixo:*
>
> *CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
> *
> *)*
> *RETURNS trigger AS*
> *$body$*
> *BEGIN
> *
> *
> *
> *  if (TG_OP = 'INSERT') then*
> *operacao := 'I';*
> *  else*
> *operacao := 'A';  *
> *  end if;*
> *  *
> *  new.DATA_ALTERACAO:= current_timestamp;*
> *  new.TIPO_OPERACAO := operacao;
> *
> *  *
> *  if (TG_OP = 'INSERT') then
> *
> *return old;*
> *  else*
> *return new;*
> *  end if;*
> *
> *
> *END;
> *
> *$body$*
> *LANGUAGE 'plpgsql'*
> *VOLATILE*
> *RETURNS NULL ON NULL INPUT*
> *SECURITY INVOKER*
> *COST 100;*
>
> *Problemática:*
>
> Ao executar pelo banco de dados, através de scripts funciona normalmente,
> no entanto, quando é executada via aplicação usando Delphi 2007 + Zeos
> 7.0.4 eu recebo o erro:
>
> *'0 record(s) updated. Only one record should have been updated.'*
> *
> *
> Em minhas pesquisas e testes realizado pude perceber que o problema esta
> relacionado com o update dos campos da tabela, fato é que, ao desativar a
> trigger a aplicação consegue gravar os dados normalmente na tabela.
>
> Alguém já passou por isso ou percebeu alguma coisa na função que possa
> estar ocasionando o problema?
>
> Obrigado.
>
>
>
> --
> 
> Rafael M. Naves
> Analista/Programador
> (31)9861-4047 (*novo!*)
> (31)8636-8910
> http://www.twitter.com/navesrafael
> http://www.rafaelnaves.com
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Delphi + Zeos: Alterar campos de tabela via trigger

2013-09-03 Por tôpico Marcelo da Silva
Olha vou dar um "xutão" aqui...

Se estiver executando sua Trigger num ZQuery normal, possivelmente ele vai
dar erro porque o ZQuery precisa de um retorno do SQL
Em outras palavras, ele serve pra SELECT * FROM TABELA
Assim como o ZUpdate serve pra UPDATE :-)
Pra executar Procedures e Triggers do banco você deve executar diretamente
no SQL direto

Exemplo:

var
  zqrLocal: TZQuery;
begin
  zqrLocal := TZQuery.Create(nil);
  zqrLocal.Connection := SeuZconecta;
  zqrLocal.Close;
  zqrLocal.SQL.Add('SEU SQL');
  zqrLocal.ExecSQL;
  FreeAndNil(zqrLocal);
end;

Veja ai se funciona


Marcelo Silva
---


Em 3 de setembro de 2013 17:35, Rafael Fialho Corrêa
escreveu:

> Já passei por algo parecido sim, Rafael.
> Normalmente o erro estava no próprio SQL repassado ao Zeos.
> Eu utilizo sempre esta estrutura para escrita/edição de dados:
> "select * from tabela where id_tabela = :id_tabela"
> Neste caso, ao efetuar insert ou update, o sistema sempre se comporta de
> maneira correta.
>
> De qualquer forma, creio que deves verificar as propriedades do teu
> TZQuery, antes de mais nada, e verificar se a estrutura de query repassada
> ao componente está de maneira simples e "filtrada".
>
>
> Em 3 de setembro de 2013 17:06, Rafael Naves  > escreveu:
>
>> Boa tarde a todos,
>>
>> Eu tenho uma trigger simples para preencher alguns campos da minha tabela
>> a cada alteração de registro:
>>
>> *CREATE TRIGGER tabela_teste_trigger_ui
>> *
>> *  BEFORE INSERT OR UPDATE *
>> *  ON public.tabela_teste FOR EACH ROW *
>> *  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*
>>
>> *> Ela aciona uma a função abaixo:*
>>
>> *CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
>> *
>> *)*
>> *RETURNS trigger AS*
>> *$body$*
>> *BEGIN
>> *
>> *
>> *
>> *  if (TG_OP = 'INSERT') then*
>> *operacao := 'I';*
>> *  else*
>> *operacao := 'A';  *
>> *  end if;*
>> *  *
>> *  new.DATA_ALTERACAO:= current_timestamp;*
>> *  new.TIPO_OPERACAO := operacao;
>> *
>> *  *
>> *  if (TG_OP = 'INSERT') then
>> *
>> *return old;*
>> *  else*
>> *return new;*
>> *  end if;*
>> *
>> *
>> *END;
>> *
>> *$body$*
>> *LANGUAGE 'plpgsql'*
>> *VOLATILE*
>> *RETURNS NULL ON NULL INPUT*
>> *SECURITY INVOKER*
>> *COST 100;*
>>
>> *Problemática:*
>>
>> Ao executar pelo banco de dados, através de scripts funciona normalmente,
>> no entanto, quando é executada via aplicação usando Delphi 2007 + Zeos
>> 7.0.4 eu recebo o erro:
>>
>> *'0 record(s) updated. Only one record should have been updated.'*
>> *
>> *
>> Em minhas pesquisas e testes realizado pude perceber que o problema esta
>> relacionado com o update dos campos da tabela, fato é que, ao desativar a
>> trigger a aplicação consegue gravar os dados normalmente na tabela.
>>
>> Alguém já passou por isso ou percebeu alguma coisa na função que possa
>> estar ocasionando o problema?
>>
>> Obrigado.
>>
>>
>>
>> --
>> 
>> Rafael M. Naves
>> Analista/Programador
>> (31)9861-4047 (*novo!*)
>> (31)8636-8910
>> http://www.twitter.com/navesrafael
>> http://www.rafaelnaves.com
>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Marcelo Silva

Desenvolvedor Delphi / PHP
My Postgres database
Cel.: (11) 99693-4251
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel

Como você tentou conectar?
Faltou isso pra saber onde você está "errando".



Foi mal, acabei esquecendo, mas segue: pelo prompt digito "C:\Program
Files (x86)\PostgreSQL\8.4\bin\psql.exe" -U postgres -w -p 5433 -c
"SELECT pg_start_backup('bkpfisico',TRUE);"


Tira a opção -w que vai conectar sem pedir a senha.

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Danilo Silva
Em 3 de setembro de 2013 15:58, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

>
> Em 03-09-2013 15:55, Danilo Silva escreveu:
>
>> Pessoal,
>>
>> Localmente não estou conseguindo conectar ao banco sem precisar digitar
>> a senha utilizando o usuário postgres. Meu hba.conf está da seguinte
>> maneira
>>
>> # TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
>> local   all postgres  trust
>> # IPv4 local connections:
>> #hostall all 127.0.0.1/32   md5
>>
>> hostall postgres 0/0  trust
>> hostall all 192.168.1.103/32 
>> md5
>>
>> # IPv6 local connections:
>> hostall all ::1/128   md5
>>
>> Ambiente
>>
>> "PostgreSQL 8.4.17, compiled by Visual C++ build 1400, 32-bit" em
>> Windows Server 2008 R2 Enterprise
>>
>> Tem alguma coisa de errado ou é algum bug da versão?
>>
>
> Como você tentou conectar?
> Faltou isso pra saber onde você está "errando".
>
>
> Foi mal, acabei esquecendo, mas segue: pelo prompt digito "C:\Program
Files (x86)\PostgreSQL\8.4\bin\psql.exe" -U postgres -w -p 5433 -c "SELECT
pg_start_backup('bkpfisico',TRUE);"

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Delphi + Zeos: Alterar campos de tabela via trigger

2013-09-03 Por tôpico Rafael Naves
Boa tarde a todos,

Eu tenho uma trigger simples para preencher alguns campos da minha tabela a
cada alteração de registro:

*CREATE TRIGGER tabela_teste_trigger_ui
*
*  BEFORE INSERT OR UPDATE *
*  ON public.tabela_teste FOR EACH ROW *
*  EXECUTE PROCEDURE public.atualiza_campos_ultimos();*

*> Ela aciona uma a função abaixo:*

*CREATE OR REPLACE FUNCTION public.atualiza_campos_ultimos(
*
*)*
*RETURNS trigger AS*
*$body$*
*BEGIN
*
*
*
*  if (TG_OP = 'INSERT') then*
*operacao := 'I';*
*  else*
*operacao := 'A';  *
*  end if;*
*  *
*  new.DATA_ALTERACAO:= current_timestamp;*
*  new.TIPO_OPERACAO := operacao;
*
*  *
*  if (TG_OP = 'INSERT') then
*
*return old;*
*  else*
*return new;*
*  end if;*
*
*
*END;
*
*$body$*
*LANGUAGE 'plpgsql'*
*VOLATILE*
*RETURNS NULL ON NULL INPUT*
*SECURITY INVOKER*
*COST 100;*

*Problemática:*

Ao executar pelo banco de dados, através de scripts funciona normalmente,
no entanto, quando é executada via aplicação usando Delphi 2007 + Zeos
7.0.4 eu recebo o erro:

*'0 record(s) updated. Only one record should have been updated.'*
*
*
Em minhas pesquisas e testes realizado pude perceber que o problema esta
relacionado com o update dos campos da tabela, fato é que, ao desativar a
trigger a aplicação consegue gravar os dados normalmente na tabela.

Alguém já passou por isso ou percebeu alguma coisa na função que possa
estar ocasionando o problema?

Obrigado.



-- 

Rafael M. Naves
Analista/Programador
(31)9861-4047 (*novo!*)
(31)8636-8910
http://www.twitter.com/navesrafael
http://www.rafaelnaves.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel


Em 03-09-2013 15:55, Danilo Silva escreveu:

Pessoal,

Localmente não estou conseguindo conectar ao banco sem precisar digitar
a senha utilizando o usuário postgres. Meu hba.conf está da seguinte maneira

# TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
local   all postgres  trust
# IPv4 local connections:
#hostall all 127.0.0.1/32   md5
hostall postgres 0/0  trust
hostall all 192.168.1.103/32  md5
# IPv6 local connections:
hostall all ::1/128   md5

Ambiente

"PostgreSQL 8.4.17, compiled by Visual C++ build 1400, 32-bit" em
Windows Server 2008 R2 Enterprise

Tem alguma coisa de errado ou é algum bug da versão?


Como você tentou conectar?
Faltou isso pra saber onde você está "errando".

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Conectar sem precisar informar senha

2013-09-03 Por tôpico Danilo Silva
Pessoal,

Localmente não estou conseguindo conectar ao banco sem precisar digitar a
senha utilizando o usuário postgres. Meu hba.conf está da seguinte maneira

# TYPE  DATABASEUSERCIDR-ADDRESS  METHOD
local   all postgres  trust
# IPv4 local connections:
#hostall all 127.0.0.1/32  md5
hostall postgres 0/0  trust
hostall all  192.168.1.103/32 md5
# IPv6 local connections:
hostall all ::1/128   md5

Ambiente

"PostgreSQL 8.4.17, compiled by Visual C++ build 1400, 32-bit" em Windows
Server 2008 R2 Enterprise

Tem alguma coisa de errado ou é algum bug da versão?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2013/9/3 Danilo Silva :
> Em 3 de setembro de 2013 11:42, Flavio Henrique Araque Gurgel
>  escreveu:
>> Em 03-09-2013 11:32, Danilo Silva escreveu:
>>> Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:

Basicamente, o PostGIS é um conjunto de tipos de dados e funções
voltadas para coordenadas geográficas.


>>> No que consiste a instalação do PostGIS?

Além do código do PostGIS em si, tem de rodar um programeta em cada
base de dados cadastrando esses tipos e funções.  Como o Flávio
explicou.


> Em termos de dump, backup base, altera alguma coisa?

Como são novos apenas novos tipos de dados e funções, nada muda.

Só tem de prestar atenção para não restaurar uma base sem antes
instalar o PostGIS.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Marcelo da Silva
Com a ajuda do colegas cheguei a uma função que vai me ajudar, segue aí pra
quem precisar:

Primeiro criamos a função de insert, chamei de finsert pra não confundir
com insert do SQL :)

CREATE OR REPLACE FUNCTION finsert(text, text, integer)
  RETURNS text AS
$BODY$
  select overlay($2 placing $1 from $3 for 0);
$BODY$
  LANGUAGE sql IMMUTABLE
  COST 100;
ALTER FUNCTION finsert(text, text, integer)
  OWNER TO postgres;


Então criamos a função para formatar os telefones conforme o numero de
caractere, que deve ter no minimo 10 digitos

CREATE OR REPLACE FUNCTION fgetmascfone(text)
  RETURNS character varying AS
$BODY$
  declare
fone text;
begin
  fone = $1;
  if (length(fone) < 10) then
fone = right('  '||fone, 10); -- caso não haja DDD colocamos 10
caracteres no minimo
  end if;
  if (left(fone, 4) = '0800') then
case
when length(fone) in(10,11) then
  fone = finsert(' ', fone, 5);
  fone = finsert('-', fone, 9);
when length(fone) in(12) then
  fone = finsert(' ', fone, 5);
  fone = finsert('-', fone, 10);
when length(fone) in(13,14) then
  fone = finsert(' ', fone, 5);
  fone = finsert('-', fone, 10);
  fone = finsert('-', fone, 15);
else fone = fone;
end case;
  else
case
when length(fone) in(9) then
  fone = finsert('(', fone, 1);
  fone = finsert(') ', fone, 4);
  fone = finsert('-', fone, 9);
when length(fone) in(10) then
  fone = finsert('(', fone, 1);
  fone = finsert(') ', fone, 4);
  fone = finsert('-', fone, 10);
when length(fone) in(11) then
  fone = finsert('(', fone, 1);
  fone = finsert(') ', fone, 4);
  fone = finsert('-', fone, 7);
  fone = finsert('-', fone, 12);
when length(fone) in(12,13,14) then
  fone = finsert('(', fone, 1);
  fone = finsert(') ', fone, 4);
  fone = finsert('-', fone, 7);
  fone = finsert('-', fone, 12);
  fone = finsert('-', fone, 17);
else fone = fone;
end case;
  end if;
  return fone;
end;
$BODY$
  LANGUAGE plpgsql IMMUTABLE
  COST 100;
ALTER FUNCTION fgetmascfone(text)
  OWNER TO postgres;


A função foi feito meio na correria, mas pelos testes está a contento :)
depois (bem depois rsrsrs) dou mais uma garimpada.


Fica aí pra quem precisar

Obrigado a todos mais uma vez...


Marcelo Silva
---



Em 3 de setembro de 2013 12:37, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
>
>
> 2013/9/3 Juliano Atanazio 
>
>>
>>
>>
>> Em 3 de setembro de 2013 12:23, Matheus de Oliveira <
>> matioli.math...@gmail.com> escreveu:
>>
>>>
>>>
>>>
>>> 2013/9/3 Marcelo da Silva 
>>>
 Pessoal no Delphi tenho a função INSERT que serve para inserir uma
 string dentro da outra, por exemplo:

 S := insert('s', 'tete', 3);

 S = teste

 Existe alguma função que faça isso no postgres?
 Já procurei no manuel, mas não encontrei.


>>> Existe a função overlay [1]:
>>>
>>> SELECT overlay('tete' placing 's' from 3 for 0);
>>>
>>> Você pode criar uma insert +ou- assim:
>>>
>>> CREATE FUNCTION insert(text,text,int)
>>> RETURNS TEXT
>>> LANGUAGE SQL AS $$
>>> SELECT overlay($1 placing $2 from $3 for 0);
>>> $$;
>>>
>>> [1]
>>> http://www.postgresql.org/docs/current/static/functions-binarystring.html
>>>
>>>
>>>
>> O exemplo do Matheus foi muito mais objetivo rs
>> De qualquer forma é bom ter uma certa variedade de formas de fazer a
>> mesma coisa.
>>
>
> =D
>
>
>> Adicionalmente, este link [1] tem funções de tratamento de strings no
>> PostgreSQL.
>> Extremamente útil :)
>>
>> [1] http://www.postgresql.org/docs/9.2/static/functions-string.html
>>
>>
>>
> Faz mais sentido que o link que eu mandei... aliás, o link que eu mandei
> não faz sentido algum (é pra bytea, apesar de ter a mesma função),
> considerem este do Juliano, xD...
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Marcelo Silva

Desenvolvedor Delphi / PHP
My Postgres database
Cel.: (11) 99693-4251
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Servidor HTTPS lentidão em consultas POSTGRESQL

2013-09-03 Por tôpico Robson Kobayashi - TRE/MS
Use o Apache Benchmark ou o Siege e veja a diferença entre http e https.


Atenciosamente: Robson Massaki Kobayashi
SSOP/COINF/STI - TRE/MS
Horário de expediente: seg-sex, 12 às 18h
Fones: (67)2107-7121 ou (67)3326-5428


- Mensagem original -
De: "Euler Taveira" 
Para: "Comunidade PostgreSQL Brasileira" 
Enviadas: Terça-feira, 3 de Setembro de 2013 9:56:31
Assunto: Re: [pgbr-geral] Servidor HTTPS lentidão em consultas POSTGRESQL

Então você poderia colocar [OFFTOPIC] no assunto.


Consultas, não. O banco de dados não terá parcela de culpa na
"lentidão". Para apontar um culpado pela "lentidão" é necessário
entender o seu cenário. Sugiro que leia [1] e várias outras referências
"http x https" na web. E mais, para entender em quanto o seu sistema
ficará lento (ou mesmo para identificar possíveis gargalos) utilize
ferramentas de benchmark (algumas foram indicadas em [1]).


[1] http://stackoverflow.com/questions/149274/http-vs-https-performance
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel


Em 03-09-2013 12:31, Danilo Silva escreveu:

Em 3 de setembro de 2013 11:42, Flavio Henrique Araque Gurgel
mailto:fla...@4linux.com.br>> escreveu:

Em 03-09-2013 11:32, Danilo Silva escreveu:

Pessoal,

Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:

No que consiste a instalação do PostGIS?

Em relação ao PostgreSQL, é tudo um cluster só?


O PostGIS é uma extensão do PostgreSQL.
Você o instala sobre o PostgreSQL.

Se você utiliza Linux, é bem fácil instalar. Ubuntu/Debian:
apt-get install postgis

Conecte-se ao banco de dados que você deseja ter dados espaciais e faça:
CREATE EXTENSION postgis;

E depois tá feito. É só criar seus objetos (tabelas, funções) usando
o PostGIS.

Leia a documentação.


Em termos de dump, backup base, altera alguma coisa?


Absolutamente nada muda.
[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Matheus de Oliveira
2013/9/3 Juliano Atanazio 

>
>
>
> Em 3 de setembro de 2013 12:23, Matheus de Oliveira <
> matioli.math...@gmail.com> escreveu:
>
>>
>>
>>
>> 2013/9/3 Marcelo da Silva 
>>
>>> Pessoal no Delphi tenho a função INSERT que serve para inserir uma
>>> string dentro da outra, por exemplo:
>>>
>>> S := insert('s', 'tete', 3);
>>>
>>> S = teste
>>>
>>> Existe alguma função que faça isso no postgres?
>>> Já procurei no manuel, mas não encontrei.
>>>
>>>
>> Existe a função overlay [1]:
>>
>> SELECT overlay('tete' placing 's' from 3 for 0);
>>
>> Você pode criar uma insert +ou- assim:
>>
>> CREATE FUNCTION insert(text,text,int)
>> RETURNS TEXT
>> LANGUAGE SQL AS $$
>> SELECT overlay($1 placing $2 from $3 for 0);
>> $$;
>>
>> [1]
>> http://www.postgresql.org/docs/current/static/functions-binarystring.html
>>
>>
>>
> O exemplo do Matheus foi muito mais objetivo rs
> De qualquer forma é bom ter uma certa variedade de formas de fazer a mesma
> coisa.
>

=D


> Adicionalmente, este link [1] tem funções de tratamento de strings no
> PostgreSQL.
> Extremamente útil :)
>
> [1] http://www.postgresql.org/docs/9.2/static/functions-string.html
>
>
>
Faz mais sentido que o link que eu mandei... aliás, o link que eu mandei
não faz sentido algum (é pra bytea, apesar de ter a mesma função),
considerem este do Juliano, xD...

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Juliano Atanazio
Em 3 de setembro de 2013 12:23, Matheus de Oliveira <
matioli.math...@gmail.com> escreveu:

>
>
>
> 2013/9/3 Marcelo da Silva 
>
>> Pessoal no Delphi tenho a função INSERT que serve para inserir uma string
>> dentro da outra, por exemplo:
>>
>> S := insert('s', 'tete', 3);
>>
>> S = teste
>>
>> Existe alguma função que faça isso no postgres?
>> Já procurei no manuel, mas não encontrei.
>>
>>
> Existe a função overlay [1]:
>
> SELECT overlay('tete' placing 's' from 3 for 0);
>
> Você pode criar uma insert +ou- assim:
>
> CREATE FUNCTION insert(text,text,int)
> RETURNS TEXT
> LANGUAGE SQL AS $$
> SELECT overlay($1 placing $2 from $3 for 0);
> $$;
>
> [1]
> http://www.postgresql.org/docs/current/static/functions-binarystring.html
>
> Atenciosamente,
> --
> Matheus de Oliveira
> Analista de Banco de Dados
> Dextra Sistemas - MPS.Br nível F!
> www.dextra.com.br/postgres
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
O exemplo do Matheus foi muito mais objetivo rs
De qualquer forma é bom ter uma certa variedade de formas de fazer a mesma
coisa.
Adicionalmente, este link [1] tem funções de tratamento de strings no
PostgreSQL.
Extremamente útil :)

[1] http://www.postgresql.org/docs/9.2/static/functions-string.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Danilo Silva
Em 3 de setembro de 2013 11:42, Flavio Henrique Araque Gurgel <
fla...@4linux.com.br> escreveu:

> Em 03-09-2013 11:32, Danilo Silva escreveu:
>
>  Pessoal,
>>
>> Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:
>>
>> No que consiste a instalação do PostGIS?
>>
>> Em relação ao PostgreSQL, é tudo um cluster só?
>>
>
> O PostGIS é uma extensão do PostgreSQL.
> Você o instala sobre o PostgreSQL.
>
> Se você utiliza Linux, é bem fácil instalar. Ubuntu/Debian:
> apt-get install postgis
>
> Conecte-se ao banco de dados que você deseja ter dados espaciais e faça:
> CREATE EXTENSION postgis;
>
> E depois tá feito. É só criar seus objetos (tabelas, funções) usando o
> PostGIS.
>
> Leia a documentação.
>
>
> Em termos de dump, backup base, altera alguma coisa?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Existe isso, Funcao dentro de Funcao ?

2013-09-03 Por tôpico Matheus de Oliveira
2013/9/3 Marcelo da Silva 

>
> Pessoal, posso criar uma função no postgres e dentro dela uma subfunção ?
>
> Exemplo:
>
> CREATE OR REPLACE FUNCTION fcontatos(integer, integer)
>   RETURNS character varying AS
> $BODY$
> begin
>Function SubFuncao(Parametros)
>Returns text as
>...
>FimDaSubFuncao
>
>TrataDadosDaPrimeiraFuncao
>
>Return = Chama SubFuncao(parametros)
>
> end;
> 
>
>
> Ou tenho que criar sempre funções separadas ?
>
>
Com a linguagem PL/pgSQL não é possível, terás que criar as funções
separadas. Em algumas outras linguagens como PL/Perl e PL/V8, e não sei
mais qual é sim possível.


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Matheus de Oliveira
2013/9/3 Marcelo da Silva 

> Pessoal no Delphi tenho a função INSERT que serve para inserir uma string
> dentro da outra, por exemplo:
>
> S := insert('s', 'tete', 3);
>
> S = teste
>
> Existe alguma função que faça isso no postgres?
> Já procurei no manuel, mas não encontrei.
>
>
Existe a função overlay [1]:

SELECT overlay('tete' placing 's' from 3 for 0);

Você pode criar uma insert +ou- assim:

CREATE FUNCTION insert(text,text,int)
RETURNS TEXT
LANGUAGE SQL AS $$
SELECT overlay($1 placing $2 from $3 for 0);
$$;

[1]
http://www.postgresql.org/docs/current/static/functions-binarystring.html

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Juliano Atanazio
Em 3 de setembro de 2013 12:09, Marcelo da Silva escreveu:

> Pessoal no Delphi tenho a função INSERT que serve para inserir uma string
> dentro da outra, por exemplo:
>
> S := insert('s', 'tete', 3);
>
> S = teste
>
> Existe alguma função que faça isso no postgres?
> Já procurei no manuel, mas não encontrei.
>


Serve isto?:

SELECT substring('Tete' from 1 for 2)||'s'||substring('Tete' from 3 for 4);
 ?column?
--
 Teste


>
>
> --
> Marcelo Silva
> 
> Desenvolvedor Delphi / PHP
> My Postgres database
> Cel.: (11) 99693-4251
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Insert é só pra tabela ?

2013-09-03 Por tôpico Marcelo da Silva
Pessoal no Delphi tenho a função INSERT que serve para inserir uma string
dentro da outra, por exemplo:

S := insert('s', 'tete', 3);

S = teste

Existe alguma função que faça isso no postgres?
Já procurei no manuel, mas não encontrei.


-- 
Marcelo Silva

Desenvolvedor Delphi / PHP
My Postgres database
Cel.: (11) 99693-4251
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] PostGIS

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel

Em 03-09-2013 11:32, Danilo Silva escreveu:

Pessoal,

Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:

No que consiste a instalação do PostGIS?

Em relação ao PostgreSQL, é tudo um cluster só?


O PostGIS é uma extensão do PostgreSQL.
Você o instala sobre o PostgreSQL.

Se você utiliza Linux, é bem fácil instalar. Ubuntu/Debian:
apt-get install postgis

Conecte-se ao banco de dados que você deseja ter dados espaciais e faça:
CREATE EXTENSION postgis;

E depois tá feito. É só criar seus objetos (tabelas, funções) usando o 
PostGIS.


Leia a documentação.

[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] PostGIS

2013-09-03 Por tôpico Danilo Silva
Pessoal,

Preciso entender melhor o funcionamento do PostgreSQL + PostGIS:

No que consiste a instalação do PostGIS?

Em relação ao PostgreSQL, é tudo um cluster só?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Existe isso, Funcao dentro de Funcao ?

2013-09-03 Por tôpico Marcelo da Silva
Pessoal, posso criar uma função no postgres e dentro dela uma subfunção ?

Exemplo:

CREATE OR REPLACE FUNCTION fcontatos(integer, integer)
  RETURNS character varying AS
$BODY$
begin
   Function SubFuncao(Parametros)
   Returns text as
   ...
   FimDaSubFuncao

   TrataDadosDaPrimeiraFuncao

   Return = Chama SubFuncao(parametros)

end;



Ou tenho que criar sempre funções separadas ?

A ideia é simplesmente tratar um texto dentro da propria função pra
traze-lo formatado conforme o numero de caracteres

Exemplo:

Funcao(Codigo)
inicio
  SubFuncao(Texto)
  inicio
 condição1
retorna 1
 condicao2
retorna2
  fim subfuncao

  select numa tabela conforme o parametro

  retorna = SubFuncao(ResultadoDoSelect)
fim funcao


ps. Estou criando uma função para tratar a formatação de telefones conforme
o novo padrão com 9 na frente e os antigos

(11) 2962-7390
(11) 9 9693-4251
0800 753-8895
0800 7563-8966

E assim por diante, conforme o numero de caracter

-- 
Marcelo Silva

Desenvolvedor Delphi / PHP
My Postgres database
Cel.: (11) 99693-4251
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Servidor HTTPS lentidão em consultas POSTGRESQL

2013-09-03 Por tôpico Euler Taveira
On 03-09-2013 10:22, Wellington Openheimer wrote:
> Minha dúvida não está totalmente ligada às consultas de bancos de dados,
> mas no protocolo do servidor web.
> 
Então você poderia colocar [OFFTOPIC] no assunto.

> De acordo com a experiência de vocês, servidores web com HTTPS deixaram as
> aplicações mais lentas(consultas, etc.)? Alguma configuração em específico
> que devemos olhar?
>
Consultas, não. O banco de dados não terá parcela de culpa na
"lentidão". Para apontar um culpado pela "lentidão" é necessário
entender o seu cenário. Sugiro que leia [1] e várias outras referências
"http x https" na web. E mais, para entender em quanto o seu sistema
ficará lento (ou mesmo para identificar possíveis gargalos) utilize
ferramentas de benchmark (algumas foram indicadas em [1]).


[1] http://stackoverflow.com/questions/149274/http-vs-https-performance


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Travamento

2013-09-03 Por tôpico Jean Pereira

Bom dia,

Somente para dar um retorno...
Não conseguimos detectar nada no hardware até agora, nem mesmo o suporte 
contratado não achou problemas.
Estou levando seriamente a hipótese que o Flavio comentou sobre os 
canais que ligam o servidor com a storage terem dado algum problema.


Mais de todo modo, até o momento não ocorreu mais problemas.

Abraço
Jean Pereira

On 08/21/2013 07:58 AM, Jean Pereira wrote:

On 08/20/2013 22:45, Aldrey Galindo wrote:

Jean,

   Estranho realmente não aparecer nada los logs, como mencionado por 
você. Eu já tive problemas com disco, mais normalmente eles apareciam 
no messages.
   O que recomendo é que caso ocorra o problema novamente, tente 
verificar na hora a estrutura dos discos (multipath -l, pvscan). 
Pois, assim pode vê se nesses momentos ele está se "perdendo".
   Seria bom também ver como está a utilização dos discos com o 'sar 
-d' e a fila de processamento com o 'vmstat 2' (a cada 2 segundos). 
Se tiver com grande utilização dos discos e a fila estiver muito 
grande, aí é indicativo de que não está funcionando bem sua estrutura.



Obrigado pela dica!


Atenciosamente,
Aldrey Galindo



___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Servidor HTTPS lentidão em consultas POSTGRESQL

2013-09-03 Por tôpico Flavio Henrique Araque Gurgel

Em 03-09-2013 10:22, Wellington Openheimer escreveu:

Olá pessoal,

Minha dúvida não está totalmente ligada às consultas de bancos de dados,
mas no protocolo do servidor web.

Estamos estudando passar um sistema inteiro para HTTPS e pelo que
estudamos isto afetaria a performance da aplicação.


Pelo que entendi sua dúvida não tem *nenhuma* relação com banco de 
dados. Não acho que seja muito legal fazê-la nesta lista, enfim, mas não 
sou dono da verdade e os colegas talvez não se importem.



Temos tarefas e consultas complexas e em torno de 1 usuários potenciais.


Informação imprecisa. O que são "usuários potenciais"? Por que pessoas 
se preocupam com número de conexões? O que importa é page views/segundo.



De acordo com a experiência de vocês, servidores web com HTTPS deixaram
as aplicações mais lentas(consultas, etc.)? Alguma configuração em
específico que devemos olhar?


Aumenta o consumo de CPU e o tráfego de rede na hora de estabelecer a 
conexão, mas acaba aí. Após conexão estabelecida a biblioteca ssl é bem 
leve.



Obs.: Rodamos em PHP+Apache

Desde já obrigado pessoal.


Vai pra lista de lá se quiser resposta mais precisa.
Adicionalmente, aconselho a pesquisar sobre https/ssl e entender tudo 
direito, principalmente como funcionam certificados e a "web of trust".


[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Servidor HTTPS lentidão em consultas POSTGRESQL

2013-09-03 Por tôpico Wellington Openheimer
Olá pessoal,

Minha dúvida não está totalmente ligada às consultas de bancos de dados,
mas no protocolo do servidor web.

Estamos estudando passar um sistema inteiro para HTTPS e pelo que estudamos
isto afetaria a performance da aplicação.

Temos tarefas e consultas complexas e em torno de 1 usuários potenciais.

De acordo com a experiência de vocês, servidores web com HTTPS deixaram as
aplicações mais lentas(consultas, etc.)? Alguma configuração em específico
que devemos olhar?

Obs.: Rodamos em PHP+Apache

Desde já obrigado pessoal.


att,

Wellington
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Backup físico a quente

2013-09-03 Por tôpico Matheus de Oliveira
2013/9/2 Danilo Silva 

>
>
>
> Em 31 de agosto de 2013 08:54, Matheus de Oliveira <
> matioli.math...@gmail.com> escreveu:
>
>
>>
>>
>> 2013/8/30 Danilo Silva 
>>
>>>
>>> [...]
>>>
>>>  Realmente, quando você faz **só** um backup base, sem arquivamento,
> você irá precisar de todos os logs de transação gerados entre a chamada do
> pg_start_backup e pg_stop_backup. Em primeiro lugar, eu recomendaria você 
> a
> tentar criar uma política de backup para PITR e habilitar **sempre** o
> arquivamento.
>
> Mas... De forma temporária, você pode fazer o seguinte:
>
> 1. Engane o PostgreSQL e habilite o arquivamento sem arquivar (loucura
> né?!):
>
> archive_mode = on
> archive_command = 'exit 0' # veja, não faz nada, só finge que copiou
>
> Reinicie o PostgreSQL (terás de reiniciar somente uma vez, por causa
> do archive_mode).
>
> 2. Quando for executar o backup base, configure o archive_command para
> efetivamente copiar os logs de transação:
>
> archive_command = 'cp %p /path/to/%f' # ou seu comando...
>
> Execute um reload no PostgreSQL (veja, não precisa de restart).
>
> 3. Realize sua cópia normalmente: pg_start_backup => cópia (tar, cp,
> etc.) => pg_stop_backup
>
> 4. Volte o archive_command para 'exit 0'
>
> Pronto, agora basta você "pegar" os arquivos salvos pelo
> archive_command "temporário" e salvá-los junto ao seu backup. Pode até
> colocá-los dentro do diretório pg_xlog do backup, ou, numa restauração 
> você
> precisará somente configurar o restore_command no recovery.conf.
>
> Mais uma vez, vejo isso como algo temporário e rápido enquanto não
> define uma boa política de backup com arquivamento, pg_dump, etc...
>
> Era isso que eu precisava saber, vou testar e depois falo como foi.


 Pessoal deu certo a dica do Matheus, agora surgiu outra dúvida:
>>>
>>> Preciso montar um script que execute o backup base, até então beleza,
>>> sem problemas, existe a possibilidade de colocar no script algum comando
>>> que altere a diretiva archive_command ou algo similar?
>>>
>>>
>>>
>> Eu faria de forma diferente, criaria um script para fazer o arquivamento
>> que verifique se um arquivo de trigger existe (acho que pode usar o próprio
>> backup_label), e, se existir, realiza a cópia, caso contrário não faz nada,
>> tipo assim:
>>
>> #!/bin/sh
>>
>> if [ -r backup_label ]; then
>> cp "$1" "$2"
>> exit $?
>> fi
>> exit 0
>>
>> Daí você usa esse script no archive_command, tipo: archive_command =
>> "/path/to/archive.sh '%f' '/path/to/%p'".
>>
>> OBS: IIRC, o diretório corrente ao executar o archive_command é o próprio
>> PGDATA, por isso usei o caminho relativo para encontrar o backup_label
>> (testar para confirmar).
>>
>> Dessa forma somente quando o backup estiver em progresso é que o script
>> realmente copiará os logs de transação, caso contrário, o mesmo irá ignorar
>> e "fingir" que copiou.
>>
>> PS: Mais uma vez, recomendo que, já que está tendo esse trabalho, faça o
>> arquivamento contínuo, experimente comprimir com gzip caso ache que está
>> ocupando muito espaço, verá que diminui +ou- para uns 20-30%.
>>
>>
>> Obrigado pela dica, mas como ficaria o script sendo para windows?
>
>
O que o script faz é verificar se o arquivo "backup_label" existe, e se
existir copia o log de transação e retorna o resultado do comando de cópia
como código de retorno, caso não exista, apenas retorna 0 (zero, significa
sucesso) como retorno.

Agora é só adaptar para o Windows.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] (sem assunto)

2013-09-03 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
2013/9/2 Alessandro Lima :
> …recomendo o apgdiff (free).

+1
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral