Problemas com subselect: DBExpress Postgres/Firebird

Delphi

26/10/2006

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:

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

Techsoft

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

26/10/2006

Basta usar CAST dentro da sua expressão pra definir exatamente o tipo e tamanho que deseja.
select cast(´teste´ as varchar(100))



GOSTEI 0
Techsoft

Techsoft

26/10/2006

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


GOSTEI 0
POSTAR