Ir para conteúdo
Fórum Script Brasil
  • 0

Microsoft ODBC 4 DBase, alias!tabela


paulobergo

Pergunta

Olá amigos... saudações!

Como identificar o alias em uma query usando ODBC Microsoft DBase Driver?

Explicando melhor...

Isso funciona:

select distinct cfop from notas

Isso não funciona:

select distinct cfop from odmatriz!notas

select distinct cfop from 'odmatriz!notas'

select distinct cfop from "odmatriz!notas"

select distinct cfop from 'odmatriz:notas'

E, explicando mais ainda...

O que preciso: abrir uma query, pelo DBExplorer (Delphi, BDE), usando uma conexão ODBC (ODBC Microsoft DBF Driver), identificando o alias, para poder juntar (union) dois resultados (queries) de bancos diferentes...

Então, precisaria identificar o alias junto com a tabela e, segundo a única documentação que consegui obter até agora, o correto seria separar o alias do nome da tabela com uma exclamação...

Porém, retorna falha, mesmo com um só alias...

Então, seja:

ODmatriz o alias para as tabelas em d:\empresas\acme\matriz, usando Microsoft ODBC para DBase

ODfilial o alias para as tabelas em d:\empresas\acme\filial

DBFmatriz o alias Standard DBase da própria BDE, para a pasta d:\empresas\acme\matriz

DBFfilial o alias Standard DBase da própria BDE, para a pasta d:\empresas\acme\filial

e... usando o DBExplorer para fazer as consultas (nos exemplos, uma query para mostrar as entradas na matriz e as saidas na filial)...

Isto funciona, executando na janela "Enter SQL" tanto do dbmatriz como do dbfilial:

select sum(qtde) as entradas, 0 as saidas, codigo
from ":dbmatriz:notas.dbf"
where substring(cfop from 1 for 1) in ("1", "2", "3")
group by codigo

union

select 0 as entradas, sum(qtde) as saidas, codigo
from ":dbfilial:notas.dbf"
where substring(cfop from 1 for 1) in ("5", "6", "7")
group by codigo
e Isto não funciona (executando em uma janela na ODmatriz ou ODFilial...
select sum(qtde) as entradas, 0 as saidas, codigo
from 'odmatriz!notas'
where mid(cfop, 1, 1) in ('1', '2', '3')
group by codigo

union

select 0 as entradas, sum(qtde) as saidas, codigo 
from 'odfilial!notas'
where mid(cfop, 1, 1) in ('5', '6', '7')
group by codigo

Grato por qualquer colaboração!

Abraços!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...