Pergunta
· Jun. 2

Minhas consultas SQL não retornam registros, mas o banco de dados possui globals com dados.

Prezado senhores,

Estou tentando consultar os dados das tabelas de um banco de dados caché. Ele possui dados nas globais.  Também possui tabelas SQL sem registros, mas com a estrutura das classes do banco de dados. Quando vou consultar os dados através do driver ODBC não retorna nenhum dado. Mesmo pelo painel administrativo as consultas SQL não retornam dados. Sabem me dizer o que pode estar acontecendo?

At.te

Graciano dos Santos Duarte

Product version: Caché 2012.1
Discussão (5)3
Entre ou crie uma conta para continuar

boa tarde Graciano,

as globais são o formato mais básico de armazenamento de dados do Caché/IRIS. 

Independente do modelo de dados, relacional, obejctos, documentos ou qualquer formato, os dados vão residir em uma global.

A forma de recuperação é que vai depender do modelo de dados que vocês escolheram para implementar sua arquitetura. 

Ou seja, se você usou uma DDL para criar uma tabela, o banco cria as projeções SQL, mas sempre armazeando em uma Global.

Se seu sistema nasceu em global, vocês manualmente podem mapear esta global e seus componentes para uma visão SQL.

como a Djennifer colocou, ajudaria saber como é a arquitetura do seu produto para entender melhor.

obrigado,

Graciano,

Uma dica: Verifique na classe que você está querendo consultar, dentro de storage, a tag <DataLocation> que informa a global associada a persistência da sua classe. Essa tag sozinha não define o acesso aos dados, mas é um começo. Uma vez que você confirmou que a sua classe está associada a global que você certificou que tem os dados, será necessário confirmar se o mecanismo de acesso está coerente (chaves, níveis, delimitadores, pieces, etc) isso se estivermos falando de um mapeamento feito manualmente. Se tudo estiver OK pode ser um problema de configuração da conexão ODBC que você está utilizando. Um teste útil seria você fazer uma consulta SQL via Portal de Administração->Explorer do Sistema->SQL e então vá para o namespace onde você tem suas tabelas. Faça então uma consulta SQL e veja o resultado. Uma vez feita a consulta você pode consultar o plano de execução que dá detalhes de como foi o acesso aos dados. Isso pode trazer alguma informação adicional.