ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[RESOLVIDO]PostGree SQL - Problemas com SQL Básico
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 10:12 am    Assunto: [RESOLVIDO]PostGree SQL - Problemas com SQL Básico Responder com Citação

Ola galera, estou migrando do SQLSERVER2000 para o postgreeSQL 8 agora, e estou tendo alguns problemas.....

o primeiro, vejo todo mundo falando q o sgbd suporta stored procedures e tal...mas eu não consigo utilizar...criei um função q retorna os dados de uma tabela porem pra poder usar tenho q fazer um select na tabela....
ex: select função()

segundo, pra fazer uma consulta simples no banco como por exemplo:

select * from tabela (dessa forma não funciona da erro dizendo q a tabela não existe)

para funcionar tenho q fazer assim...

select * from "TABELA" (ou seja alem de ter que colocar entre aspas duplas ainda é sensitive case, e isso vale se eu quiser pegar um campo especifico)

terceiro, uma forma muito utilizada e que eu não consegui fazer no postgree é a seguinte..

select t1.*
from tabela1 t1
inner join tabela2 t2 on t1.t2_cod = t2.t2_cod

creio q não funcione por falta das aspas...mas eu não consigo nem 'apelidar' a tabela qnt mais fazer um inner join...

essas são algumas das minha duvidas....

estou utilizando a versão 8.2 q foi lansanda em fevereiro...
será q o problema é com a versão????

estou precisando muito de ajuda..m add no msn e respondam esse tópico pois não pode ser q só eu tenha esse problema...

msn: j12leonardo@hotmail.com

desde ja agradeço
_________________
J. Leonardo


Editado pela última vez por j.leo em Ter Mai 27, 2008 6:00 pm, num total de 2 vezes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Ter Mai 20, 2008 10:31 am    Assunto: Responder com Citação

isso tudo ocorreu pq na hora da criacao das tabelas vc passou elas com aspas em volta, dai fica case-sensitive (pelo menos é o que o ocorre no firebird)...

se vc der um

create table blabla(
id_blaa int primary key,
descricao text notnull
);

tudo funciona perfeitamente
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 10:36 am    Assunto: Responder com Citação

seguinte...

encontrei o problema do uso de aspas...

para criar as tabelas eu utilisei o ER/STUDIO e o script sql coloca o nome e os campos da tabela entre aspas o q ,pelo menos foi o q entendi, o postgree 'reserva' o nome e os campos da tabela...sendo obrigatório o uso das aspas na consulta....

ainda estou fazendo mais alguns testes....se alguem que tenha uma experiencia puder entrar em contato para m ajudar com as sotred procedures ficaria muito grato
_________________
J. Leonardo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Ter Mai 20, 2008 10:53 am    Assunto: Responder com Citação

dá uma olhada no manual que tem tudo lá!
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 11:10 am    Assunto: Responder com Citação

então...
mas agora surgiu o seguinte problema...

por normas pré definidas terei q colocar a sigla da tabela e depois o nome
sendo q a sigla tem q ser maiuscula...

ex: TAB_Tabela

então terei q deixar case-sensitive...

assim sendo, como faço pra 'apelidar' uma tabela pra poder utilizar o inner join de forma mais prática?

ou tem como eu deixar a tabela nesse padrão sem ficar case-sensitive???
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Ter Mai 20, 2008 11:32 am    Assunto: Responder com Citação

o postgre deixa tudo minusculo por padrao???
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 11:41 am    Assunto: Responder com Citação

pelo q eu vi deixa...pq and criei as tabelas sem as aspas estava tudo maiusculo...
e agora as tabelas aparecem com letras minusculas..

com tudo minusculo consigo efetuar consultas sql normalmente...
só q tenho q padronizar....

help...HELP!!!!!!!!!!!!!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 12:05 pm    Assunto: Responder com Citação

aí pessoal olha o q eu encontrei em outro forum...

acho q assim sanam as duvidas do aspas...rsrsr

Caro colega, não há opção no PostgreSql para que você altere o case insensitive para case sensitive. O PostgreSql é case insensitive e lower case, ou seja todos os identificadores (nomes de campos,colunas,constraints...) em comandos sql serão convertidos para letras minúsculas, caso queira usar caracteres maiúsculas em identificadores, deverá usar aspas duplas, ex:

create table "Pessoa" ("Nome" varchar(80));

O problema é que em qualquer consulta posterior você sempre terá que usar aspas duplas:

select "Nome" from "Pessoa"

Pois senão ocorrerá um erro informando que a coluna ou tabela correspondente não foi encontrada.

Igarashi






preciso agora ajuda pra substituir stored proceures do sqlserver2000 para as funções do postgree
valeu
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Ter Mai 20, 2008 12:06 pm    Assunto: Responder com Citação

definição do site postgresql.org

4.21) Por que os nomes de minhas tabelas e colunas não são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?
A causa mais comum de nomes desconhecidos é o uso de aspas ao redor dos nomes da tabela ou coluna durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna (chamados de identificadores) são armazenados como especificado, significando que você deve utilizar aspas quando se referir aos nomes na consulta. Algumas interfaces, como pgAdmin, automaticamente colocam aspas nos identificadores durante a criação da tabela. Então, para identificadores serem reconhecidos, você deve:

Evitar colocar aspas no identificador ao criar tabelas
Utilizar somente caracteres minúsculos em identificadores
Colocar aspas em identificadores ao referenciá-los nas consultas
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Qua Mai 21, 2008 3:39 pm    Assunto: Responder com Citação

acho q só participo de tópico...mas pelo menos algum dia alguem deve s beneficiar...

galera consegui criar uma função que faz o papel de stored procedure...

segue um exemplo de inserção de tela...ond temos o codigo e a descrição
pra fazer update é só mudar a parte do insert...o mesmo vale pra exclusão

CREATE FUNCTION sp_ins_telas (integer,varchar)

RETURNS void
AS'

DECLARE
p_cd_telas ALIAS FOR $1;
p_ds_telas ALIAS FOR $2;


BEGIN

INSERT INTO tb_telas (
cd_telas,
ds_telas
)

VALUES (

p_cd_telas,
p_ds_telas
);


END;
'
LANGUAGE 'plpgsql';


é isso aí galera...com isso acho q fecho esse tópico...o problema agora é chamar isso do delphi...rsrs
to ralando mas isso eu vou colocar lá no forum do delphi...
de bd acabou...esper ter ajudado...s alguem com experiencia em delphi+zeos+postgresql.....
por favor entre em contato...
abraço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Mai 21, 2008 5:59 pm    Assunto: Responder com Citação

o zeos ainda nao suporte Sp do postgre pelo ZStoredProc

tem que ser pela query mesmo...

http://zeos.firmos.at/viewtopic.php?=&p=4593
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
j.leo
Novato
Novato


Registrado: Terça-Feira, 20 de Mai de 2008
Mensagens: 40
Localização: Campo Grande / MS

MensagemEnviada: Qua Mai 21, 2008 6:11 pm    Assunto: Responder com Citação

é Don...

o jeito vai ser criar uma Query e utilizar o comando ExecSQL..
mas cara fica praticamente inviavel...o sistema foi desenvolvido durante anos...
agora eu to pegando essa parte de migração...então vou tentar mais um pouco...afinal quem procura acha...nem q eu tenha q fazer essa onça funcionar....rsrs
_________________
J. Leonardo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Qua Mai 21, 2008 9:38 pm    Assunto: Responder com Citação

Don, eu uso procedures com o Zeos + Postgree V.8.2 e funciona legal.

j.leo, já trabalho com Delphi + Postgree a uns 2 anos em um sistema de médio porte. Qualquer dúvida, se eu puder ajudar.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Sex Mai 23, 2008 1:23 am    Assunto: Responder com Citação

mas vc usa o ZStoredProc?

pq eu testei no mysql (uns anos atras) e dava o erro "operation not supported"...

e ai parece ser o mesmo caso

por query direto funciona... mas pelo StoredProc dá pau...


nao sei como esta agora
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Sex Mai 23, 2008 1:29 am    Assunto: Responder com Citação

thomazs

eu tava dando uma estudada no postgre, pra um projeto novo...

vc usa todas as "vantagens" dele?

quais as coisas (na tua opiniao) que fazem o pg valer a pena?

pq é bastante coisa... mas nao tenho dominio, daí to pensando em voltar pra outros bancos que conheco melhor...
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB