FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
sigue el error
gracias por responder ya lo queite pero me sigue dando el mismo error
ME explico mejor: En DataSnap uso XE. como se pueden hacer consultas en el cliente, esa es mi duda. Hasta Ahora tengo DbExpress en el servidor DataSnap TsqlConnection conectado a Mysql a una base de datos con varias tablas TsqlDataSet con select nombre,id_cliente from clientes TDataSetProvider conectado al TsqlDataSet esto esta en el ServerContainerUnit1 del servidor DataSnap y todo funciona perfecto. En el cliente Un TsqlConnection, DsProviderConnection,TclientDataset y TDataSource conectado al servidor DataSnap y veo todo bien, pero quiero tener libertad en el cliente para poder usar el elnguaje SQL mas libre, digamos hacer consultas complejas y optener resultados en el cliente. por ejemplo select id_cliente from facturas where id_cliente not in (select id_cliente from clientes) esa query esta trabaja sobre dos tablas. Lo que quiero es ejecutar cualquier consulta desde el cliente en una base de datos de varias tablas MySql que la tengo conectada en el DataSnap. que hasta ahora solo veo en los tutoriales de DataSnap solo conexiones ya preelaboradas en el servidor , como estas select id_cliente from facturas y eso me deja acceder desde el cliente solo a esos registros, pero yo quiero que en el cliente se puedan hacer querys libremente sin tener que diseñarlas previamente en el servidor . Como siempre se ha hecho en delphi sin usar DataSnap yo siempre he puesto un objeto Query el que sea conectado a un Connection el que sea y he podido hacer cualquier consulta a una base de dsatos completa de varias tablas y eso es lo que no se como hacer en DataSnap |
#2
|
|||
|
|||
En el servidor DataSnap hice lo que puse antes en el modulo de los metodos que son visibles desde los clientes, una funcion que se le pasa como parámetros una consulta y devuelve unos resultados en el objeto TSQLQuery
y en el cliente la uso de la siguiente manera, despues de haber comprobado y generado la clase respectiva en el cliente con la respectiva funcion del servidor:
donde DataSnapCon es la conexion al servidor DataSnap y GetServerComandos es la funcion que tengo creada en el servidor que se le pasa una onsulta como parámetros y me devuelve un TSQLQuery. y me da en esta linea Data := Consulta.GetServerComandos(s); el error Remote error : Insufficientent RTTI available to support this operation |
#3
|
||||
|
||||
Por probar, mira en las opciones de compilación si tienes marcada la opción:
Emit runtime type information
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... |
#4
|
|||
|
|||
ya probe estaba deshabilitado, pero lo habilite y tampoco, sigue dando el mismo error.
|
#5
|
|||
|
|||
juank1971 pudiste resolverlo?
Porque estoy investigando con DataSnap y me encuentro en el mismo dilema. Para acceder a una tabla puntual no tengo problemas, ahora, para poder hacer queries con libertad no se como hacerlo. Gracias! |
#6
|
|||
|
|||
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. |
#7
|
|||
|
|||
Tquery
Disculpa es mas general todavía, no tengo puestos Ttable Solo Tquery, o sea en el lado del servidor Solo teo TQuery y TadoQuery. y sin embargo actualiza las tablas y hace post perfeco del lado del cliente, y consultas entre varias tablas.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
DataSnap con delphi 2007 win 32 | Paulao | Varios | 0 | 29-03-2008 21:40:37 |
Turotial datasnap | Osorio | Providers | 2 | 20-09-2006 13:36:10 |
DataSnap residente en el servidor !!! | Velia | Providers | 0 | 18-05-2006 15:06:25 |
capturar errores con datasnap | Toni | Conexión con bases de datos | 1 | 30-06-2005 21:38:58 |
Midas y DataSnap | Toni | Providers | 1 | 09-07-2003 18:30:47 |
|