Ver Mensaje Individual
  #9  
Antiguo 01-11-2013
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Reputación: 17
juank1971 Va por buen camino
si

Amigo esa pregunta la hice en el 2011 ya casi ni me acuerdo de eso, pero si, con datasnap se puede hacer todo perfecto del lado del servidor, incluso conectarte a varios tipos de bases de datos, y hacer cualquier consulta, digamos puedes consultar dbf y tambien sql server o my sql todo mesclado.

haces un servidor , a ese servidor conectas la base de datos que quieras y accedes luego del cliente con todo el acceso a esos datos trasparente para el cliente.

Por ejemplo ahora mismo estoy mirando lo que logre en aquel tiempo y funciona perfecto.
creas un servidor datasnap con el asistente delphi para eso, busca en la ayuda si no sabes.
luego en el ServerMethodsUnit1 te conectas de la forma tradicional a cualquier base de datos, en mi caso teno un ttable sencillo conectado a tablas DBF, y ahora lo mas importante, le pones a esa tabla un TdataSetProvider y lo enlazas. ya solo eso, así tengo puestos 5 ttables enganchados a 5 tablas diferentes dbf con sus respectivos TdataSetProvider .

Tambien teno un TadoQuery y en la propiedad conecctionstring me estoy conectandpo a un servidor sqlserver y su respectivo TdataSetProvider tambien.

O sea puedes hacer en ese lugar cualquier coneccion, si quieres pues poner mejor todo con dbxpress que funciona mejor y como debe ser es un Tsqlconnection para la conexion, y varios tsqlquery con varios TdataSetProviders, lo que yo no podia aserlo con tsqlconnection porque eran a dbf y no hay drivers dbexpress para ese tipo de bases de datos.

Entonces en el cliente el solo con el wizar de delphi debe crearte un TSQLConnection y en driver dbexpress en la unit ClientModuleUnit1 y ademas debe crearte tambien un TDSProviderConnection, ya con eso se conecta a tu servidor, luego basta agregarle en ese mismo ClientModuleUnit1 uno o varios TclientDataset y en la propiedad Provider name lo enlazas con el respetivo DatasetProvider que pusiste en el servidor.

Eso funciona perfecto, de hecho a mi criterio es lo que mejor funciona accediendo a cualquier base de datos multiusuario en delphi. Datasnap con dbexpress y Tcliendataset.

Finalmente solo tienes que enlazar como siempre esos TclienDataset con datasorce y mostrar los resoltados en un grid, la forma de ejecutar quierys es poniendo la consulta en la propiedad commandtext del tcliendataset, y le das open .

Me tiras si no encuentras algo, normalmente lo que mas trabajo pasas es en lograr ver los provider del servidor, puesto que para que se vean en el cliente debes copiar la clase que los exporta del servidor y escribirla manualmente en el DSProviderConnection1 en la propiedad ServerClassName, cosa la cual la veo muy mal de delphi eso debiera mostralo solo sin necesidad de escribirla manualmente.

Avisame si me entiendes que yo me pierdo mucho en explicaciones.
Responder Con Cita