Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao gerar esquemas

public class NhibernateHelper { public static Configuration RecuperaConfiguracao() { Configuration cfg = new Configuration(); cfg.Configure(); cfg.AddAssembly(Assembly.GetExecutingAssembly());

return cfg; }

public static void GeraEsquemas() { Configuration cfg = RecuperaConfiguracao(); new SchemaExport(cfg).Create(true, true); } }

esta é a classe que gera esquemas.

Na linha new SchemaExport(cfg).Create(true, true);

dá um erro em execução:

"O sistema detectou um endereço de ponteiro inválido ao tentar usar um argumento de ponteiro em uma chamada"

4 respostas

Opa!

Deu erro em algum exercício específico que você está fazendo referente ao curso?

É no exercício 1. Configurando e Entendendo o NHibernate. Eu faço a configuração e quando eu executo a linha:

new SchemaExport(cfg).Create(true, true);

Dá uma exceção :

'NHibernate.HibernateException' occurred in NHibernate.dll

O sistema detectou um endereço de ponteiro inválido ao tentar usar um argumento de ponteiro em uma chamada

Se eu coloco

new SchemaExport(cfg).Create(true, false);

O código compila e mostra na tela, ou seja, é provável que o problema seja na comunicação com o banco de dados.

Cara, esse erro dá quando você executa o programa? Ele estoura nessa linha?

Coloque o código todo, por favor. O código que você usa pra rodar o programa.

solução!

Desculpe pela demora na resposta, mas consegui resolver.

O problema era na linhanew SchemaExport(cfg).Create(true,true);

que gerava o erro:

"O sistema detectou um endereço de ponteiro inválido ao tentar usar um argumento de ponteiro em uma chamada"

O código estava todo certo, tanto a parte de mapeamento no arquivo Usuario.hbm.xml e o hibernate.cfg.xml.

Então peguei um tutorial para conexão do banco de dados sem o hibernate, e dava o mesmo problema.

Encontrei a solução no link: http://stackoverflow.com/questions/19011876/net-mysql-connection-fail-the-system-detected-an-invalid-pointer-address-in

que é executando o comando: netsh winsock reset no CMD como administrador.