Ver Mensaje Individual
  #1  
Antiguo 15-05-2011
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 571
Reputación: 19
jhonalone Va por buen camino
Error al activar Indice Secundario

Hola a todos. De nuevo solicito vuestra ayuda, las bases de datos no son mi fuerte, ya os habréis dado cuenta.

La cuestión es la siguiente:
Estoy usando D7 y bases Paradox en un sistema Master/Detail.
En la base Detalle, necesito instalar un índice específico para un campo ftDate. (Lo llamo "FechCitaActo")

Tanto si dejo activado el índice ("Fe"), asignando su nombre a la propiedad "IndexName" en el Object Inspector, como si lo activo por código, se produce el mismo error al abrir la base Detalle ("Actos.DB") o al insertar un registro en la base Maestro ("Clien.DB"), aunque no haya ningún registro en la base Detalle.
Copio el texto del error en inglés: "Could not convert variant of type (String) into type (Date)"

No me deja crear la base, si está activado el índice "Fe".

Aunque sea un poco pesado, transcribo parte del fichero .dfm, por si alguno tenéis un ratito par echarle un vistazo y encontráis el error que yo soy incapaz. (LLEVO 4 DÍAS COMPLETOS, BUSCANDO EN EL CLUB Y HACIENDO PRUEBAS)

GRACIAS ANTICIPADAS.

Código Delphi [-]
  object ClienDB: TTable
    DatabaseName = '\'
    SessionName = 'Default'
    FieldDefs = <
      item
        Name = 'His'
        Attributes = [faRequired]
        DataType = ftString
        Size = 7
      end
      item
        Name = 'NIF'
        Attributes = [faRequired]
        DataType = ftString
        Size = 12
      end
      item
        Name = 'Nom'
        Attributes = [faRequired]
        DataType = ftString
        Size = 50
      end
      item
        Name = 'AutoNum'
        Attributes = [faReadonly]
        DataType = ftAutoInc
      end
      item
        Name = 'Compa1'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Compa2'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Compa3'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Compa4'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Poliza1'
        DataType = ftString
        Size = 25
      end
      item
        Name = 'Poliza2'
        DataType = ftString
        Size = 25
      end
      item
        Name = 'Poliza3'
        DataType = ftString
        Size = 25
      end
      item
        Name = 'Poliza4'
        DataType = ftString
        Size = 25
      end
      item
        Name = 'Tel1'
        DataType = ftString
        Size = 12
      end
      item
        Name = 'Tel2'
        DataType = ftString
        Size = 12
      end
      item
        Name = 'Mail'
        DataType = ftString
        Size = 50
      end
      item
        Name = 'Dir'
        DataType = ftString
        Size = 50
      end
      item
        Name = 'CP'
        DataType = ftString
        Size = 5
      end
      item
        Name = 'Pob'
        DataType = ftString
        Size = 40
      end
      item
        Name = 'Prv'
        DataType = ftString
        Size = 30
      end
      item
        Name = 'FNac'
        DataType = ftString
        Size = 10
      end
      item
        Name = 'LoManda'
        DataType = ftString
        Size = 40
      end
      item
        Name = 'TotSesio'
        DataType = ftSmallint
      end
      item
        Name = 'PendSesio'
        DataType = ftSmallint
      end
      item
        Name = 'FaltasSesio'
        DataType = ftSmallint
      end
      item
        Name = 'TotConsul'
        DataType = ftSmallint
      end
      item
        Name = 'PendConsul'
        DataType = ftSmallint
      end
      item
        Name = 'FaltasConsul'
        DataType = ftSmallint
      end
      item
        Name = 'TotPagado'
        DataType = ftCurrency
      end
      item
        Name = 'TotDeuda'
        DataType = ftCurrency
      end
      item
        Name = 'FaltaSeguidasCon'
        DataType = ftSmallint
      end
      item
        Name = 'FaltaSeguidasSes'
        DataType = ftSmallint
      end>
    IndexDefs = <
      item
        Name = 'ClienDBIndex1'
        Fields = 'His;NIF;Nom'
        Options = [ixPrimary, ixUnique]
      end
      item
        Name = 'Ni'
        Fields = 'NIF'
        Options = [ixCaseInsensitive]
      end
      item
        Name = 'Hi'
        Fields = 'His'
        Options = [ixCaseInsensitive]
      end
      item
        Name = 'No'
        Fields = 'Nom'
        Options = [ixCaseInsensitive]
      end>
    IndexName = 'No'
    StoreDefs = True
    TableName = 'Clien.DB'
    Left = 108
    Top = 30
    object ClienDBHis: TStringField
      FieldName = 'His'
      Required = True
      Size = 7
    end
    object ClienDBNIF: TStringField
      FieldName = 'NIF'
      Required = True
      Size = 12
    end
    object ClienDBNom: TStringField
      FieldName = 'Nom'
      Required = True
      Size = 50
    end
    object ClienDBAutoNum: TAutoIncField
      FieldName = 'AutoNum'
      ReadOnly = True
    end
    object ClienDBCompa1: TStringField
      FieldName = 'Compa1'
      Size = 15
    end
    object ClienDBCompa2: TStringField
      FieldName = 'Compa2'
      Size = 15
    end
    object ClienDBCompa3: TStringField
      FieldName = 'Compa3'
      Size = 15
    end
    object ClienDBCompa4: TStringField
      FieldName = 'Compa4'
      Size = 15
    end
    object ClienDBPoliza1: TStringField
      FieldName = 'Poliza1'
      Size = 25
    end
    object ClienDBPoliza2: TStringField
      FieldName = 'Poliza2'
      Size = 25
    end
    object ClienDBPoliza3: TStringField
      FieldName = 'Poliza3'
      Size = 25
    end
    object ClienDBPoliza4: TStringField
      FieldName = 'Poliza4'
      Size = 25
    end
    object ClienDBTel1: TStringField
      FieldName = 'Tel1'
      Size = 12
    end
    object ClienDBTel2: TStringField
      FieldName = 'Tel2'
      Size = 12
    end
    object ClienDBMail: TStringField
      FieldName = 'Mail'
      Size = 50
    end
    object ClienDBDir: TStringField
      FieldName = 'Dir'
      Size = 50
    end
    object ClienDBCP: TStringField
      FieldName = 'CP'
      Size = 5
    end
    object ClienDBPob: TStringField
      FieldName = 'Pob'
      Size = 40
    end
    object ClienDBPrv: TStringField
      FieldName = 'Prv'
      Size = 30
    end
    object ClienDBFNac: TStringField
      FieldName = 'FNac'
      Required = True
      Size = 10
    end
    object ClienDBLoManda: TStringField
      FieldName = 'LoManda'
      Size = 40
    end
    object ClienDBTotSesio: TSmallintField
      FieldName = 'TotSesio'
    end
    object ClienDBPendSesio: TSmallintField
      FieldName = 'PendSesio'
    end
    object ClienDBFaltasSesio: TSmallintField
      FieldName = 'FaltasSesio'
    end
    object ClienDBTotConsul: TSmallintField
      FieldName = 'TotConsul'
    end
    object ClienDBPendConsul: TSmallintField
      FieldName = 'PendConsul'
    end
    object ClienDBFaltasConsul: TSmallintField
      FieldName = 'FaltasConsul'
    end
    object ClienDBTotPagado: TCurrencyField
      FieldName = 'TotPagado'
    end
    object ClienDBTotDeuda: TCurrencyField
      FieldName = 'TotDeuda'
    end
    object ClienDBFaltaSeguidasCon: TSmallintField
      FieldName = 'FaltaSeguidasCon'
    end
    object ClienDBFaltaSeguidasSes: TSmallintField
      FieldName = 'FaltaSeguidasSes'
    end
  end
  object ActosSource: TDataSource
    DataSet = ActosDB
    Left = 200
    Top = 30
  end
  object ActosDB: TTable
    OnCalcFields = ActosDBCalcFields
    AutoRefresh = True
    DatabaseName = '\'
    SessionName = 'Default'
    FieldDefs = <
      item
        Name = 'His'
        Attributes = [faRequired]
        DataType = ftString
        Size = 7
      end
      item
        Name = 'FechCitaActo'                    // aqui
        DataType = ftDate
      end
      item
        Name = 'Espe'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Compa'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'Profe'
        DataType = ftString
        Size = 15
      end
      item
        Name = 'NumOrden'
        Attributes = [faReadonly]
        DataType = ftAutoInc
      end
      item
        Name = 'CitConSes'
        DataType = ftString
        Size = 3
      end
      item
        Name = 'HoraCitaActo'
        DataType = ftString
        Size = 5
      end
      item
        Name = 'SiPaga'
        DataType = ftString
        Size = 1
      end
      item
        Name = 'SiAsiste'
        DataType = ftString
        Size = 1
      end
      item
        Name = 'Obs'
        DataType = ftString
        Size = 70
      end
      item
        Name = 'EurPaga'
        DataType = ftCurrency
      end
      item
        Name = 'EurProfe'
        DataType = ftCurrency
      end
      item
        Name = 'Poliza'
        DataType = ftString
        Size = 25
      end>
    IndexDefs = <
      item
        Name = 'ActosDBIndex1'
        Fields = 'His;FechCitaActo;Espe;Compa;Profe;NumOrden'
        Options = [ixPrimary]
      end
      item
        Name = 'Fe'
        Fields = 'FechCitaActo'                          // Aquí
        Options = [ixCaseInsensitive]
      end>
    MasterFields = 'His'
    MasterSource = ClienSource
    StoreDefs = True
    TableName = 'Actos.DB'
    Left = 172
    Top = 30
    object ActosDBHis: TStringField
      FieldName = 'His'
      Required = True
      Size = 7
    end
    object ActosDBFechCitaActo: TDateField                   // Aquí
      FieldName = 'FechCitaActo'
      Required = True
    end
    object ActosDBHoraCitaActo: TStringField
      FieldName = 'HoraCitaActo'
      Required = True
      Size = 5
    end
    object ActosDBProfe: TStringField
      FieldName = 'Profe'
      Size = 15
    end
    object ActosDBCompa: TStringField
      FieldName = 'Compa'
      Size = 15
    end
    object ActosDBEspe: TStringField
      FieldName = 'Espe'
      Size = 15
    end
    object ActosDBCitConSes: TStringField
      FieldName = 'CitConSes'
      Size = 3
    end
    object ActosDBSiPaga: TStringField
      FieldName = 'SiPaga'
      Required = True
      Size = 1
    end
    object ActosDBSiAsiste: TStringField
      FieldName = 'SiAsiste'
      Required = True
      Size = 1
    end
    object ActosDBObs: TStringField
      FieldName = 'Obs'
      Required = True
      Size = 85
    end
    object ActosDBEurPaga: TCurrencyField
      FieldName = 'EurPaga'
    end
    object ActosDBEurProfe: TCurrencyField
      FieldName = 'EurProfe'
    end
    object ActosDBCliente: TStringField
      FieldKind = fkCalculated
      FieldName = 'Cliente'
      Size = 50
      Calculated = True
    end
    object ActosDBPoliza: TStringField
      FieldName = 'Poliza'
      Size = 25
    end
    object ActosDBNumOrden: TAutoIncField
      FieldName = 'NumOrden'
      ReadOnly = True
    end
  end
  object ClienSource: TDataSource
    DataSet = ClienDB
    Left = 138
    Top = 30
  end
  object Database1: TDatabase
    SessionName = 'Default'
    Left = 276
    Top = 42
  end
end
Responder Con Cita