Tutoriales Moviles Delphi XE5-Tut20
Tutoriales Moviles Delphi XE5-Tut20
Tutoriales Moviles Delphi XE5-Tut20
www.R2datatechnology.com
Tutorial Mvil: Conectando a una Base de Datos Empresarial desde un Cliente Mvil (iOS y Android)
Antes de empezar este tutorial, debera leer y realizar los siguientes tutoriales: Tutorial Mvil: Usando Componentes ListBox para Mostrar una Table View (iOS y Android) Tutorial Movil: Usando InterBase ToGo (iOS y Android)
Este tutorial describe cmo conectarse a una base de datos Empresarial desde una aplicacin mvil cliente. Para conectarse a una Base de Datos Empresarial, usted necesita tener una librera cliente. En muchos casos, la librera cliente es proveda por el database vendor en formato DLL. Esta estrategia no trabaja bien para dispositivos mviles porque las libreras cliente no estn disponibles. Para resolver esto, puede desarrollar una capa intermedia (middle tier) para conectarse a una Base de Datos Empresarial , y su aplicacin mvil pueda comunicarse con la capa intermedia. RAD Studio prov el DataSnap framework con el que usted puede desarrollar la capa intermedia (y acceder a la capa intermedia) casi sin necesidad de codificacin. Este tutorial describe los pasos para desarrollar la capa intermedia y luego desarrollar el cliente mvil.
Embarcadero Technologies
142
www.R2datatechnology.com
2. El asistente New DataSnap Server aparece y usted necesita seguir los pasos sin modificar demasiados parmetros.
En el asistente New DataSnap Server: 1. Como primer paso, seleccione VCL Forms Application como tipo de aplicacin.
Embarcadero Technologies
143
www.R2datatechnology.com
2. Como segundo paso, escoga el protocolo TCP/IP, Server Methods Class y Sample Methods desde la lista Server Features. 3. En el tercer paso, dejar el puerto de comunicaciones TCP/IP por defecto al 211. Esto garantizar que la comunicacin entre el cliente y el servidor pasar a travs del puerto por defecto del DataSnap. 4. En el paso final (nmero cuatro) seleccione TDSServerModule como el ancestor para el Server Methods. 3. Guarde la unidad del formulario como DataSnapServerUnit.pas. 4. Cambie a DataSnapServerUnit, y cambie la propiedad Name del formulario a DSServerForm. 5. Guarde el server methods unit por defecto es creado por el asistente: ServerMethodsUnit1) como ServerModuleUnit.pas. 6. Guarde el server container unit (por defecto es creado por el asistente: ServerContainerUnit1) como ServerContainerUnit.pas. 7. Guarde el nuevo proyecto como DataSnapServerProject.droj. 8. Seleccione ProjectGroup1 en el Project Manager, y guarde el proyecto como DataSnapTutorialProjectGroup.groupproj.
Winapi.Windows, ServerModuleUnit;
2. Cambie al archivo ServerModuleUnit.pas. 3. En el Form Designer, cambie la propiedad Name del Server Module a DSServerModule_EMPLOYEE. 4. Configure los siguientes componentes sobre el Server Module: Suelte un componente TSQLConnection sobre el Server Module, y establezca las siguientes propiedades: TSQLConnection encapsula una conexin dbExpress hacia un servidor de base de datos.
Embarcadero Technologies
144
www.R2datatechnology.com
Setear la propiedad Name a SQLConnection_EMPLOYEE. Setear la propiedad LoginPrompt a False. Setear Driver a InterBase Server. Expanda el nodo Driver, y setear la propiedad DataBase a C:\Users\Public\Documents\RAD Studio\<n.n>\Samples\Data\EMPLOYEE.GDB.
Cambie la propiedad Connected a True. Si obtiene un error, vuelva a verificar las propiedades que ha configurado:
Suelte un componente TSQLDataSet sobre el Server Module, y setear las siguientes propiedades:
TSQLDataSet representa la informacin recuperada usando dbExpress. Setear la propiedad Name a SQLDataSet_EMPLOYEE. Setear la propiedad SQLConnection a SQLConnection_EMPLOYEE. Setear la propiedad CommandType a ctTable. Setear la propiedad CommandText a EMPLOYEE. Cambiar la propiedad Active a True. Si obtiene un error, vuelva a verificar las propiedades que ha configurado. Suelte un componente TDataSetProvider sobre el Server Module, y setear las siguientes propiedades: TDataSetProvider empaqueta la informacin desde un dataset y pasa uno o ms data packets transportables al cliente DataSnap. Setear la propiedad Name a DataSetProvider_EMPLOYEE. Setear la propiedad DataSet a SQLDataSet_EMPLOYEE:
Embarcadero Technologies
145
www.R2datatechnology.com
Nota: Este tutorial usa InterBase como un ejemplo. Sin embargo, usted puede conectarse a cualquier servidor de base de datos usando los mismos pasos. Seleccione el driver apropiado, y otras propiedades para apuntar a su base de datos.
procedure TServerContainer1.DSServerClass1GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); begin PersistentClass := TDSServerModule_EMPLOYEE; end;
Con este manejador de evento, el DataSnap Server expone los proveedores as como los mtodos pblicos de esta clase a un cliente DataSnap. Basado en los pasos de la seccin previa, ahora vamos a exponer el componente DataSetProvider_EMPLOYEE DataSetProvider para su cliente DataSnap.
Embarcadero Technologies
146
www.R2datatechnology.com
. Ahora puede ver el DataSnap server ejecutndose en su mquina Windows. Porque ste DataSnap server no tiene Interface de usuario, slo luce un formulario en blanco, y esto es lo que se esperaba en este punto.
Embarcadero Technologies
147
www.R2datatechnology.com
3. Guarde la nueva Unidad como DataSnapClientUnit.pas. 4. Guarde el nuevo Proyecto como DataSnapClientProject.droj. 5. Abrir DataSnapClientUnit, y cambie la propiedad Name del formulario a DSClientForm. 6. Suelte los siguientes componentes sobre el FireMonkey Mobile Form Designer: Componente TSQLConnection (SQLConnection1)
TSQLConnection encapsula una coneccin dbExpress al servidor de base de datos. Adems, es compatible con el DataSnap server. Setear la propiedad Driver a DataSnap. Expandir la propiedad Driver, y setear la propiedad HostName al nombre del host del DataSnap server. Setear la propiedad LoginPrompt a False. Setear la propiedad Connected a True.
Si obtiene un error, por favor vuelva a comprobar las propiedades que se acaban de ajustar.
El componente TDSProviderConnection prov de conectividad al DataSnap server usando dbExpress. Setear la propiedad SQLConnection al SQLConnection1. Setear ServerClassName a TDSServerModule_EMPLOYEE. Este nombre debe de coincider con el nombre de clase del Modulo Servidor del DataSnap server. Setear la propiedad Connected a True.
TClientDataSet implementa un dataset independiente de la base de datos, y sta puede ser usada como un buffer local in-memory de los registros desde otro dataset. Setear la propiedad RemoteServer a DSProviderConnection1. Setear la propiedad ProviderName a DataSetProvider_EMPLOYEE. Este nombre necesita concidir con el nombre del provider del DataSnap server. Setear la propiedad Active a True.
Embarcadero Technologies
148
www.R2datatechnology.com
7. Abrir el LiveBindings Designer y conectar los datos y la interface de usuario: 1. Click en FULL_NAME en BindSourceDB1, y arrastrar el cursor del mouse a Item.Text en ListBox1:
2.
mvil. Usted debera poder ver la informacin trada desde el DataSnap server en el IDE:
iOS
Android
Embarcadero Technologies
149
www.R2datatechnology.com
3. Seleccione el siguiente mdulo, y luego click en OK para cerrar el Deployment Manager: MIDAS Library
Embarcadero Technologies
150
www.R2datatechnology.com
Embarcadero Technologies
151