Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2003
User_Baja_2 User_Baja_2 is offline
Miembro
 
Registrado: may 2003
Posts: 126
Poder: 21
User_Baja_2 Va por buen camino
cambiar una clave primaria

Me gustaria saber si se puede cambiar la clave primaria, en ejecucción, por SQL, si utilizo paradox, y delphi 5 enterprise.

(Cambiar los campos, nombres.. o añadir nuevos campos a la clave... etc)
Responder Con Cita
  #2  
Antiguo 06-10-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aquí tienes un ejemplo de como quitar la clave primaria.

Código:
DROP INDEX "employee.db".PRIMARY

Añadir campos:
Código:
  AlterQry.SQL.Clear;
  AlterQry.SQL.Add('ALTER TABLE "MyTable" ADD ADateField DATE, ');
  AlterQry.SQL.Add('ADD ATimeField TIME, ');
  AlterQry.SQL.Add('ADD AnIntegerField INTEGER, ');
  AlterQry.SQL.Add('ADD AStringField CHAR(255) ');
  AlterQry.ExecSQL;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 06-10-2003 a las 15:30:32.
Responder Con Cita
  #3  
Antiguo 06-10-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No obstante, como según se indica en la información de Paradox, no se puede crear una clave primaria, para una tabla que ya existe:

Cita:
CREATE INDEX NAMEX ON "employee.dbf" (LAST_NAME)

Paradox table users can create only secondary indexes with CREATE INDEX. Primary Paradox indexes can be created only by specifying a PRIMARY KEY constraint when creating a new table with CREATE TABLE.
Propongo la siguiente solución:

1º.- Crear una nueva tabla idéntica a la anterior, pero con la clave primaria sobre el campo deseado.


Código:
Add('CREATE TABLE "PDoxTbl.db" (ID AUTOINC,');
 Add('Name CHAR(255),');
 Add('PRIMARY KEY(ID))');

Finalmente pasar todos los registros de la Tabla A a la Tabla B.

Borramos Tabla A, renombramos Tabla B como tabla B.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 06-10-2003 a las 15:42:47.
Responder Con Cita
  #4  
Antiguo 06-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por nuppy
Me gustaria saber si se puede cambiar la clave primaria, en ejecucción, por SQL, si utilizo paradox, y delphi 5 enterprise.
¿Alguna razón en particular para usar SQL?

De lo contrario puedes usar los métodos DeleteIndex y AddIndex de TTable.

// Saludos
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 08:02:46.


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