Veo varias cosas...
1. Estás abriendo una transacción, ¿para qué el if?
2. ¿Por qué un comando con ADO.NET directo y otro con ExecuteUpdate?
3. Usando updates HQL el batching no participa en forma alguna.
4. Ese error parece de SQL Server, ¿probaste ver el SQL y ejecutarlo
directamente?
Diego
2010/9/4 Argons <[email protected]>
> Gracias por la excelente ayuda Diego, como no hay opción entonces
> estoy realizando la operación con sql nativo, entonces lo primero q
> hago es setear IDENTIY_INSERT en ON para poder realizar la inserción;
> como son varios registros entonces estoy realizando un inserción en
> batch (<property name="adonet.batch_size">100</property>). Les coloco
> el código:
>
> using (ITransaction transaccion = Sesion.BeginTransaction())
> {
> IDbCommand comando = Sesion.Connection.CreateCommand();
> if (Sesion.Transaction != null &&
> Sesion.Transaction.IsActive)
> {
> Sesion.Transaction.Enlist(comando);
> }
>
> comando.CommandText = "SET IDENTITY_INSERT Modulo ON";
> comando.ExecuteNonQuery();
>
> IQuery queryModulo = Sesion.CreateSQLQuery
> ("INSERT INTO Modulo (IdModulo, Nombre)
> VALUES(:IdModulo, :Nombre);")
> .SetParameter("IdModulo", datos.IdModulo)
> .SetParameter("Nombre", datos.Nombre);
>
> queryModulo.ExecuteUpdate();
>
> comando.CommandText = "SET IDENTITY_INSERT Modulo OFF";
> comando.ExecuteNonQuery();
>
> //********** OTROS INSERTS
> .............
> .............
> }
>
> El problema es q no puedo ejecutar nada, me sale el error "could not
> execute native bulk manipulation query". Porq puede ocurrir el error?
> Hay alguna forma de corregirlo?
>
> Gracias de antemano por la ayuda.
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano