Fórum Problemas com subselect: DBExpress Postgres/Firebird #332156
26/10/2006
0
Pessoal,
Estou criando um sistema onde inicialmente seria usado o Firebird, até ai tudo bem estava tudo funcionando perfeitamente. Porém, um dos clientes pediu para estudar a possibilidade de portar para o Postgres. A princípio não teria grandes problemas, já que estava trabalhando com DBExpress e ele se propos a comprar o driver da Vitavoom para acesso.
O acesso funciona perfeitamente, onde tenho apenas consultas está 100¬. Porém, surgiu um problema nos datasets de cadastro onde não uso lookups e sim subselects como o exemplo abaixo:
No Firebird isso funciona sem problemas, no Postgres até funciona, porém como ele trata tipos varchar sem precisão como tipos TEXT, para o dataset ele aparece como sendo um MEMO e ai que está pegando o problema.
Estou procurando soluções mas ainda não encontrei, se alguém tiver alguma idéia de como resolver, será de grande ajuda. Estou tentando evitar ao máximo voltar a usar datasets apenas par lookup por isso o uso dos subselects.
[]´s
Estou criando um sistema onde inicialmente seria usado o Firebird, até ai tudo bem estava tudo funcionando perfeitamente. Porém, um dos clientes pediu para estudar a possibilidade de portar para o Postgres. A princípio não teria grandes problemas, já que estava trabalhando com DBExpress e ele se propos a comprar o driver da Vitavoom para acesso.
O acesso funciona perfeitamente, onde tenho apenas consultas está 100¬. Porém, surgiu um problema nos datasets de cadastro onde não uso lookups e sim subselects como o exemplo abaixo:
SELECT CLI.NOME, CLI.CODE, CLI.ADTO, CLI.FILIAL, (SELECT FIL.DESGFILIAL FROM TB500 FIL WHERE FIL.FILIAL = CLI.FILIAL) AS DFILIAL FROM MOD12 CLI WHERE CLI.CODE = :PCODE
No Firebird isso funciona sem problemas, no Postgres até funciona, porém como ele trata tipos varchar sem precisão como tipos TEXT, para o dataset ele aparece como sendo um MEMO e ai que está pegando o problema.
Estou procurando soluções mas ainda não encontrei, se alguém tiver alguma idéia de como resolver, será de grande ajuda. Estou tentando evitar ao máximo voltar a usar datasets apenas par lookup por isso o uso dos subselects.
[]´s
Techsoft
Curtir tópico
+ 0
Responder
Posts
27/10/2006
Bon Jovi
Basta usar CAST dentro da sua expressão pra definir exatamente o tipo e tamanho que deseja.
select cast(´teste´ as varchar(100))
Responder
Gostei + 0
27/10/2006
Techsoft
Bon Jovi,
obrigado pela resposta, era isso mesmo, eu entrei aki para postar q havia conseguido e vi sua resposta.
de qualquer forma, vlw pela resposta.
[]´s
obrigado pela resposta, era isso mesmo, eu entrei aki para postar q havia conseguido e vi sua resposta.
de qualquer forma, vlw pela resposta.
[]´s
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)