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().BeginTransaction(); >> >>> >> >> 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(Int32 >> >>> >> >>>>> 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
