Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-12-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Question ¿Cómo definir un "primary key" en tiempo de ejecución?

Hola, al buscar un registro dentro de una tabla con

Código:
MiDataSet.Tables.Item['MiTabla'].Rows.Find( 'texto a buscar' );
resulta que me de un error al no tener definida una clave primaria. En ese caso, hago lo siguiente:

Código:
var
   PK         : Array Of DataColumn;

begin

   ...
   
   PK[0] := MiDataSet.Tables['MiTabla'].Columns['Columna'];
   MiDataSet.Tables['MiTabla'].PrimaryKey := PK;
   
   ...

end;
Pero la primera linea ya falla dando el error object reference not set to an instance of an object. ¿Alguien sabe dónde está el fallo?

Gracias.
Responder Con Cita
  #2  
Antiguo 21-12-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Question Solucion

Buenas, la solución era sencilla. No había que definir una variable sino un tipo:

Código:
Type
   PK = array of System.Data.DataColumn;

Begin

   ...

   MiDataSet.Tables['MiTabla'].PrimaryKey := PK.Create ( MiDataSet.Tables['MiTabla'].Columns['MiColumna'] );

   ...

End;
Sin embargo, al ejecutarse esta linea da el siguiente error:
These columns don't currently have unique values

Tenía entendido que este error se da cuando no hay una clave primaria definida en la base de datos, pero es que es eso precisamente lo que hace esta línea.

En la BD de Oracle tengo definido un campo como "primary key", aunque también he probado como "unique" y sin atributos "especiales". El error siempre es el mismo, ¿sabeis el motivo?

Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:27:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi