[pgbr-geral] Erro: SHGetFolderPath

2009-12-04 Por tôpico tetraetila
Olá Pessoal

Estou com um problema e gostaria de uma resposta, tenho um cliente que
usa Windows98 e não aceita mudar ou comprar novos equipamentos. Eu
preciso acessar a base de dados em Postgres em outro computador, estou
recebendo o erro:

O arquivo LIBPQ.DLL está vincunlado ao SHELL32.DLL de exportação que
não foi encontrado: SHGetFolderPathA

Alguém pode me dar uma ajuda?

Obrigado!


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


[pgbr-geral] Update com Select

2009-11-25 Por tôpico tetraetila®
Olá Pessoal
 
Eu utilizo a sentença abaixo para somar o valor dos débitos de determinada
tabela:
 
select A.a005_debi, sum( A.a005_valo ) as DEBITO from e001.a001005 A where
A.a005_data between '01.01.2008' and '31.01.2008' group by A.a005_debi
 
Eu gostaria de fazer um UPDATE utilizando uma sentença, tipo:
 
update e001.temp_balanc set vr_debi = DEBITO where A.A004_REDU = B.A005_DEBI
 
Ou seja quando o código reduzido da conta (A.A004_REDU) for igual ao código
da conta débito da outra tabela ( B.A005_DEBI ) o campo VR_DEBI receberá o
valor de DEBITO.
 
Outro porém,
 
Utilizo a sentença para apurar os DÉBITOS  e a mesma para os CRÉDITOS,
mudando apenas alguns parâmetros. Tenho que jogar a diferença de crédito -
débito (C-D) em uma coluna SALDO_FINAL, tem como fazer isto subtraindo um do
outro via SQL? Seria:
 
Estes débitos
select A.a005_cred, sum( A.a005_valo ) as CREDITO from e001.a001005 A where
A.a005_data between '01.01.2008' and '31.01.2008' group by A.a005_cred
 
Menos estes créditos
select A.a005_debi, sum( A.a005_valo ) as DEBITO from e001.a001005 A where
A.a005_data between '01.01.2008' and '31.01.2008' group by A.a005_debi
 
Resultado em
SALDO_FINAL
 
Poderiam me ajudar?
 
Obrigado!
 
Adilson
 
 
 
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Salvar retorno de select

2009-07-08 Por tôpico tetraetila®
Olá Pessoal

Estou precisando gravar o resultado de um select direto para um
arquivo DBF. Nós fazemos isto aqui com RDDSQL e Firebird, mais eu preciso
para Postgres. Se alguém puder me ajudar agradeço.

Exemplo: 
cComm  := select * from TABELA where TIPO = 'A', ARQ.DBF

O resultado do select vai direto para o ARQ.DBF, seria uma exportação.

Muito obrigado, Adilson Nunes.



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


[pgbr-geral] RES: Salvar retorno de select

2009-07-08 Por tôpico tetraetila®
Luiz

Primeiramente obrigado, esta parte eu sei. O que eu preciso saber é fazer
isto sem utilizar o RDD. Por exemplo, dar um select no pgAdmin e gravar seu
resultado em um DBF.

Adilson Nunes



cComm  := select * from tabela where tipo = 'A' and desc like '%1._%' 
apCode := SR_SQLParse( cComm, @nErr, @nPos )
cComm  := SR_SQLCodeGen( apCode,, S0:aSql[nEmp(),2]:nSystemID )
nErr   := S0:aSql[nEmp(),2]:exec( cComm,,.t.,,LISTA.dbf )




-Mensagem original-
De: pgbr-geral-boun...@listas.postgresql.org.br
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de Luiz Rafael
Culik Guimaraes
Enviada em: quarta-feira, 8 de julho de 2009 15:17
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Salvar retorno de select

Ola  Adilson

Se esta utilizando o sqlrdd do xharbour comercial ( tambem disponivel para 
xharbour free ) ( www.xharbour.com)  e so utilizar
osql:=sr_getconnection()
cComm  := select * from TABELA where TIPO = 'A',
osql:exec(cComm,,.t.,,'arq.dbf')
[]s
Luiz

- Original Message - 
From: tetraetila® tetraet...@gmail.com
To: 'Comunidade PostgreSQL Brasileira' 
pgbr-geral@listas.postgresql.org.br
Sent: Wednesday, July 08, 2009 2:54 PM
Subject: [pgbr-geral] Salvar retorno de select


Olá Pessoal

Estou precisando gravar o resultado de um select direto para um
arquivo DBF. Nós fazemos isto aqui com RDDSQL e Firebird, mais eu preciso
para Postgres. Se alguém puder me ajudar agradeço.

Exemplo:
cComm  := select * from TABELA where TIPO = 'A', ARQ.DBF

O resultado do select vai direto para o ARQ.DBF, seria uma exportação.

Muito obrigado, Adilson Nunes.



___
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 mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Descrição/Estrutura de determinad a tabela

2009-06-30 Por tôpico tetraetila®
Olá Pessoal

 

 

Estou precisando fazer um select que me retorne a estrutura de uma
determinada tabela no Postgres. Explicando melhor, quando eu estou
posicionado em uma tabela no IBExpert logo abaixo no o SQL Assistant me
informa a estrutura da tabela, tipo:

 

#  Key  FKFields   Type
Domain Description   NN

 

1  1  A005_SEQU DECIMAL(16,2)RDB$68
X

2  A005_DESC CHAR(200)  RDB$69
X

3  A005_DATA  DATE
RDB$70X

 

Eu preciso fazer isto no Postgres, não sei bem se é um select eu preciso de
algo que retorne a estrutura de determinada tabela com suas chaves, not
null, etc. Via comando manual. Estamos migrando de Firebird para Postgres e
precisamos fazer alguns acertos aqui.

 

Um abraço e muito obrigado!

 

 

Adilson Nunes

 

 

 

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


[pgbr-geral] Ajuda com sentença SQL

2009-06-04 Por tôpico tetraetila®
Olá Pessoal

Eu tenho 03 tabelas distintas, a A005 de lançamentos, a A004 do plano
de contas e a A008 que guarda os históricos dos lançamentos, elas se
referenciam da seguinte forma, as colunas A005_DEBI e A005_CREDI da
tabela A005 equivalem aos códigos reduzidos da tabela A004( A004_REDU )
e a coluna A005_SEQU equivale ao A008_SEQU na tabela de históricos.
Preciso montar uma sentença que me retorne no lugar do código reduzido
da tabela A005 o código estruturado equivalente na tabela A004, seu
histórico e descrição equivalentes da tabela A008. Ou seja:

A005_SEQU|A005_DATA|A005_DEBI equivale a A004_ESTR|A005_CRED equivale a 
A004_ESTR|A005_VALO|A005_SEQU equivalente a A008_SEQU|A008_DESC|

O sequencial, a data do lançamento, o código estruturado da conta da tabela 
A004 débito,
o código estruturado da conta da tabela A004 crédito, o valor do lançamento 
o código do
histórico e a descrição do histórico. Ficaria assim:

A005_SEQU|A005_DATA |A004_ESTR|A004_ESTR 
|A005_VALO|A008_SEQU|A008_DESC |

   85.770|03.06.1997|1.1.2.01.0004|2.1.1.01.0010|  1625,00|7|Vr. 
Desp. Em Desconto de N/ Dupl. No. 9939|

Fiz um select mais não funcionou conforme minha necessidade, pois quando 
coloco A005_DEBI E
A005_CREDI que se referem ao código estruturado da tabela A004 não retorna 
corretamente. Minha sentença abaixo:

select
a005.a005_sequ, a005.a005_data, a005.a005_debi, a005.a005_cred, 
a005.a005_valo,
a005.a005_cdgh, a004.a004_estr, a008.a008_sequ, a008.a008_desc from
a029005_tbl a005, a029004_tbl a004, a029008_tbl a008
where
a005.a005_debi = a004.a004_redu and a005.a005_sequ = a008.a008_sequ and 
a005.a005_data
between '01.01.2008' and '31.01.2008'

retorna:

A005_SEQU|A005_DATA|A005_DEBI|A005_VALO|A005_CDGH|A004_ESTR|A008_SEQU|A008_DESC|

81.767|16.01.2008|930|5|3.037,00|3.1.1.01.0032|81.767|Bonus relativo ao 
programa Venda Mais|

Porém eu preciso também da A005_CRED e o seu estruturado a tabela A004 o 
código estruturado da conta crédito 5.

Se puderem me ajudar agradeço.Desde já muito obrigado!

Adilson

Obs.: Segue abaixo o layout das tabelas.

A005_DEBI e A005_CRED vão se tornar seu código estruturado equivalente na 
tabela A004.
A005_CDGH vai ser o código do histórico na tabela A008 e sua descrição 
A008_DESC.

Tabela A005
---
A005_SEQU  A005_DATA   A005_DEBI  A005_CRED  A005_VALO  A005_CDGH

   85.770  03.06.1997217508 
1625,00  7
   85.771  13.06.1997302  5 
84,00  9
   85.772  20.06.1997217503 
18,507
   85.773  16.06.1997217   533 
516,19   7
   85.774  16.06.1997217   251 
296,00   7
   85.775  16.06.1997217  5 
32,89  9
   85.776  16.06.1997217266 
280,00   7
   85.777  18.06.1997 79  5 
9,569
   85.778  18.06.1997 79  5 
30,56   9
---

Tabela A004
---
A004_REDU  A004_GRUP  A004_ESTR  A004_TIPO  A004_DESC 
A004_NATU

  217  1  1.1.2.01  S 
Estoques D
  302  1  1.1.2.01.0001 A 
Produtos AcabadosD
5  11.2 
S  Permanente D
  503  1  1.2.1   S 
Imobilizado D
  533  1  1.2.1.01  S 
Imobilizado D
  251  1  1.2.1.01.0001 A 
Incentivos FiscaisD
   79  1   1.2.1.01.0002 A 
Obrigacoes EletrobrasD
  266  1  1.2.1.01.0003 A 
Acoes TelemigD
  508  1  1.2.1.01.0004 A 
Construcoes Em Andamento   D
---

Tabela A008
---
A008_SEQU   A008_DESC

   85.770   Vr. Desp. Em Desconto de N/ Dupl. No. 9939
   85.771   Vr.Credito Em Conta Ref.Op.de Desc.Dupl. No. 9939
   85.772   Vr. Desp. Em Desconto de N/ Dupl. No. 9944
   85.773   Vr. Desp. Em Desconto de N/ Dupl. No. 9944
   85.774   Vr.Credito Em Conta Ref.Op.de Desc.Dupl. No. 9944
   85.775   Vr. Desp. Em Desconto de N/ Dupl. No. 9946
   85.776   Vr. Desp. Em Desconto de N/ Dupl. No. 9946
   85.777   

Re: [pgbr-geral] Ajuda com sentença SQL

2009-06-04 Por tôpico tetraetila®
Caro Fabrízo

Foi exatamente o que eu estava precisando, te agradeço muito pela ajuda, já 
estou um pouco
perdido aqui lutando com o Sped Contábil e está difícil. Apenas acrescentei 
order by e o resultado
foi exato. Já tinha feito com left outer join e nada! ( rs rs rs )

Meu muito obrigado mesmo! Valeu...


Adilson Nunes


  - Original Message - 
  From: Fabrízio de Royes Mello 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Thursday, June 04, 2009 1:12 PM
  Subject: Re: [pgbr-geral] Ajuda com sentença SQL





  2009/6/4 tetraetila® tetraet...@gmail.com

...
Fiz um select mais não funcionou conforme minha necessidade, pois quando
coloco A005_DEBI E
A005_CREDI que se referem ao código estruturado da tabela A004 não retorna
corretamente. Minha sentença abaixo:
...



  Adilson,

  Tenho um pouco de experiência em software contábil...

  Se eu entendi você tens 2 campos (a005_debi e a005_cred) que fazem referencia 
com a tabela do plano de contas (a004.a004_redu) e estás fazendo o JOIN 
(implicito) somente pelo campo a005.debi entao o retorno sera somente o 
estrutural dessa conta... 

  Essa tua tabela de lançamentos é clássica em sistemas contábeis com 
lançamentos de primeira fórmula... 

  Creio que para resolver teu problema tens de fazer algo parecido com:

  SELECT a005.a005_sequ, 
 a005.a005_data, 
 a005.a005_debi, 
 a004d.a004_estr, 
 a005.a005_cred,
 a004c.a004_estr, 
 a005.a005_valo,
 a005.a005_cdgh, 
 a008.a008_sequ, 
 a008.a008_desc 
FROM a029005_tbl a005,
 JOIN a029004_tbl a004d ON a004d.a004_redu = a005.a005_debi
 JOIN a029004_tbl a004c ON a004c.a004_redu = a005.a005_cred
 JOIN a029008_tbl a008  ON a008.a008_sequ  = a005.a005_sequ
   WHERE a005.a005_data BETWEEN '01.01.2008' AND '31.01.2008';

  Cordialmente,

  -- 
  Fabrízio de Royes Mello
   Blog sobre PostgreSQL: http://fabriziomello.blogspot.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] Proplemas com função.

2008-11-05 Por tôpico tetraetila®
Dê uma olhada aqui:


http://ufpr.dl.sourceforge.net/sourceforge/pgdocptbr/pgdocptbr800-1.2.pdf.zip


Adilson


  - Original Message - 
  From: Anderson 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Wednesday, November 05, 2008 1:25 PM
  Subject: Re: [pgbr-geral] Proplemas com função.


  Boa Tarde;

  Funcionou blz, porem gostaria de saber onde eu encontro ou se existe a 
documentação do postgres em portugues.

  você poderiam me dar uma breve descrição do que faz o pg_catalog?

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


Re: [pgbr-geral] Ajuda com função

2008-11-03 Por tôpico tetraetila®
Vou verificar isto agora, muito obrigado novamente...

Adilson




- Original Message - 
From: Osvaldo Kussama [EMAIL PROTECTED]
To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Sent: Saturday, November 01, 2008 6:23 PM
Subject: Re: [pgbr-geral] Ajuda com função


Adilson:

Pelo visto você continua tentando trabalhar com bloqueios de registros.
Já foi dito anteriormente, e vou insistir novamente: dê uma estudada
na maneira como o PostgreSQL trabalha (particularmente MVCC [1]) pois
é bem diferente da maneira com que um dbf trabalha.

Osvaldo

[1] http://pgdocptbr.sourceforge.net/pg80/mvcc.html#MVCC-INTRO
___
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] Ajuda com função

2008-11-03 Por tôpico tetraetila®
Valeu Osvaldo,

Muito obrigado, vou testar.

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


Re: [pgbr-geral] Ajuda com função

2008-11-01 Por tôpico tetraetila®
- Original Message - 
From: Osvaldo Kussama [EMAIL PROTECTED]
To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Sent: Friday, October 31, 2008 9:07 PM
Subject: Re: [pgbr-geral] Ajuda com função

  select * FROM a003.a003015_tbl as a, pgrowlocks('a003.a003015_tbl') AS p
  WHERE p.locked_row = a.ctid order by sr_recno;

 Não deu para entender o que você quer fazer.
 Vejamos:
 - innermyst é uma string que contém o comando SQL que você desja executar.
 - myrec é um record contendo todos os campos resultantes da junção da
 - tabela $1 com a tabela pgrowlocks.
 - você concatena a string com o record (sinceramente não sei qual o
 resultado) e tenta executar?

Osvaldo
___

Nem eu?   : - )

Caro Osvaldo

Ela precisa me retornar o resultado como se eu tivesse feito este select:

select * FROM a003.a003015_tbl as a, pgrowlocks('a003.a003015_tbl') AS p
WHERE p.locked_row = a.ctid order by sr_recno;

Ao invés dele passo a usar: select colunas( 'a003.a003015_tbl' );

Fiz umas modificações, vide abaixo. Ao executar recebo o erro:

ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function colunas while casting return value to
function's return type.

Obrigado!

Adilson



/* MODIFICADA - MODIFICADA - MODIFICADA /*

 -- Function: colunas(text)

 -- DROP FUNCTION colunas(text);

 CREATE OR REPLACE FUNCTION colunas( text )
   RETURNS SETOF record AS
 $BODY$
 DECLARE
   myrec RECORD;
   myst TEXT;
 BEGIN
   myst = 'select * FROM '||$1||' as a, pgrowlocks('||quote_literal($1)||')
AS p WHERE p.locked_row = a.ctid order by sr_recno';
   FOR myrec IN EXECUTE myst LOOP
  BEGIN
EXECUTE myst;
EXCEPTION WHEN lock_not_available THEN
RETURN NEXT myrec;
  END;
   END LOOP;
   RETURN;
 END;

 $BODY$
LANGUAGE 'plpgsql' VOLATILE STRICT
COST 100
ROWS 1000;
 ALTER FUNCTION colunas(text) OWNER TO postgres;
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Ajuda com função

2008-10-31 Por tôpico tetraetila®
Pessoal

Este select abaixo funciona da forma que eu quero, ele me retorna os campos que 
estão bloqueados na tabela, Ok!
Gostaria de fazer uma função com ele.


select * FROM a003.a003015_tbl as a, pgrowlocks('a003.a003015_tbl') AS p WHERE 
p.locked_row = a.ctid order by sr_recno;


Com base em uma função que achei no Google estou tentando adaptar o select 
acima para a função abaixo, não sei 
a linguagem plpgsql e estou estudando o Postgres, gostaria da ajuda de vocês 
para fazê-la funcionar.

Muito obrigado, segue abaixo a função que estou tentando adaptar. Perdoem os 
erros! :- )

Adilson

/*

Retirada em parte da função CREATE OR REPLACE FUNCTION 
whichrowslocked(text,text)
encontrada no Google.

/*


-- Function: colunas(text)

-- DROP FUNCTION colunas(text);

CREATE OR REPLACE FUNCTION colunas(text)
  RETURNS SETOF RECORD AS
$BODY$
DECLARE
  myrec RECORD;
  myst TEXT;
  innermyst TEXT;
BEGIN
  innermyst = 'select * FROM '||$1||' as a, pgrowlocks('||quote_literal($1)||') 
AS p WHERE p.locked_row = a.ctid order by sr_recno';
  FOR myrec IN EXECUTE innermyst LOOP
 myst = innermyst||myrec;
 BEGIN
   EXECUTE myst;
   EXCEPTION WHEN lock_not_available THEN
   RETURN NEXT myrec;
 END;
  END LOOP;
  RETURN;
END;

$BODY$
   LANGUAGE 'plpgsql' VOLATILE STRICT
   COST 100
   ROWS 1000;
ALTER FUNCTION colunas(text) OWNER TO 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] Erro na Função

2008-10-29 Por tôpico tetraetila®

- Original Message - 
From: Roberto Mello [EMAIL PROTECTED]
To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Sent: Wednesday, October 29, 2008 6:02 PM
Subject: Re: [pgbr-geral] Erro na Função


 O erro esta' descrito nos comentarios do proprio blog de onde voce
 copiou essa funcao. Encontrei sem nem saber de onde ela tinha vindo,
 so' desconfiei que nao era voce quem tinha escrito.

Não Roberto, definitivamente eu NÃO criei esta função,
se me referenciei a ela como minha foi força de expressão.
Por estar tentando utilizá-la.
Se acompanha a lista pode ver claramente que estou um tanto
quanto enrolado com o Postgres, pois estamos ainda migrando
do DBF e pensamos que Postgres seria o caminho, o que
não está sendo nada fácil.

 ote que o proprio autor diz o seguinte:

Ok! Eu recebi ela em um TXT (puro) de outra pessoa que estava me ajudando
a pesquisar, agora é que localizei o Blog que diz:

En vez de esto mejor usar 
http://people.planetpostgresql.org/greg/exit.php?url_id=404entry_id=92 que 
es un contrib de postgresql

 Ou seja, a funcao e' claramente ineficiente. Voce deveria procurar uma
 solucao melhor, como apontada pelo proprio autor da funcao, e usar o
 pgrowlocks. Ele faz parte do contrib que acompanha o PostgreSQL, e e'
 empactoado separadamente em varias distribuicoes do Linux. Basta ler
 as instrucoes do modulo de como instala-lo e usa-lo.
Roberto[1] http://www.postgresql.org/docs/8.3/static/pgrowlocks.html--De 
qualquer forma agradeço pela ajuda, prometo postar referências 
bibliográficas completas.:-)Adilson Nunes 

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


Re: [pgbr-geral] Erro na Função

2008-10-29 Por tôpico tetraetila®
 - Original Message - 
 From: Roberto Mello [EMAIL PROTECTED]
 To: Comunidade PostgreSQL Brasileira 
 pgbr-geral@listas.postgresql.org.br
 Sent: Wednesday, October 29, 2008 6:02 PM
 Subject: Re: [pgbr-geral] Erro na Função


 Roberto

 [1] http://www.postgresql.org/docs/8.3/static/pgrowlocks.html



Prezado Roberto

Problema resolvido! Agora é esperar o próximo... rs rs rs rs
Instalei o módulo e funcionou, obrigado pela ajuda!


/* pgrowlocks.sql em: C:\Arquivos de programas\PostgreSQL\8.3\share\contrib\ 
*/

/* $PostgreSQL: pgsql/contrib/pgrowlocks/pgrowlocks.sql.in,v 1.3 2007/11/13 
04:24:28 momjian Exp $ */

-- Adjust this setting to control where the objects get created.

SET search_path = public;

CREATE OR REPLACE FUNCTION a003.pgrowlocks(IN relname text,
OUT locked_row TID,  -- row TID
OUT lock_type TEXT,  -- lock type
OUT locker XID,  -- locking XID
OUT multi bool,  -- multi XID?
OUT xids xid[],  -- multi XIDs
OUT pids INTEGER[])  -- locker's process id
RETURNS SETOF record
AS '$libdir/pgrowlocks', 'pgrowlocks'
LANGUAGE C STRICT;
 

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


[pgbr-geral] Capturar retorno de uma query.

2008-10-27 Por tôpico tetraetila®
Olá Pessoal !

Tenho uma aplicação que funciona no Firebird e bloqueio um determinado
registro com o seguinte select:

select * from test_table where sr_recno = 10 for update with lock.

Quando um outro usuário tenta acessar este mesmo registro verifico o estado
dele e ele estando bloqueado, retornando True, de dentro da minha aplicação 
emito
um alerta para este usuário, tipo: Registro indisponível!, etc.

Ok!

No Postgres eu consigo bloquear o registro também com o select:

begin;
select * from table_test where sr_recno = 10 for update

Só que ele não me retorna imediatamente, fica aguardando o término da
transação e o usuário fica travado, waiting.

Gostaria de saber se alguém sabe algum modo de ele não ficar aguardando,
verificando o registro se estiver bloqueado retorne False imediatamente.
Seria uma função.

Por exemplo se eu der um

select * from pg_stat_activity where waiting = 't' and current_query =
'minha sentença exemplo...'

Ele irá me retornar True, porém preciso capturar este retorno para tratar na
minha aplicação. Ou uma função que faça isto, capture o retorno no BD.

Qualquer ajuda será bem vinda, meu muito obrigado!

Adilson Nunes
Divinópolis - MG




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


[pgbr-geral] Ajuda com BD

2008-10-27 Por tôpico tetraetila®
Pessoal

Como eu faço para verificar no Postgres se determinado registro de uma
tabela está bloqueado?

Exemplo:  select * from tabela_clientes where id_cliente = 120 for update
with lock;

Bloqueio funciona no Firebird.

No Postgres seria: select * from tabela_clientes where id_cliente = 120 for
update;

Porém no Postgres a aplicação trava aguardando a liberação. O que eu preciso
é
verificar se está bloqueado e imediatamente dar o retorno para o usuário que
tentou o acesso.

Quando outra pessoa tentar acessar este cliente quero retornar uma mensagem
como

Registro indisponível, etc. Precisa capturar o retorno do BD.

Qualquer ajuda será bem vinda.

Obs.: Estou saindo de DBF e está uma luta!

Obrigado!

Adilson

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


[pgbr-geral] Verificar registro bloqueado.

2008-10-24 Por tôpico tetraetila
Olá Pessoal

Gosgaria que vocês me ajudassem com esta dúvida.
Utilizo o código abaixo para bloquear um determinado registro na tabela:

begin work;
select * from a003.a003015_tbl where sr_recno = 1 for update;
update a003... ( instruções... )
commit work;

Como eu faço para de dentro da minha aplicação retornar/verificar
quando este registro ainda estiver bloqueado?

No Firebird me retona .T. não estou conseguindo pegar
o retorno no Postgres, pode ser um select ou outro comando qualquer.

Muito obrigado!

Adilson Nunes



Obs.: Qualquer ajuda sobre a manipulação destes retornos no Postgres
serão bem vindas. Estamos migrando para Postgres.


-- 
-- 

Adilson Nunes   -  tetraetila(R)

 ?
õ¿õ¬
(¬)

Linux Registered User # 272492

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


[pgbr-geral] Bloqueio Lock

2008-10-08 Por tôpico tetraetila®
Pessoal

Como eu bloqueio apenas um registro de uma tabela no Postgres?
Tipo um usuário pode estar posicionado em um registro e o outro 
em outro porém na mesma tabela. Como eu fazia em DBF.
No Postgres não sei fazer.

Obrigado!


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


Re: [pgbr-geral] Ajuda com SQL e BD

2008-10-01 Por tôpico tetraetila®
Euler

Muito obrigado pela ajuda, vou adotar este sistema.

Adilson




- Original Message - 
From: Euler Taveira de Oliveira [EMAIL PROTECTED]
To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Sent: Wednesday, September 24, 2008 12:59 AM
Subject: Re: [pgbr-geral] Ajuda com SQL e BD


tetraetila® escreveu:
 Estou precisando de uma ajuda, o Firebird não me serve. Preciso aprender
 a fazer o DBLink no Postgres
 para poder utilizar mais de um BD na minha aplicação. Qualquer ajuda
 será bem vinda.
O que você precisa não é de acesso a múltiplos bancos; você precisa de
múltiplos esquemas [1]. Você pode criar vários esquemas empresa01,
empresa03, ..., empresan e colocar as tabelas de movimentação em cada um
dos esquemas. As tabelas são acessadas utilizando
empresa01.movimentacao, empresa02.movimentacao, ...,
empresan.movimentacao. Além disso, você pode restringir acesso a esquemas.

[1] http://www.postgresql.org/docs/8.3/static/sql-createschema.html


-- 
  Euler Taveira de Oliveira
  http://www.timbira.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] Ajuda com select

2008-10-01 Por tôpico tetraetila®
Obrigado aos amigos, foi solucionado da seguinte maneira:


copy (select to_char( a017_dtem,'mmDD ), a017_vavn ... ) to 
E'\\windows\temp\tempor.txt' with delimiters '|'


Todos os campos tipo data me retornam a string ano, mês, dia. ( 20080930 ) aí 
faço minha exportação.


Agradecimento ao Willian, Renato...

Adilson Nunes



  - Original Message - 
  From: Marcelo Costa 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Monday, September 29, 2008 11:39 PM
  Subject: Re: [pgbr-geral] Ajuda com select



  Olá, 

  2008/9/29 tetraetila® [EMAIL PROTECTED]

Olá Pessoal


Quando eu dou um select na minha tabela alguns campos retornam a data no 
formato:

2008-09-29

Como eu posso formatar esta data para não retornar os traços ( - ), 
separadores. 
Após o select preciso que a data venha apenas os números tipo: 20080929, 
pois
gravo em txt e faço uma importação dos dados logo em seguida e este traços 
estão me atrapalhando.

  Use regexp_replace [1]

  select regexp_replace('2008-08-08',E'[\\-\\.]', '','g');


  [1] http://www.regular-expressions.info/postgresql.html

  -- 
  Marcelo Costa



--


  ___
  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] Ajuda com select

2008-09-29 Por tôpico tetraetila®
Olá Pessoal


Quando eu dou um select na minha tabela alguns campos retornam a data no 
formato:

2008-09-29

Como eu posso formatar esta data para não retornar os traços ( - ), 
separadores. 
Após o select preciso que a data venha apenas os números tipo: 20080929, pois
gravo em txt e faço uma importação dos dados logo em seguida e este traços 
estão me atrapalhando.


Muito obrigado!


Adilson Nunes



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


[pgbr-geral] Ajuda com Select

2008-09-29 Por tôpico tetraetila®
 Olá pessoal!

Preciso gravar o resultado de um select em um arquivo DBF. 
Alguém sabe como posso fazê-lo? No Postgres eu gravo para TXT.

copy from (select * from tabela) to E'\\Temp\\arquivo.txt'

Preciso salvar em DBF, exportar.

Muito obrigado!

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


Re: [pgbr-geral] RES: Ajuda com SQL e BD

2008-09-24 Por tôpico tetraetila®
Ok! Guilherme, muito obrigado! 

Mais o problema é integrar o DBLink dentro do meu select, onde ele faz 
referência a tabela de outro BD seria intercalado o select do DBLink. Fazer
o DBLink sozinho eu sei, como montar o select completo é que não. Tipo:


select a017.a017_docu, a017.a017_tipo, ** DBLINK a014_desc **, 
a017.a017_dtem,

a017.a017_tpfo, a017.a017_forn, ** DBLINK a001_nome **, a017.a017_hist,

a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg,

a017.a017_atra, a017.a017_cdbx, a017.a017_banc, ** DBLINK a016_desc **,

a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, **DBLINK 
a011_desc **, 

a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo

 

from a001017_tbl a017

 

left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv)

left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) and 
(a017.a017_forn = a001001_tbl.a001_chv)

left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv)

left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu)




Adilson Nunes


  - Original Message - 
  From: Guilherme Vianna de Aguiar 
  To: 'Comunidade PostgreSQL Brasileira' 
  Sent: Wednesday, September 24, 2008 9:53 AM
  Subject: [pgbr-geral] RES: Ajuda com SQL e BD


  Para usar dblink, você precisa ter instaladas as funções. 

   

  A sintaxe eh 

  select * 

  from ('_CONN_BANCO_REMOTO_',  '_SELECT_BANCO_REMOTO')

  as t1 (_COL_BANCO_REMOTO_ tipo);

   

  Um exemplo

   

  select * 

  from dblink('dbname=teste hostaddr=10.0.0.0 user=postgres password=postgres 
port=5432', 

  'select data

   from dw_data 

   where substring(data::varchar, 1, 7) = ''2008-08''  ')

  as t1(data varchar)

   

  [],

  Guilherme Vianna

   

   

  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de tetraetila®
  Enviada em: terça-feira, 23 de setembro de 2008 23:34
  Para: pgbr-geral@listas.postgresql.org.br
  Assunto: [pgbr-geral] Ajuda com SQL e BD

   

  Estou precisando de uma ajuda, o Firebird não me serve. Preciso aprender a 
fazer o DBLink no Postgres

  para poder utilizar mais de um BD na minha aplicação. Qualquer ajuda será bem 
vinda. 

  Veja a situação abaixo:

   

  
-

   

  Olá 


  Estou migrando um sistema para Firebird e me deparei com um problema que 
gostaria de debater com vocês. 
  Tenho um BD que possui as tabelas com os dados de clientes, fornecedores, 
transportadores e vendedores, além
  das tabelas de tipos de documentos, plano de contas, bancos, etc. Seria a 
base principal.

  Quando estou na Empresa01 faço um select que me retorna o tipo de documento 
na tabela A017 e a descrição do 
  documento que está na tabela A014,  o tipo de fornecedor na tabela A017 e o 
nome do fornecedor  na tabela A001
  e por aí vai, vendedores, transportadores, plano de contas, etc. A tabela 
A017 é de movimentação de contas a pagar, porém no sistema
  eu trabalho com as Empresas02, 03, n... As tabelas padrões são as mesmas, 
eu mudo apenas os arquivos de movimentação
  para outro BD. O problema é que eu não sei como fazer isto ou se é possível 
fazê-lo no Firebird.  Ou seja, dar um select que 
  busque dados em dois BD's distintos. Quando o banco de dados é o mesmo o 
select abaixo  funciona perfeitamente, 
  porém quando mudo para a Empresa02 não funciona, pois não sei buscar as 
informações das tabelas A014 - 
  A001 - A016 - A011 que estão no BD001. Isto que necessito seria em Postgres, 
um DBLink, já andei pesquisando.

  Se alguém tiver uma sugestão que possa me ajudar mesmo que seja fazer o 
DBLink no Postgress, agradeço desde já. 
  Pois esta está sendo a pedra no meu caminho para terminar o sistema, 
resolvendo isto vários problemas serão

  solucionados de uma vez só. Estamos saindo do Clipper e DBF.

   

  Muito obrigado!

  Vejam o select que funciona quando o BD é único:

  select a017.a017_docu, a017.a017_tipo, A014_DESC, a017.a017_dtem,
  a017.a017_tpfo, a017.a017_forn, A001_NOME, a017.a017_hist,
  a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg,
  a017.a017_atra, a017.a017_cdbx, a017.a017_banc, A016_DESC,
  a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, A011_DESC,
  a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo

  from a001017_tbl a017

 left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv)
 left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) 
and  (a017.a017_forn = a001001_tbl.a001_chv)
 left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv)
 left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu)


  O que retornaria mais ou menos conforme abaixo

[pgbr-geral] Ajuda com SQL e BD

2008-09-23 Por tôpico tetraetila®
Estou precisando de uma ajuda, o Firebird não me serve. Preciso aprender a 
fazer o DBLink no Postgres
para poder utilizar mais de um BD na minha aplicação. Qualquer ajuda será bem 
vinda. 
Veja a situação abaixo:

-

Olá 

Estou migrando um sistema para Firebird e me deparei com um problema que 
gostaria de debater com vocês. 
Tenho um BD que possui as tabelas com os dados de clientes, fornecedores, 
transportadores e vendedores, além
das tabelas de tipos de documentos, plano de contas, bancos, etc. Seria a base 
principal.

Quando estou na Empresa01 faço um select que me retorna o tipo de documento 
na tabela A017 e a descrição do 
documento que está na tabela A014,  o tipo de fornecedor na tabela A017 e o 
nome do fornecedor  na tabela A001
e por aí vai, vendedores, transportadores, plano de contas, etc. A tabela A017 
é de movimentação de contas a pagar, porém no sistema
eu trabalho com as Empresas02, 03, n... As tabelas padrões são as mesmas, eu 
mudo apenas os arquivos de movimentação
para outro BD. O problema é que eu não sei como fazer isto ou se é possível 
fazê-lo no Firebird.  Ou seja, dar um select que 
busque dados em dois BD's distintos. Quando o banco de dados é o mesmo o 
select abaixo  funciona perfeitamente, 
porém quando mudo para a Empresa02 não funciona, pois não sei buscar as 
informações das tabelas A014 - 
A001 - A016 - A011 que estão no BD001. Isto que necessito seria em Postgres, um 
DBLink, já andei pesquisando.

Se alguém tiver uma sugestão que possa me ajudar mesmo que seja fazer o 
DBLink no Postgress, agradeço desde já. 
Pois esta está sendo a pedra no meu caminho para terminar o sistema, 
resolvendo isto vários problemas serão
solucionados de uma vez só. Estamos saindo do Clipper e DBF.

Muito obrigado!

Vejam o select que funciona quando o BD é único:

select a017.a017_docu, a017.a017_tipo, A014_DESC, a017.a017_dtem,
a017.a017_tpfo, a017.a017_forn, A001_NOME, a017.a017_hist,
a017.a017_dtvn, a017.a017_vavn, a017.a017_dtpg, a017.a017_vapg,
a017.a017_atra, a017.a017_cdbx, a017.a017_banc, A016_DESC,
a017.a017_cheq, a017.a017_his1, a017.a017_digi, a017.a017_plan, A011_DESC,
a017.a017_dupl, a017.a017_docu as ca017_docu, a017.a017_tipo as ca017_tipo

from a001017_tbl a017

   left outer join a001014_tbl on (a017.a017_tipo = a001014_tbl.a014_chv)
   left outer join a001001_tbl on (a017.a017_tpfo = a001001_tbl.a001_tipo) and  
(a017.a017_forn = a001001_tbl.a001_chv)
   left outer join a001016_tbl on (a017.a017_banc = a001016_tbl.a016_chv)
   left outer join a001011_tbl on (a017.a017_plan = a001011_tbl.a011_redu)


O que retornaria mais ou menos conforme abaixo:

-
A017_DOCU | A017_TIPO | A014_DESC | A017_DTEM | A017_TPFO | A017_FORN | 
A001_NOME   |
-
52.521-U| 003  | Duplicatas  |16/09/2008  | 001 
  | 000565  | Santa Maria S/A.|
--
36.878-A| 005  | Cheques |16/08/2008 | 001  
 | 98  | Papelão  Cia.|
--
14.315-B| 001  | Pagamentos |16/09/2007| 001
   | 01  | Pagamentos diversos|
--


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