![]() |
![]() |
| 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
|
||||
|
||||
|
Eso es algo que anteriormente se ha hablado aquí, lo puedes encontrar si buscas "capas lógicas" o "2.5 capas" (que es como osé llamarle).
Es decir, que sí puedes usar componentes proveedores (TDataSetProvider) y conjuntos de datos clientes (TClientDataSet), aunque tu aplicación no necesariamente esté dividida en tres capas y sin dejar de utilizar ADO. Asignarle un TADOXXX a un TDataSetProvider no tienen ninguna dificultad: los componentes proveedores pueden conectarse con cualquiera de los componentes de acceso a datos que existen. Si mantienes tus conjuntos de datos clientes fuera del módulo de datos donde se encuentran los proveedores (lo cual me parece bien pensando en esta división lógica de capas), no podrás asociar en tiempo de diseño un TClientDataSet nativo con un TDataSetProvider, pues el primero no tienen propiedad pública "Provider", sino "ProviderName", la cual está pensada para establecer en ella el nombre de un componente proveedor que se encuentre en: a) un módulo de datos remoto (en el servidor de aplicaciones). b) el mismo módulo de datos o formulario donde se encuentre el conjunto de datos cliente. Es decir, que la propiedad ProviderName no sirve para asignar un proveedor que se encuentre en la misma aplicación, pero en un módulo de datos distinto (al menos hasta Delphi 7 es así). No obstante, en tiempo de ejecución, podrías realizar un asignación como esta en el OnCreate del formulario:
Una recomendación sería, en tiempo de diseño, agregar el conjunto de datos cliente en el módulo de datos de proveedores, asignarle valor a la propiedad ProviderName, agregar los campos persistentes (si fuese el caso) y los parámetros ("Fetch Params") al conjunto de datos. Y, una vez probado que abra y cierre sin problemas, moverlo al módulo de datos o formulario donde realmente quieres tenerlo. Pero eso sí, tendrás que asignarle el proveedor mediante una sentencia de código como la anterior. Espero haberte orientado. Al González. ![]() |
|
#2
|
|||
|
|||
|
excelente!!
Eso es precisamente lo que queria lograr, de esa manera mi aplicacion se hara mas flexible y mas ordenada;
Muchas gracias por tu aportación Al Gonzazles, me sirvio de mucho!!! ![]() |
|
#3
|
||||
|
||||
|
Me alegro por ello, _CALI.
![]() |
|
#4
|
|||
|
|||
|
una ultima acotacion
disculpa el abuso jeje.
una ves establecida la conexion del cliente data set que esta el formulario con el proveedor que esta en el modulo de datos... el cliente data set le pide al proveedor que actualize la tabla con applyupdates(0) el proveedor ejecuta la instruccion INSERT, UPDATE O DELETE, dependiendo del estado como se encontraba el cliente data set cierto?? cuando creo un registro nuevo todo bien pero cuando modifico un registro me sale que otro usuario cambio el valor del registro bla bla bla, acuerdate que mi formulario se abre varias veces a la vez, ese problema lo solucionaba ejecutando un TADOCommand para mediante instruccion SQL actualize el valor del registro directamente. mi pregunta es cual es evento del proveedor (si existe) para poder modificar la instruccion UPDATE o que me recomiendas en tal caso Muchas Gracias denuevo!! |
|
#5
|
|||
|
|||
|
una posible solucion fue personalizar el metodo de Update del proveedor
el procedimiento q se ancarga de pasar los datos del clientedataset al commando :
funciona bien pero aun tengo dudas, no se supone q en un campo del cliente data set asi no ingrese un dato es se asume como cadena vacia ''?, me causaba un error al momento de ejecurar el command diciendome q el valor era nulo. alguna otra recomnedacion gracias de antemano |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Conectar varias Bases de Datos con Server DataSnap | gcaffe | Providers | 5 | 22-05-2016 01:55:09 |
| Querys en DataSnap | juank1971 | Conexión con bases de datos | 10 | 15-07-2014 13:04:55 |
| DataSnap o LAMP | Chris | Debates | 70 | 24-07-2012 18:42:48 |
| Webinar: Estrategias y herramientas para el desarrollo de aplicaciones DataSnap | Andreano | Noticias | 5 | 10-12-2010 08:05:30 |
| Midas y DataSnap | Toni | Providers | 1 | 09-07-2003 18:30:47 |
|