Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
MS Access: query para crear tabla igual que otra

Hola , mi caso es el siguiente: tengo una base de datos en access con unas tablas con datos, todas ellas con la misma estructura porque cada tabla está asociada a una instancia de una clase de mi aplicación, tengo x instancias u objetos luego tengo x tablas.

Hasta el momento había creado esas tablas yo personalmente con copiar y pegar pero ahora quería automatizar el proceso, cuando cree un nuevo objeto que se me cree una nueva tabla para ese objeto. Tengo una tabla plantilla que no tiene datos, pero me da igual crear la nueva tabla a partir de la plantilla o crear la nueva tabla copiandola de otra con datos y luego vaciarla.

El caso es que acabo de dar con la query que me permita hacer eso, no se si es un CREATE TABLE con algo más o que.

¿Alguien me puede echar una mano? Gracias de antemano
Responder Con Cita
  #2  
Antiguo 07-11-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
Después de haber buscado ayer por la tarde y hoy se ha cumplido la ley de Murphy q dice que cuando no encuentras algo después de intentarlo un rato largo postealo en un foro, justo después lo encontrarás tu solito por tus propios medios...

Hay mucha gente q pregunta algo en un foro y si después encuentra la solución no pone la respuesta...Como a mi no me gusta eso y para recibir ayudar hay q darla os pongo la solución PARCIAL que encontré. Repito es parcial, no encontré una sentencia SQL que me sirviera para access en mi propósito, lo que hice es lo siguiente:

Código:
Procedure TFNGC3.CrearTablaDatos(nombreTabla:string);
var
   sql:string;
begin
   sql:='CREATE TABLE '+nombreTabla+' AS(SELECT * FROM PlantillaDatos)';
   sql:='SELECT * INTO '+nombreTabla+' FROM PlantillaDatos';
   AComm1.CommandText := sql;
   AComm1.Execute();
   sql:='ALTER TABLE '+nombreTabla+' ADD CONSTRAINT PK_'+nombreTabla+' PRIMARY KEY (NOperacion)';
   AComm1.CommandText := sql;
   AComm1.Execute();
end;
Con el SELECT INTO copio la tabla origen (estructura + datos) en destino. No me hace falta vaciarla porque es una tabla vacía. Lo que pasa q las claves no me las copia así que acto seguido tengo q ponerlas yo con un ALTER TABLE.

Un saludo
Responder Con Cita
  #3  
Antiguo 07-11-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Poder: 18
fonx Va por buen camino
A ver, q soy un poco torpe, la siguiente instrucción sobra:

Código:
sql:='CREATE TABLE '+nombreTabla+' AS(SELECT * FROM PlantillaDatos)';
que se me pasó quitarla
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
crear tabla a partir de otra con sql JoseQ Conexión con bases de datos 4 12-01-2012 15:20:48
exportar a un script sql para luego restaurar a otra BD pero igual metadata pvizcay Firebird e Interbase 4 14-06-2007 02:43:45
Crear otra hoja en excel igual a la anterior Novás Servers 6 23-07-2006 02:49:48
Copiar registros de una tabla a otra en Access con Delphi Gelmin Conexión con bases de datos 1 01-07-2005 13:35:04
Crear tabla Access a partir de tabla FoxPro Tecnic2 Conexión con bases de datos 6 01-09-2004 14:37:43


La franja horaria es GMT +2. Ahora son las 20:48:01.


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