none
PARADOX ODBC LEFT OUTER JOIN RRS feed

  • 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.

    quinta-feira, 8 de fevereiro de 2007 11:53

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.

     

    domingo, 11 de fevereiro de 2007 22:08
  • 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.
    segunda-feira, 12 de fevereiro de 2007 15:46
  • 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.
    segunda-feira, 12 de fevereiro de 2007 19:45