Hola a todos:
Por fin me he puesto a probar un poco con B4XPages, y he empezado a adaptar el ejemplo B4XPages + B4XDrawer
Creo que he visto algunos ejemplos con php + mysql para hacer login, etc... pero he visto pocos con jRDC2.
Los datos de la base de datos y la interfaz gráfica son bastante básicos, pero creo que suficiente para hacerse una idea.
¿Qué necesitas?
- Una base de datos mysql/mariadb. Puedes usar XAMPP, LARAGON o cualquier otro proyecto para configurarla. Adjunto un archivo sql que puedes importar para crear la base de datos y las tablas del ejemplo.
- B4J para crear el servidor jRDC2
- B4A 9.9+ que ya soporta B4XPages, aunque lo ideal es siempre actualizar a la última versión de B4A. (10.5 en el momento de escribir este post)
Pasos:
- Importar el archivo sql a tu base de datos. Puedes usar phpMyAdmin, HeidiSQL, etc…
- Configurar el servidor jRDC2. Para ello, abre el archivo jRDC2_B4J.zip, recuerda cambiar tu usuario y contraseña en el fichero config.properties
- Abre B4A, y en la clase jRDC2, cambia la constante rdcLink para que apunte al ordenador en el que estás ejecutando el servidor jRDC2 (B4J). (Puedes verlo con ipconfig en windows)
- Para añadir, editar, etc.. usaremos B4XPreferencesDialog. Puedes usar Form Builder para hacer los formularios. Es importante que los valores clave (key), se llamen igual que los campos de tu base de datos, ya que construiremos un mapa con los datos que recibimos de la base de datos, y se lo pasaremos a B4XPreferences, así que si los nombres coinciden, será mucho más fácil.
He comentado el código lo mejor que he podido.
Si veis cualquier error o sabéis alguna forma de mejorarlo, no dudéis en decirlo.
He intentado hacer el proyecto B4J también, pero nunca lo he usado y me da demasiados errores. Si alguno sabe hacerlo, sería genial para aprender (o en B4i)
EDITADO: He actualizado el proyecto, ahora funciona en B4J y B4A, no sé en B4i ya que no tengo una versión que soporte B4XPages.
La contraseña para todos los usuarios es: 1234 (almacenada en la base de datos como md5)
***** EDITADO *****
Puede ser de utilidad ver este hilo para tener más claro qué es un servidor jRDC2 y cómo distribuirlo:
saludos,
Por fin me he puesto a probar un poco con B4XPages, y he empezado a adaptar el ejemplo B4XPages + B4XDrawer
Creo que he visto algunos ejemplos con php + mysql para hacer login, etc... pero he visto pocos con jRDC2.
Los datos de la base de datos y la interfaz gráfica son bastante básicos, pero creo que suficiente para hacerse una idea.
¿Qué necesitas?
- Una base de datos mysql/mariadb. Puedes usar XAMPP, LARAGON o cualquier otro proyecto para configurarla. Adjunto un archivo sql que puedes importar para crear la base de datos y las tablas del ejemplo.
- B4J para crear el servidor jRDC2
- B4A 9.9+ que ya soporta B4XPages, aunque lo ideal es siempre actualizar a la última versión de B4A. (10.5 en el momento de escribir este post)
Pasos:
- Importar el archivo sql a tu base de datos. Puedes usar phpMyAdmin, HeidiSQL, etc…
- Configurar el servidor jRDC2. Para ello, abre el archivo jRDC2_B4J.zip, recuerda cambiar tu usuario y contraseña en el fichero config.properties
[B4X] jRDC2 - B4J implementation of RDC (Remote Database Connector)
RDC is a middleware server that makes it simple to safely connect clients and remote SQL database servers. jRDC2 is the latest version. All new projects should use this version. jRDC2 is made of two components: - B4J server. The server receives the requests from the clients, issues the SQL...
www.b4x.com
B4X:
Sub Class_Globals
'CAMBIA ESTA IP PARA QUE APUNTE A TU SERVIDOR B4J
Private const rdcLink As String = "http://192.168.1.131:8090/rdc"
End Sub
He comentado el código lo mejor que he podido.
Si veis cualquier error o sabéis alguna forma de mejorarlo, no dudéis en decirlo.
EDITADO: He actualizado el proyecto, ahora funciona en B4J y B4A, no sé en B4i ya que no tengo una versión que soporte B4XPages.
La contraseña para todos los usuarios es: 1234 (almacenada en la base de datos como md5)
sql.Login = SELECT * FROM B4X.users WHERE `username` = ? AND `password` = md5(?)
sql.getEvents = SELECT * FROM B4X.events WHERE `month` = ? AND `id_user` = ?
sql.updateEvents = UPDATE B4X.events SET `month`=?,`event_type`=?,`description`=? WHERE `id` = ?
sql.deleteEvents = DELETE FROM B4X.events WHERE `id` = ?
sql.addEvents = INSERT INTO B4X.events(`id_user`, `month`, `event_type`, `description`, `value`) VALUES (?, ?, ?, ?, ?)
sql.getEvents = SELECT * FROM B4X.events WHERE `month` = ? AND `id_user` = ?
sql.updateEvents = UPDATE B4X.events SET `month`=?,`event_type`=?,`description`=? WHERE `id` = ?
sql.deleteEvents = DELETE FROM B4X.events WHERE `id` = ?
sql.addEvents = INSERT INTO B4X.events(`id_user`, `month`, `event_type`, `description`, `value`) VALUES (?, ?, ?, ?, ?)
***** EDITADO *****
Puede ser de utilidad ver este hilo para tener más claro qué es un servidor jRDC2 y cómo distribuirlo:
[TUTORIAL] Acceder a base de datos con jRDC2
Hola, este tutorial es en parte una traducción del tutorial original y en parte algunas anotaciones mías. En principio, hay tres formas de acceder a bases de datos desde una app B4X. Las enumero con un enlace a los tutoriales en inglés. 1.- jdbcSQL Es una conexión directa desde la app al...
www.b4x.com
saludos,
Attachments
Last edited: