Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   ayuda con b.d. (https://www.clubdelphi.com/foros/showthread.php?t=9292)

jovehe 20-04-2004 01:55:45

ayuda con b.d.
 
como estan todos
espero que bien
escribo para ver si me podrian ayudar lo que pasa es que en esto de la programacion soy un tanto inexperto el problema es este yo necesito obtener los datos de una tabla para insertarlos en otra pero validando un rango de numeros por ejemplo digamos que quiero copiar solo unos cuantos registros validando por el numero de cd dando un numero de cd inicial y numero de cd final y que a partir de ese rango me copie los datos.
espero mi pregunta sea clara y ojala me puedan ayudar gracias por su atencion.
:D

roman 20-04-2004 02:11:55

No sabiendo qué tipo de base de datos usas ni la estructura de tus tablas es difícil dar una respuesta acertada pero podrías intentar algo así:

Utiliza un TQuery para hacer una consulta SQL que te devuelva sólo los registros deseados:

Código SQL [-]
select * from discos where numero_cd >= :primero and numero_cd <= ultimo

Esoy suponiendo que tu tabla se llam "discos" y que "numero_cd" es el nombre del campo que tiene el número de cd.

En esta consulta, prmero y ultimo serán parámetros (indicado por los dos puntos ":" anteriores). Cada vez que quieras copiar los registros estableces el rango llenando los parámetros:

Código Delphi [-]
Query.ParamByName('primero').AsInteger := primer número
Query.ParamByName('ultimo').AsInteger := último número
 
Query.Open;

Con esto, en Query tendrás todos los registros cuyo número de cd va del primero al último.

Para copiarlos a la otra tabla sólo tienes que recorrer el query con un ciclo:

Código Delphi [-]
Query.First;
while not Query.Eof do
begin
  Tabla.Append;
  Tabla.FieldByName('numero_cd').AsInteger := Query.FieldByName('numero_cd').AsInteger;
 
  // aquí copias otros campos
 
  Query.Next;
end;

// Saludos

jovehe 20-04-2004 17:18:06

que tal gracias por tu respuesta tan rapida.

efectivamente olvide poner que el tipo de tablas son paradox y una molestia mas si es que se puede ;los parametros de primero y ultimo como los podria comparar con un edit ya que en la aplicacion lo que se tiene que escribir es el numero de cd inicial y numero de cd final dentro de dos edit respectivamente.

y despues solo el boton para que me copie los registros.

gracias
jorge

roman 20-04-2004 17:27:08

No entiendo que quieres decir con comparar. Para llenar los parámetros a partir de los valores de un Edit tienes primero que convertir a entero:

Query.ParamByName('primero').AsInteger := StrToInt(Edit1.Text);

o bien usar AsString en lugar de AsInteger para que sea el Query quien haga la conversión:

Query.ParamByName('primero').AsString := Edit1.Text;

// Saludos

jovehe 29-04-2004 02:23:02

gracias
 
roman muchas gracias por la ayuda y la respuesta tan rapida que le diste a mi problema espero mas adelante poder aportar algo para el club.

att
jorge


La franja horaria es GMT +2. Ahora son las 01:13:54.

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