Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Erro ao retornar dados via ODBC

Pessoal,

Criei uma view no banco de dados e quando vou puxar as informações no Sense mostra a seguinte mensagem:

Carga de arquivos iniciada

Connecting to DataPlus

Connected

ODBC read failed SQL Select * from dbo.vw_PrazoEntrVenda

Falha na carga de dados

Esta tudo correto, não é erro de escrita e a view existe exatamente com este nome.

Já tentei excluir e recriar odbc, tentei usar odbc32 e 64bits, já reinstalei o Sense enfim, não sei mais o que fazer.

A consulta proveniente da view em si, é bem complexa e demorada (em torno de 40seg para retornar dados). Será que pode ser isso?

Grato.

Labels (2)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Pessoal, consegui solucionar o problema segmentando o load da seguinte forma:

LIB CONNECT TO 'DataPlus';

Load PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF;

SQL Select PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF From vw_PrazoEntrVenda;

Load PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt,PrazoRealEntr;

SQL Select PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt, PrazoRealEntr from vw_PrazoEntrVenda;

Load Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario;

SQL Select Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario from vw_PrazoEntrVenda;

CesarAccardi Obrigado por sua ajuda.

View solution in original post

9 Replies
cesaraccardi
Specialist
Specialist

Ola Andre,

Voce consegue ler dados de outras tabelas/views no mesmo banco de dados?

Anonymous
Not applicable
Author

Sim,

Tenho outras consultas que estão funcionando normalmente.

cesaraccardi
Specialist
Specialist

Experimenta substituir o * por alguns campos so e tenta recarregar pra ver se nao e um problema especifico com os campos.

Not applicable
Author

Você está usando o SQL Server 2014?

Pois conforme o Cesar Accardi falou, parece que a Microsoft aboliu o uso do * por medidas performáticas.

Grato pela atenção.

Anonymous
Not applicable
Author

Cesar,

Vamos aos testes:

O Load completo era assim:

Load

    Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario,

    PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF, PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt,

    PrazoRealEntr;

SQL Select * from dbo.vw_PrazoEntrVenda;

Ai fiz o seguintes testes:

Load só com:

Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario; PASSOU

Load só com:

PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF; PASSOU

Load só com:

PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt, PrazoRealEntr; PASSOU

Ai tenteis assim:

Load

Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario;

Load

PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF;

Load

PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt, PrazoRealEntr;

SQL Select * from dbo.vw_PrazoEntrVenda;

E Novamente deu o mesmo erro.

Anonymous
Not applicable
Author

Pessoal, consegui solucionar o problema segmentando o load da seguinte forma:

LIB CONNECT TO 'DataPlus';

Load PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF;

SQL Select PrazoUltimaAlt, DataLiberacao, NotaFiscal, DataEmissaoNF From vw_PrazoEntrVenda;

Load PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt,PrazoRealEntr;

SQL Select PrazoLiberacao, PrazoPrevistoEntr, PrazoUltimaAlt, PrazoRealEntr from vw_PrazoEntrVenda;

Load Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario;

SQL Select Ano, Mes, Pedido, Emissao, DataEntregaPrev, Cliente, TotalPedido, TeleVenda, Usuario from vw_PrazoEntrVenda;

CesarAccardi Obrigado por sua ajuda.

cesaraccardi
Specialist
Specialist

Andre,

Sem problemas, fico feliz que tenha conseguido achar a solucao. Eu ja tive problemas parecidos no passado com LOAD * mas nao sabia desta informacao paulodantas13.

Abracos

Not applicable
Author

Pois é Cesar,

um amigo do trabalho estava instalando o Server 2014, e foi executar a view, e deu problema, sendo que essa mesma view executada no SQL 2005, 2008 não dava problema.

Acredito que a Microsoft tenha proibido usar SELECT * FROM nas views, para não causar problemas de performance.

Eis um site que vi algo sobre não usar * nas views.

Why do I have problems with views after altering the base table?

cesaraccardi
Specialist
Specialist

Interessante Paulo, nao sabia... Obrigado pelo link!