[pgbr-geral] Erro: SHGetFolderPath
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
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
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
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
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
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
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.
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
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
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
- 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
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
- 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
- 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.
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
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.
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
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
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
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
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
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
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
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