Inquiridor
PARADOX ODBC LEFT OUTER JOIN

Pergunta
-
Olá,
Preciso acessar dados de várias tabelas Paradox 7.x. Preciso fazer isso com LEFT OUTER JOIN.
A string de conexão é a que está abaixo [ODBC]:
Driver={Microsoft Paradox Driver (*.db )};collatingsequence=ASCII;dbq=c:\sistema\DADOS;defaultdir=c:\SISTEMA\DADOS;driverid=538;fil=Paradox 7.X;paradoxnetpath=c:\temp;paradoxnetstyle=4.x;paradoxusername=admin;safetransactions=0;threads=3;uid=admin;usercommitsync=Yes
Estou recebendo a mensagem:
ERROR [HY000] [Microsoft][Driver ODBC para Paradox] Sem suporte para a expressão de associação.
Já tentei com OLEDB e não funcionou também.
Alguma idéia?
Agradeço.
Todas as Respostas
-
Probleminha complicado.
Paradox eh ISAM (Indexed Sequential Access Method). Ou seja, arquivo, e nao um SGBD.
Entao nao tem ninguem do outro lado recebendo comando SQL e executando. O que o driver ODBC faz eh "fingir" que eh um SGBD, parsear o comando SQL e retornar o que voce quer, com limitacoes.
Solucoes:
1-Fazer na mao. Sim, vai dar trabalho. Sim, vai ficar lento.
2-Pegar um SQL Server, criar um linked server para essas tabelas, e fazer o comando no SQL. Assim, ele carrega os dados e processa o outer join nele, e nao no ODBC do paradox. Sim, ai voce depende do SQL Server.
3-Usar o Access em vez de paradox
4-Usar o Access vinculando as tabelas de paradox nele, assim como no item 2.
-
Valeu, Mateus,
Imaginava algo assim mesmo.
Se tiver, mande algum link para artigos tratando do assunto acima.
O que mais me deixa chateado (embora não venha ao caso), é que, como venho do Delphi, isso possa ser feito nesta linguagem/ferramenta e no C# não. Mas, deixemos para lá isso não?
Obrigado. -
Sim, eu trabalhei com o Delphi desde a versao 1, e eles sempre deram muito suporte ao Paradox. Mas ai vale lembrar que nao eh por causa do Delphi, e sim por causa da engine de acesso a dados que eles usam. Nao duvido nada que se voce procurar, voce vai acabar achando um driver odbc ou oledb que suporte isso, so que ainda assim a performance nao tende a ser grandes coisas.
Arquivo por arquivo eu ficaria com o access que eh superior em varios aspectos.