Mmmm.. no se si nh tiene alguna forma de cambiar solo ese
comportamiento, habría que investigar o esperar a alguien que sepa.

Si no lo hubiese, lo que seguramente puedas hacer es decirle a nh que
utilice un componente que desarrolles vos para este fin, el cual
podrías empezarlo copiando el de nh, la pregunta sería ¿que criterio
vas a utilizar para verificar si una operación fue exitosa? ¿hacer un
select post insert, update o delete?

Si vas  por este camino, te recomiendo que lo desarrolles en un
componente/dll aparte y le configures a nh que lo utilice, no cambies
el código en el proyecto de nh, sino luego te va a complicar las
actualizaciones.

De todas formas, antes de esto esperá a ver si alguien que sabe dice otra cosa.

saludos.
nelo.

2011/5/24 Wallas <[email protected]>:
>
> Hola Nuevamente. Por fin encontramos el problema del porqué no nos
> estaba permitiendo guardar los registros en la BD. Hicimos lo que aqui
> me sugirieron, como por ejemplo comparar esquemas , cambiar la cadena
> de conexion de Produccion a desarrollo, Verificar HBM's, Verificar
> versiones de BD etc.
> Cuando se hizo el cambio de la Cadena de Conexion de Producción a
> desarrollo, Guaaaalá.. Funcionó la aplicación. Entonces la gente de IT
> inició con el proceso de verificar que configuración estaba impidiendo
> el acceso a la BD para efectos de Inserción y actualización de
> registros. Estando en ello, encontraron que en Producción el Parametro
> NO COUNT definido sobre la Instancia,  estaba Habilitado y en
> Desarrollo dicho parámetro se encuentra Deshabilitado. Pues en
> desarrollo lo habilitaron y efectivamente no se pudo modificar el
> registro.  Ahora el problema que se viene  es que la gente de IT  no
> va a Cambiar ese valor. Se esta pensando en la posibilidad de crear
> una nueva instancia, pero el problema es que la aplicación utiliza dos
> BD para realizar todos sus procesos, y una BD quedaria en la Nueva
> Instancia y la otra en la actual. Esto implicaría hacer bastantes
> cambios y modificaciones, cosa que no es muy agradable. Despues de
> todo este rollo, quiero preguntarles  cual creen ustedes que sea la
> mejor opción para salir sin contratiempos de este embrollo?  O si hay
> alguna forma de configurar a NHibernate para que trabaje sin problemas
> cuando el NO COUNT este activo??
>
> Bueno, no siendo más me despido agradeciendo nuevamente los aportes
> hechos hasta el momento y los nuevos aportes que me puedan ofrecer de
> aqui en adelante.
>
> Saludos a todos y Mil gracias.!!!!!
>
>
> On 23 mayo, 08:44, Nestor Rodriguez <[email protected]> wrote:
>> Te sugeriria que usaras el Schema
>> Validator<http://nhforge.org/blogs/nhibernate/archive/2008/11/22/nhibernate-sch...>con
>> tu base de datos que tiene problemas para que idientifiques si algo
>> puede estar faltando.
>>
>> 2011/5/23 Marcos Mellibovsky <[email protected]>
>>
>>
>>
>> > Hace poco me paso algo parecido y era porque alguien habia agregado un
>> > trigger en produccion que no funcionaba bien. Te sugeriria que uses alguna
>> > herramienta de comparacion de esquemas de las bases y ya que  esta te
>> > generas script de comparacion para poder ejecutarlo periodicamente.
>>
>> > Saludos
>>
>> > Ing. Marcos Mellibovsky
>> > ARSoft Consultoría Informática
>> > [email protected]
>> > 0351 155630801
>> > msn:[email protected]
>>
>> > 2011/5/21 Walter Molano <[email protected]>
>>
>> >> Hola nelo, Nuevamente gracias por tus aportes. Las preguntas que me haces
>> >> las debo resolver el lunes a  primera hora. La verdad el problema se
>> >> desencadeno ayer viernes y no pudimos hacerle un seguimiento detallado. 
>> >> Pero
>> >> el lunes debo darle alguna solucion a ese problema, espero poder contar 
>> >> con
>> >> la colaboracion de la gente de IT de esa empresa.. cualquier cosa te 
>> >> estare
>> >> comentando. Muchas Gracias y tendre muy encuenta tus sugerencias.
>>
>> >> Bye.
>>
>> >> El 21 de mayo de 2011 11:26, [email protected] <
>> >> [email protected]> escribió:
>>
>> >> También les podés pedir que te generen un script con la estructura de
>> >>> las tablas y crear vos una db con ese script.
>>
>> >>> ¿chequeaste que los archivos de configuración de nh sean iguales?
>> >>> ¿tenés la misma versión de base de datos en los distintos ambientes?
>> >>> ¿en producción tenés alguna diferencia como por ejemplo una granja de
>> >>> bases de datos?
>>
>> >>> saludos.
>> >>> nelo
>>
>> >>> 2011/5/21 Walter Molano <[email protected]>:
>> >>>  > Hola, Gracias por responder a mi correo, Te comento que los metodos
>> >>> que
>> >>> > consultan la informacion y que renderizan los datos en Grillas por
>> >>> ejemplo,
>> >>> > Funconan perfectamente. El inconveniente ocurre cuando modifico un
>> >>> registro
>> >>> > y lo intento guardar en la BD. De  hecho, el metodo
>> >>> > LoadById(id) funciona perfectamente, ese metodo es capaz de recuperer
>> >>> el
>> >>> > registro desde la BD y cargar el objeto. Despues de cargarlo y
>> >>> modificar
>> >>> > algunas de las propiedades y quererlo persistir nuevamente en la BD, es
>> >>> > cuando ocurre el error.  La verdad ese error me tiene desconsertado y
>> >>> me
>> >>> > siento Impotente, ya que la aplicación es para una empresa Super
>> >>> Importante
>> >>> > y el acceso a los servidores esta super restringido por politicas
>> >>> internas.
>> >>> > Es un problema para que le actualicen una dll o un aspx.
>> >>> > De todas formas muchas gracias por tu aporte, tataré de hacer lo que me
>> >>> > comentas para descartar el problema en la BD.
>> >>> > Estamos en contacto.
>> >>> > Bye
>>
>> >>> > El 21 de mayo de 2011 10:39, [email protected] <
>> >>> [email protected]>
>> >>> > escribió:
>>
>> >>> >> Walter, si podés apuntar por unos instantes la aplicación de
>> >>> >> producción a la base de datos de desarrollo, te diría que lo hagas y
>> >>> >> pruebes, si funciona de esta manera entonces tenés que buscar tu
>> >>> >> "problema" en la base de datos (o en la conexión a esta). ¿o ya lo
>> >>> >> probaste?
>>
>> >>> >> saludos.
>> >>> >> nelo
>>
>> >>> >> 2011/5/21 Nestor Rodriguez <[email protected]>:
>> >>> >> > antes de llamar este metodo la entidad entity que datos tiene, mas
>> >>> >> > precisamente que Id tiene ?
>> >>> >> > public bool Save(PlantillasExcelCargue entity)
>>
>> >>> >> > 2011/5/20 Walter Molano <[email protected]>
>>
>> >>> >> >> Hola, de antemano mucha gracias por responder a mi solicitud de
>> >>> ayuda.
>> >>> >> >> Como comente en el correo inicial, Es muy raro que la aplicaión
>> >>> >> >> funcione sin
>> >>> >> >> problemas en el ambiente de desarrollo.
>> >>> >> >> El error ocurre cuando intento guardar o actualizar un registro en
>> >>> la
>> >>> >> >> base
>> >>> >> >> de datos. La capa de persistencia la genero por medio de Visual
>> >>> >> >> Paradigm
>> >>> >> >> utilizando el mecanismo de generación del modelo de Objetos DAO.
>> >>> Lo
>> >>> >> >> que
>> >>> >> >> hago es utilizar las clases que genera esta herramienta para hacer
>> >>> >> >> persistir
>> >>> >> >> los objetos en la BD, Por ejemplo para el caso de la entidad
>> >>> Empleado,
>> >>> >> >> la
>> >>> >> >> herramienta me genera una clase DAO, llamada EmpleadoDao, y es a
>> >>> trevez
>> >>> >> >> de
>> >>> >> >> esta clase que se manipulan los registros, bien sea para
>> >>> eliminarlos,
>> >>> >> >> actualozarlos o insertarlos. Los metodos serían entonces
>> >>> >> >> EmpleadosDao.Save(objEmpleado);
>> >>> >> >> EmpleadosDao.Delete(objEmpleado);
>>
>> >>> >> >>  Adjunto un fragmento de código para una de las clases y el
>> >>> .hbn.xml
>> >>> >> >> asociado a ver si depronto se amplia el panorama.
>>
>> >>> >> >> Nuevamente Muchas gracias por su amable colaboración.
>>
>> >>> >> >>  public bool Save(PlantillasExcelCargue entity)
>> >>> >> >> {
>>
>> >>> >> >>            var beginTransaction =
>>
>> >>> PlanificacionFinanzasOrmPersistentManager.Instance().GetSession().BeginTran­saction();
>> >>> >> >>             try
>> >>> >> >>             {
>> >>> >> >>                 var isSaved =
>> >>> PlantillasExcelCargueDAO.Save(entity);
>> >>> >> >>                 beginTransaction.Commit();  // Cuando llega aqui se
>> >>> >> >> produce la escepcion... !!!!!!
>> >>> >> >>                 return isSaved;
>> >>> >> >>             }
>> >>> >> >>             catch (Exception ex)
>> >>> >> >>             {
>> >>> >> >>                 Log.Error(" Clase: [PlantillasExcelCargueDaos] ---
>> >>> >> >> Metodo:
>> >>> >> >> [Save] --- Error: ", ex);
>> >>> >> >>                 beginTransaction.RollBack();
>> >>> >> >>             }
>> >>> >> >>             return false;
>> >>> >> >> }
>>
>> >>> >> >> ///////////////////////////////
>>
>> >>> >> >>  <?xml version="1.0" encoding="utf-8" ?>
>> >>> >> >> <!--
>> >>> >> >> Licensee: DuKe TeAm
>> >>> >> >> License Type: Purchased
>> >>> >> >> -->
>> >>> >> >> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
>> >>> >> >>  <class name="Planificacion.PlantillasExcelCargue,
>> >>> >> >> PlanificacionFinanzas.Orm" tablePlantillasExcelCargue" schema="dbo"
>> >>> >> >> lazy="false">
>> >>> >> >>   <id name="IdPlantilla" column="IdPlantilla" type="Int32"
>> >>> >> >> unsaved-value="0">
>> >>> >> >>    <generator class="identity">
>> >>> >> >>    </generator>
>> >>> >> >>   </id>
>> >>> >> >>   <property name="IdPais" type="Int32" not-null="true"/>
>> >>> >> >>   <property name="NombrePais" type="String" length="100"
>> >>> >> >> not-null="false"/>
>> >>> >> >>   <property name="Plantilla" type="BinaryBlob" not-null="true"/>
>> >>> >> >>   <property name="NombrePlantilla" type="String" length="50"
>> >>> >> >> not-null="true"/>
>> >>> >> >>   <property name="Vigente" type="Boolean" not-null="true"/>
>> >>> >> >>   <property name="Tipo" type="String" length="20" not-null="true"/>
>> >>> >> >>   <property name="FechaCreacion" type="Timestamp"
>> >>> not-null="false"/>
>> >>> >> >>   <property name="FechaActualizacion" type="Timestamp"
>> >>> >> >> not-null="false"/>
>> >>> >> >>   <property name="UsuarioCreacion" type="String" length="20"
>> >>> >> >> not-null="false"/>
>> >>> >> >>   <property name="UsuarioActualizacion" type="String" length="20"
>> >>> >> >> not-null="false"/>
>> >>> >> >>  </class>
>> >>> >> >> </hibernate-mapping>
>>
>> >>> >> >> El 20 de mayo de 2011 20:20, Nestor Rodriguez <[email protected]
>>
>> >>> >> >> escribió:
>>
>> >>> >> >>> Unexpected row count: -1 ?? usualmente este error sale con  un
>> >>> >> >>> rowcount:0
>> >>> >> >>> pero no negativo.
>> >>> >> >>> 2011/5/20 José F. Romaniello <[email protected]>
>>
>> >>> >> >>>> Es como si al querer actualizar o eliminar un registro con
>> >>> >> >>>> determinado
>> >>> >> >>>> ID ya no existiera en la base de datos.
>> >>> >> >>>> Mostra un poco más de código, mappings etc..es muy difícil ayudar
>> >>> >> >>>> así.
>>
>> >>> >> >>>> El 20 de mayo de 2011 18:57, Wallas <[email protected]> escribió:
>>
>> >>> >> >>>>> Hola Grupo, Necesito pedirles un favor especial y es el
>> >>> relacionado
>> >>> >> >>>>> con un error con NHIBERNATE. Lo mas curioso de todo esto es que
>> >>> en
>> >>> >> >>>>> el
>> >>> >> >>>>> servidor de desarrollo y en otras máquinas todo funciona a la
>> >>> >> >>>>> perfeccion, pero en producción esta arrojando el siguiente
>> >>> error:
>>
>> >>> >> >>>>> ERROR NHibernate.Impl.SessionImpl [(null)] <(null)> - could not
>> >>> >> >>>>> synchronize database state with session
>> >>> >> >>>>> NHibernate.StaleStateException: Unexpected row count: -1;
>> >>> expected:
>> >>> >> >>>>> 1   at
>>
>> >>> NHibernate.AdoNet.Expectations.BasicExpectation.VerifyOutcomeNonBatched(Int­32
>> >>> >> >>>>> rowCount, IDbCommand statement)   at
>> >>> >> >>>>> NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation
>> >>> >> >>>>> expectation)
>> >>> >> >>>>>   at
>>
>> >>> NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object
>> >>> >> >>>>> id,
>> >>> >> >>>>> Object[] fields, Object[] oldFields, Boolean[] includeProperty,
>> >>> >> >>>>> Int32
>> >>> >> >>>>> j, Object oldVersion, Object obj, SqlCommandInfo sql,
>> >>> >> >>>>> ISessionImplementor session)
>> >>> >> >>>>>   at
>>
>> >>> NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object
>> >>> >> >>>>> id,
>> >>> >> >>>>> Object[] fields, Int32[] dirtyFields, Boolean
>> >>> hasDirtyCollection,
>> >>> >> >>>>> Object[] oldFields, Object oldVersion, Object obj,
>> >>> >> >>>>> ISessionImplementor
>> >>> >> >>>>> session)
>> >>> >> >>>>>   at NHibernate.Impl.ScheduledUpdate.Execute()   at
>> >>> >> >>>>> NHibernate.Impl.SessionImpl.Execute(IExecutable executable)   at
>> >>> >> >>>>> NHibernate.Impl.SessionImpl.ExecuteAll(IList list)   at
>> >>> >> >>>>> NHibernate.Impl.SessionImpl.Execute()
>>
>> >>> >> >>>>> SI ALGUNO DE USTEDES ME PUDIERA HECHAR UNA MANO, LES ESTARÍA
>> >>> SUPER
>> >>> >> >>>>> AGRADECIDO.
>>
>> >>> >> >>>>> --
>> >>> >> >>>>> Para escribir al Grupo,
>>
>> ...
>>
>> leer más »- Ocultar texto de la cita -
>>
>> - Mostrar texto de la cita -
>
> --
> 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

Responder a