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
Pergunta
paulobergo
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:
e Isto não funciona (executando em uma janela na ODmatriz ou ODFilial...Grato por qualquer colaboração!
Abraços!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.