Tengo un TDatasetProvider personalizado que permite crear nuevos campos para cualquier dato que proporciona.Forma más rápida de mover datos de una estructura de conjunto de datos a otra (en TDatasetProvider)
Por lo tanto, digamos que tienes los campos folowing en el conjunto de datos original:
- CustomerId
- Nombre
- Edad
y hay que seleccionarlo en DBGrid utilizando mostrando una Mapa de bits Bueno, puede hacerlo ya que mi DSP puede agregar un campo booleano llamado Selected
a los datos del conjunto de datos.
La forma en que hago que ahora:
- crear 2 objetos TClientDataSet (origen y destino)
- En Origen, me carga los datos conseguidos de los parámetros del método InternalGetRecords (Me hizo caso omiso de ella)
- en Target, creo FieldDefs los definidos a partir del conjunto de datos de origen y añadir los FieldDefs creados en tiempo de diseño por el desarrollador
- ejecutar una CreateDataSet en el blanco
- y, fila por fila (una d campo por campo), copio los datos de la base de datos de Origin en el conjunto de datos de destino
- Al final, devuelva la variante de Datos como un valor de retorno de InternalGetRecords.
Realmente no sé si hay una forma más elegante (y más rápida) de hacerlo. ¿Hay otra forma (más rápida y/o elegante) de obtener ese resultado?
¿no puede simplemente crear el campo booleano decalcal interno en el conjunto de datos original sin todo ese lío? – vavan
Después de hacer este componente, la vida se hizo más fácil ya que puedo crear campos de datos que el CDS reconoce como campos de datos ... –
pero está haciendo mucho trabajo innecesario. y ¿cuál es el sentido de crear esos campos de datos? – vavan