Si Fabio, eso es lo que no entiendo.
Puede ser una referencia que haya desde alguna otra tabla que yo no veo?

Yo tengo acceso a un subset de la base de datos que son las tablas que se relacionan con mi aplicacion.

Fabio Maulo escribió:
En tu maquina ese index no está y en el servidor remoto está ?

El 18 de enero de 2010 17:10, Raul Lopez <[email protected] <mailto:[email protected]>> escribió:

    Gracias Gustavo, es lo del arbol y el bosque ...
    De todos modos hay algo que no entiendo. El script me lo enviaron a
    peticion mia y habria sido generado por el administrador del
    sqlserver (2000) a partir de la base de datos.

    Alguna idea?

    Saludos,
    Raul.


    Gustavo Ringel escribió:

        Raul, en la excepcion dice que el problema es con el indice
        unico IX_Clientes

        Ese indice unico no esta en los scripts que tu decis que crean
        la base. O sea que tenes que fijarte que indice unico crearon y
        agregarle el ID quizas :).

        Gustavo.

        2010/1/18 Raul Lopez <[email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>>


           Hola, estoy interactuando con una base de datos que tiene algunas
           tablas que ya estaban creadas (son utilizadas por otras
           aplicaciones ya existentes en la empresa sin ORM).

           En una de esas tablas, al insertar un registro,
           me permite hacerlo en la primera oportunidad (tabla vacia), pero
           al intentar insertar un segundo registro genera el siguiente
        error:

           NHibernate.Exceptions.GenericADOException: could not insert:
           [RecursosHumanos.Domain.Cliente][SQL: INSERT INTO
           NombreDeLaEmpresa.dbo.Clientes (Codigo, Ejecutable, Tipo, RUC,
           Nombre, Domicilio, Mail, Contacto, Telefono, Fax) VALUES (?,
        ?, ?,
           ?, ?, ?, ?, ?, ?, ?); select SCOPE_IDENTITY()] --->
           System.Data.SqlClient.SqlException: Cannot insert duplicate key
           row in object 'Clientes' with unique index 'IX_Clientes'.
           The statement has been terminated.
            en System.Data.SqlClient.SqlConnection.OnError(SqlException
           exception, Boolean breakConnection)
            en
           System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
           exception, Boolean breakConnection)
            en
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
           stateObj)
            en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
           SqlCommand cmdHandler, SqlDataReader dataStream,
           BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
           stateObj)
            en System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
            en System.Data.SqlClient.SqlDataReader.get_MetaData()
            en
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader
           ds, RunBehavior runBehavior, String resetOptionsString)
            en
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
           cmdBehavior, RunBehavior runBehavior, Boolean returnStream,
           Boolean async)
            en
           System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
           cmdBehavior, RunBehavior runBehavior, Boolean returnStream,
        String
           method, DbAsyncResult result)
            en
           System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
           cmdBehavior, RunBehavior runBehavior, Boolean returnStream,
        String
           method)
            en
        System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
           behavior, String method)
            en
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior
           behavior)
            en
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
            en
        NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
            en
NHibernate.Id.IdentityGenerator.InsertSelectDelegate.ExecuteAndExtract(IDbCommand
           insert, ISessionImplementor session)
            en
NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo
           insertSQL, ISessionImplementor session, IBinder binder)
            --- Fin del seguimiento de la pila de la excepción interna ---


           El script con el que generaron la tabla es:

           SET ANSI_NULLS ON
           GO

           SET QUOTED_IDENTIFIER ON
           GO

           CREATE TABLE [dbo].[Clientes](
                  [IdCuenta] [int] IDENTITY(1,1) NOT NULL,
                  [Codigo] [nvarchar](50) NOT NULL,
                  [Ejecutable] [bit] NOT NULL,
                  [Tipo] [int] NOT NULL,
                  [RUC] [nvarchar](50) NULL,
                  [Nombre] [nvarchar](50) NOT NULL,
                  [Domicilio] [nvarchar](50) NULL,
                  [Mail] [nvarchar](50) NULL,
                  [Contacto] [nvarchar](50) NULL,
                  [Telefono] [nvarchar](50) NULL,
                  [Fax] [nvarchar](50) NULL,
                  [ActualizadoTS] [timestamp] NULL,
            CONSTRAINT [PK_Clientes] PRIMARY KEY CLUSTERED
           (
                  [IdCuenta] ASC
           )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF,
           IGNORE_DUP_KEY =
           OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR =
           90) ON
           [PRIMARY]
           ) ON [PRIMARY]

           GO

           ALTER TABLE [dbo].[Clientes] ADD  CONSTRAINT
        [DF_Clientes_Ejecutable]
           DEFAULT (1) FOR [Ejecutable]
           GO

           ALTER TABLE [dbo].[Clientes] ADD  CONSTRAINT [DF_Clientes_Tipo]
            DEFAULT (0)
           FOR [Tipo]
           GO



           El mapping que yo estoy usando:

           <?xml version="1.0" encoding="utf-8" ?>
           <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
           assembly="RecursosHumanos.Domain"
        namespace="RecursosHumanos.Domain">
                  <class name="Cliente" table="Clientes">

                          <id name="IdCuenta" column="IdCuenta" type="Int32"
           unsaved-value="0">
                                  <generator class="identity"/>
                          </id>
                          <property column="Codigo" type="String"
           name="Codigo" not-null="true" length="50" />
                          <property column="Ejecutable" type="Boolean"
           name="Ejecutable" not-null="true" />
                          <property column="Tipo" type="Int32" name="Tipo"
           not-null="true" />
                          <property column="RUC" type="String" name="Ruc"
           length="50" />
                          <property column="Nombre" type="String"
           name="Nombre" not-null="true" length="50" />
                          <property column="Domicilio" type="String"
           name="Domicilio" length="50" />
                          <property column="Mail" type="String" name="Mail"
           length="50" />
                          <property column="Contacto" type="String"
           name="Contacto" length="50" />
                          <property column="Telefono" type="String"
           name="Telefono" length="50" />
                          <property column="Fax" type="String" name="Fax"
           length="50" />             </class>
           </hibernate-mapping>


           Esto sucede en el servidor remoto, ya que en mi maquina anda
        bien.

           Desde ya agradezco cualquier aporte.

           Saludos,
           Raul.

           --
           Para escribir al Grupo, hágalo a esta dirección:
           [email protected]
        <mailto:[email protected]>
           <mailto:[email protected]
        <mailto:[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]
    <mailto:[email protected]>
    Para más, visite: http://groups.google.com/group/NHibernate-Hispano




--
Fabio Maulo

-- 
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