Ao Abrir aplicativo apresenta exceção por método ou falta de DLL não identificado

Você está desenvolvendo um exe, e quando vai executa-lo em outro ambiente (na estação cliente) ele simplesmente não executa e apresenta uma mensagem de erro, exceção com endereçamento de memória hexadecimal. Levanto-se em consideração que nesta estação você não dispõe de nenhuma ferramenta de desenvolvimento para depurar o problema.

Bem, o seu problema muito provavelmente pode ser a ausência de uma dll, ou um método bugado ainda não identificado, aí que vem a pergunta chave:

Como é que faço para descobrir qual é a dll ou método que está faltando para que o meu aplicativo possa rodar normalmente?

Todo desenvolvedor um dia muito provavelmente já teve isto ou irá se deparar com este problema, então guarde esta solução na sua lista de trobleshooting.

A Solução é o Dependency Walke, versão para 32 bits, basta abrir o seu exe por ele, e iniciar o profiler, se ele não apontar qual a dll está faltando, você pelo menos através do profiler identificará qual o método está ocasionando a exceção. Observação importante, ele não se aplica apenas para descobrir quais as dependências de um Exe, também se aplica a dlls que dependem de outras dlls

image1

 

 

 

Bug conexão dbx Sql Server 2012 com RAD Studio XE6

Ao tentar efetuar conexão, utilizando o componente dbxpress do RAD Studio xe6, com o meu Sql Server 2012 64bits, me deparava com o erro.

DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.

Verifiquei no código fonte da Data.DbxMSSQL que dll cliente utilizanda era do instalador cliente do Sql Server 2008.

Values[TDBXPropertyNames.LibraryName] := 'dbxmss.dll';
Values[TDBXPropertyNames.VendorLib] := 'sqlncli10.dll';
Values[TDBXPropertyNames.VendorLibWin64] := 'sqlncli10.dll';

Para resolver o problema bastou instalar o client do Sql server 2008 R2, e consegui conexão normalmente com o sql server 2012.

 

 

 

Atualização parcial de banco com Erwin

Quando estamos habituados a modelagem de banco de dados, principalmente em cenários de Data warehouse, nos deparamos com situações onde é muito trabalhoso promover uma atualização da estrutura do banco tentando preservar algum dado que já esteja populado, manter sua estrutura dentro do Erwin ainda é muito útil durante todo o ciclo do desenvolvimento, pois entre as muitas vantagens na agilidade da manutenção do banco, poderia citar por exemplo a simples alteração de um tipo de campo em uma chave primária por exemplo, parece simples mas se torna uma tortura pois precisa ser refletida em todas as chaves estrangeiras, e vejo amigos meus que abandonam o Erwin sofrerem com este tipo de situação.

Para quem está vivendo o drama de ter que alterar uma estrutura de banco em cascata, não fique desesperado,  ainda é possível de forma ágil promover atualização parcial da estrutura do banco de dados  preservando dados e estrutura pré-existente. O que nós iremos fazer é exportar apenas o script da estrutura de tabelas que desejamos e executa-lo. No Erwin quando você promove uma alteração assim, na chave primária, ele automaticamente já altera o tipo em todas as chaves estrangeiras relacionadas. E acreditem isso é uma grande mão na roda em bancos corporativos com projetos de missão crítica, onde uma chave primária tem relação até com 30 tabelas. Se você utilizava a opção Forward sem antes filtrar as entidades que desejava alterar, pode acabar perdendo alguma coisa que não queria, o que você precisa fazer é um forward parcial, utilizando a opção Filter. 

image1

Para isso, basta selecionar as entidades que deseja atualizar, e clicar sobre o botão “Forward Engineer Schema Generation”  indicado na imagem acima, após isso você deverá validar a filtragem apenas dos elementos selecionados clicando sobre o botão “Filter”.

image2image1

E ao invés de implementar a alteração diretamente no banco conforme possibilitaria o botão “Generate”, clique sobre o botão “Report”, ele lhe permitirá salvar todo o ddl de criação da estrutura dos dados, e assim permite muito maior controle sobre possíveis erros na execução da atualização.

image1É importante ainda antes mesmo de exportar o script de alteração do banco, desmarcar todas as opções de exportação de index conforme ilustração, sem isso ele gera baste index desnecessário, além de primary keys e foreign keys .

image1

E pronto, geralmente executo o script diretamente sem resultar erros.

Abraços

 

EGO – Joana Prado diz na web: ‘Consigo ser totalmente submissa ao meu marido’ – notícias de Famosos

[spider_facebook id=”1″]

Vale a pena ler este artigo, em um mundo com tanta inversão de valores em algum momento surge um lampejo de luz.

EGO – Joana Prado diz na web: ‘Consigo ser totalmente submissa ao meu marido’ – notícias de Famosos.

[spider_facebook id=”1″]

Atualizando vinculo de relacionamento Dimensões/Fato no Analyze Service Multidimencional

Dentro do Analyze Service Multidimensional, ocorre que em um determinado momento você percebe que não consegue filtrar uma métrica por uma dimensão específica, porque durante a criação do seu DW (Data warehouse) você acabou se esquecendo de criar uma determinada FK ( foreing key). Neste caso não basta apenas atualizar seu visão,  diagrama do cubo, ou mesmo criar o relacionamento de forma manual no diagrama, é necessário além de tudo isso, criar os vínculos dentro cubo na aba “Uso da Dimensão” conforme ilustração das imagens.   image2 image1

Duplicidades em Atributos de Dimensões (Cubo Multidimensional)

Se você trabalha com o Microsoft Analyze Service (Multidimensional) talvez já tenha se deparado com a mensagem de erro:

Erros no mecanismo de armazenamento OLAP: Uma chave de atributo duplicada foi encontrada durante o processamento: Tabela

ou em inglês algo como: Errors in the OLAP storage engine: A duplicate attribute key has been found

 

Isso ocorre porque na compilação padrão de um cubo Multidimensional, se efetua uma séria de verificações e validações da estrutura do DW, entre estas verificação está uma verificação de duplicidades nos atributos de uma dimensão.

Em algumas circunstancias é necessário admitirmos duplicidades nos atributos, quando falamos de atributos estamos falando de qualquer campo da dimensão, ainda que não seja a chave primária.

A solução é muito simples, mande processar apenas a dimensão e na tela abaixo clique sobre “Alterar Configuração”

image1

 

Após isso observe na aba “Erros de Chave de Dimensão” que está marcado para Usar Configuração de Erros padrão”, basta marcar a opção de baixo Personalizada, pois nesta opção é permitido ignorar erros de duplicidades

image2

Ocorre que desta maneira no próximo processamento esta opção não ficará salva, se você deseja deixar esta opção como padrão, você deverá ir no menu Banco de Dados ->Editar Banco de Dados->Avisos-> desmarque a opção  em Design de Dimensão

Não ignore erros de chaves duplicadas. Altere a propriedade keyDuplicate da configuração de erro de forma que não seja definda como IgnoreErro.”

 

 

 

 

 

Translate »