Copia como campos de una tabla a otra


Cómo duplicar los datos a través de tablas.

Desarrolladores de Delphi
Los Derechos De Autor De Pinnacle Publishing, Inc. Todos los derechos reservados.Copiar Como Campos de Una Tabla a Otra
Steve Zimmelman
En casi todas las aplicaciones que desarrollo, llega un momento en que tengo que copiar los campos de una tabla a otra. Carl Hewitt y yo escribimos una función llamada XferFields (ver Listado 1) para hacerlo fácil. XferFields es similar a la Dispersión y Reunir los comandos que se encuentra en FoxProÊwith la excepción de que no hay Memoria de Variables que intervienen, y la transferencia de información se realiza en los registros actuales que se encuentran en las tablas de Origen y Destino.
XferFields la transferencia de cualquier de los campos en el Origen de todos los campos del mismo Nombre y el Tipo de datos en la tabla de Destino, y devuelve un valor Booleano False sólo si todos los campos en la tabla de Destino no se actualiza. Cada vez que un campo de transferencia intento falla, una variable de tipo Entero se incrementa. Si el incremento de la cuenta es igual a la tabla de Destino del FieldCount, entonces se asume que no hay campos fueron transferidos y algo está mal. Usted puede entonces controlar la excepción de todos modos le parezca en su código.
Un uso simple para XferFields podría tener este aspecto:

Si XferFields(Tabla1,Tabla2), a Continuación,
& nbsp & nbsp & nbsp Tabla2.Puesto
Else Begin
& nbsp & nbsp & nbsp Tabla2.Cancelar
& nbsp & nbsp & nbsp ShowMessage('XferFields No!')
Fin
Listado 1. El XferFields función.
// **********************************************
// Función XferFields
// Versión: Delphi 2.0
// Escrito Por: Carl Hewitt & Steve Zimmelman
// transferencia de cualquier de los campos en el Origen de cualquier
// campos con el mismo Nombre y tipo en la
// Destino.
// Si la tabla de Destino se encuentra en Examinar el Estado,

// será colocado en Estado de Edición y regresó
// de la misma manera.
// **********************************************
Función XferFields(Origen, Destino :TDataSet) : Boolean
Var
& nbsp & nbsp & nbsp i : Integer
& nbsp & nbsp & nbsp nErr: Integer
& nbsp & nbsp & nbsp f1 : TField
& nbsp & nbsp & nbsp f2 : TField
Begin
& nbsp & nbsp & nbsp // nErr se utiliza para contar incorrecta
& nbsp & nbsp & nbsp // campo de transferencias
& nbsp & nbsp & nbsp nErr := 0
& nbsp & nbsp & nbsp // asegúrese de que la tabla de Destino se encuentra en
& nbsp & nbsp & nbsp // estado de Edición.
& nbsp & nbsp & nbsp Si (Dest.Estado = dsBrowse), a Continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Editar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp For i := 0 a (Dest.FieldCount -1) Do Begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f1 := Dest.FindField(
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Campos[i].FieldName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f2 := Fuente.FindField(
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Campos[i].FieldName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Si (f1 <> nil) and (f2 <> nil) A continuación, Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // transferir el valor del campo
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f1.valor := f2.valor
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // incrementa el número de error
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Inc(nErr)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp // Si (nErr = Dest.FieldCount), a continuación,
& nbsp & nbsp & nbsp // no hay campos fueron transferidos y
& nbsp & nbsp & nbsp // el Resultado será Falso.
& nbsp & nbsp & nbsp Resultado := (nErr < Dest.FieldCount)
Fin









Copia como campos de una tabla a otra


Copia como campos de una tabla a otra : Multi-millones de consejos para hacer su vida mas facil.


Como duplicar los datos a traves de tablas.

Desarrolladores de Delphi
Los Derechos De Autor De Pinnacle Publishing, Inc. Todos los derechos reservados.Copiar Como Campos de Una Tabla a Otra
Steve Zimmelman
En casi todas las aplicaciones que desarrollo, llega un momento en que tengo que copiar los campos de una tabla a otra. Carl Hewitt y yo escribimos una funcion llamada XferFields (ver Listado 1) para hacerlo facil. XferFields es similar a la Dispersion y Reunir los comandos que se encuentra en FoxProEwith la excepcion de que no hay Memoria de Variables que intervienen, y la transferencia de informacion se realiza en los registros actuales que se encuentran en las tablas de Origen y Destino.
XferFields la transferencia de cualquier de los campos en el Origen de todos los campos del mismo Nombre y el Tipo de datos en la tabla de Destino, y devuelve un valor Booleano False solo si todos los campos en la tabla de Destino no se actualiza. Cada vez que un campo de transferencia intento falla, una variable de tipo Entero se incrementa. Si el incremento de la cuenta es igual a la tabla de Destino del FieldCount, entonces se asume que no hay campos fueron transferidos y algo esta mal. Usted puede entonces controlar la excepcion de todos modos le parezca en su codigo.
Un uso simple para XferFields podria tener este aspecto:

Si XferFields(Tabla1,Tabla2), a Continuacion,
& nbsp & nbsp & nbsp Tabla2.Puesto
Else Begin
& nbsp & nbsp & nbsp Tabla2.Cancelar
& nbsp & nbsp & nbsp ShowMessage('XferFields No!')
Fin
Listado 1. El XferFields funcion.
// **********************************************
// Funcion XferFields
// Version: Delphi 2.0
// Escrito Por: Carl Hewitt & Steve Zimmelman
// transferencia de cualquier de los campos en el Origen de cualquier
// campos con el mismo Nombre y tipo en la
// Destino.
// Si la tabla de Destino se encuentra en Examinar el Estado,

// sera colocado en Estado de Edicion y regreso
// de la misma manera.
// **********************************************
Funcion XferFields(Origen, Destino :TDataSet) : Boolean
Var
& nbsp & nbsp & nbsp i : Integer
& nbsp & nbsp & nbsp nErr: Integer
& nbsp & nbsp & nbsp f1 : TField
& nbsp & nbsp & nbsp f2 : TField
Begin
& nbsp & nbsp & nbsp // nErr se utiliza para contar incorrecta
& nbsp & nbsp & nbsp // campo de transferencias
& nbsp & nbsp & nbsp nErr := 0
& nbsp & nbsp & nbsp // asegurese de que la tabla de Destino se encuentra en
& nbsp & nbsp & nbsp // estado de Edicion.
& nbsp & nbsp & nbsp Si (Dest.Estado = dsBrowse), a Continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Editar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp For i := 0 a (Dest.FieldCount -1) Do Begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f1 := Dest.FindField(
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Campos[i].FieldName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f2 := Fuente.FindField(
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Dest.Campos[i].FieldName)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Si (f1 <> nil) and (f2 <> nil) A continuacion, Empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // transferir el valor del campo
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp f1.valor := f2.valor
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp // incrementa el numero de error
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Inc(nErr)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp Final
& nbsp & nbsp & nbsp // Si (nErr = Dest.FieldCount), a continuacion,
& nbsp & nbsp & nbsp // no hay campos fueron transferidos y
& nbsp & nbsp & nbsp // el Resultado sera Falso.
& nbsp & nbsp & nbsp Resultado := (nErr < Dest.FieldCount)
Fin


Copia como campos de una tabla a otra

Copia como campos de una tabla a otra : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación