Jump to content
Fórum Script Brasil
  • 0

Microsoft ODBC 4 DBase, alias!tabela


paulobergo
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...