![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
Bueno es lo mismo que hago asi como lo estas haciendo , a lo que me referia era a que como hace el dataset para insertar los registros utilizando el metodo Insert ¿De donde saca los datos para insertar? ya que el metodo Insert no tiene parametros de entradas (ZQuery1.Insert);Me estabas hablando de que utiliza un Buffer y aqui viene la pregunta ¿sera que tambien puedo insertar de esta forma? ![]() Esto es mi duda y quisiera que me lo aclaran si se puede de esta forma insertar,editar,eliminar. Para ahorrarme hacer sentencias SQL.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 |
|
#2
|
||||
|
||||
|
Pues no se puede.
Y es precisamente para evitarse esos dolores de cabeza que empleamos los métodos. TDataSet nos oculta ese tedioso manejo del buffer y nos hace el trabajo de forma transparente. No vemos ese Buffer porque simplemente el componente, y toda su jerarquía de clases está tan bien diseñada para ocultar los detalles técnicos que son "irrelevantes" al programador final. ¡Vamos que lo buscas hacer es ir a lo primitivo; rompe con el esquema y las bondades de OO: encapsulamiento de información y falicidad de programación! Por cierto, el método Insert (el cual pertenece a TDataSet) no inserta. Simplemente pone al objeto en estado de insrción (dsInsert). La inserción no se produce sino es hasta que se confirma con Post. Puedes ver el bello código del DatSet, y/o de cualquier parte de la VCL tan sólo presionando Ctrl y dando clic en el método, propiedad del objeto. Fíjate y observarás como internamente se opera con el Buffer y luego se delega la tarea al proveedor, o al motor quien es de última quien hace el trabajo. Saludos, |
|
#3
|
||||
|
||||
|
Cita:
![]() ![]() Pues pense que se podia por me dije asi mismo "Por que no aprovechar lo que ya esta hecho y poder utilizarlo" Incluso vi el metodo Prepare que al parecer prepara que todo este listo. Tambien vi que se podia hacer esto: Parece ser que Adiciona un nuevo Registro(Field) Entonces para que esto? ¿Que alguien me explique por favor necesito entenderlo? ![]() Cita:
La verdad si alguien puede complementar le estaria muy agradecido. Gracias amigo Delphius ... Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 |
|
#4
|
||||
|
||||
|
Cita:
El DataSet nos oculta el Buffer, y en vez de ello nos ofrece los métodos bases que luego serán usados y ampliados por las clases descendientes de éste. Repito nuevamente: no podemos ver el Buffer, pero a cambio de ese buffer tenemos los métodos, propiedades, y clases necesarias para hacernos la tarea más fácil. Que se pueda añadir un campo al array Fields no viene al caso, eso ya es otra cuestión. ¿Qué no era que estamos hablando de insertar registros y no campos? Y por si fuera poco, No es un comportamiento normal el que describes, ya que el mismo DataSet se encarga de añadir los campos necesarios en su momento. Se ofrece ese método puesto que puede ser de utilidad en ciertos casos, pero no son muy frecuentes. El TDataSet llama, internamente a Fields.Add cuando lo necesite. ¿Cuáles son esos casos? La respuesta no podemos generalizar; se necesita analizar caso a caso. ¿A que viene ese giro de tu duda? Sigues hablando abstractamente, (de igual modo que lo hago yo). Bajemos a tierra mejor. Define una duda concreta y puntual. ¿Quieres una respuesta puntual de cuando se hace uso de Fields.Add? Un ejemplo es cuando el dataset (un TTable por ejemplo) habre la tabla. Cuando abre la tabla, pide los campos al motor y por cada campo crea un nuevo TField y lo asocia a la lista TFields. Ahora mismo me imagino un caso, único y raro, en donde se podría necesitar llamar a Fields.Add: crear una tabla en memoria. Quiero hacerte notar, que lo que estás preguntando son cosas un tanto rebuscadas, y abstractas. Vuelvo a reafirmar mi duda inicial ¿A que viene todo esto? ![]() No se... a lo mejor yo soy el que no comprende el tema. Saludos, |
|
#5
|
||||
|
||||
|
Cita:
![]()
Es exactamente lo que estaba buscando.....me imagino que esta es otra forma de insertar se puede seguir la misma idea para editar, eliminar. Saludos.....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 Última edición por rgstuamigo fecha: 10-02-2010 a las 15:43:43. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Copiar el contenido de un DataSet a otro DataSet | Javi2 | Varios | 88 | 22-11-2025 22:17:42 |
| ¿Trabajar con ClientDataSet sin DataSet asociado? | Bauhaus1975 | Varios | 0 | 14-11-2008 12:54:22 |
| Copnfigurar ip manualmente | soler | Varios | 25 | 11-03-2008 21:29:43 |
| error configurando manualmente ADO.net | camomilass | Conexión con bases de datos | 1 | 10-01-2007 20:10:44 |
| Bloqueo de registros manualmente | Will | Firebird e Interbase | 6 | 17-06-2005 17:38:38 |
|