Spanish Conexión "fácil" a MS SQL Server

Saludos, compañeros:

Llevo bastante rato "buceando" por aquí y no acabo de encontrar una forma sencilla de poder leer tablas, vistas, etc. de MS SQL Server desde B4A.

¿Me podríais orientar un poco? Con alguna referencia algún tutorial (aunque estuviera en inglés) pero que lo explicase "desde cero", incluyendo posibles librerías a instalar, etc. me valdría. Llevo programando hace más de 30 años, pero acabo de aterrizar en este entorno y ando algo perdido.

Os agradezco de antemano vuestra inestimable ayuda.

Un abrazo,
Álex.
 

Situ LLC

Active Member
Licensed User
Te puedo ayudar no es complicado
 

josejad

Expert
Licensed User
Longtime User
Hola Alex, bienvenido.

Hay varias formas de conectarse a una base de datos.
Si utilizas el buscador, verás que hay muchas cuestiones de este tipo.
Quizás la más resumida sea esta de Bladimir, que por cierto, tiene un tutorial muy bueno también de cómo conectar a MSSQL con jRDC2

Como verás, hay básicamente 3 formas:
1. WebServices: Usas un servicio web quizás en ASP.NET, php o algo... que se conecta a la base de datos y te devuelve los resultados.
2. Conexion jRDC2: Es la forma recomendada y más segura, pero necesitas un VPS (servidor privado virtual), para ejecutar el servidor jRDC2
3. Conexion JDBC: No recomendada, salvo para pequeños proyectos caseros y cosas así, en los que la seguridad no es problema.
 
Hola a todos:

Os agradezco vuestras respuestas; mañana me pongo con ello y os planteo las dudas que me puedan surgir, que serán muchas. Sí que os adelanto que la seguridad no es un problema, así que supongo que la conexión más sencilla para mí sería la que comentáis JDBC... ¿es así? ¿Podéis linkarme algún manual?

Gracias, un abrazo.
Álex.
 

Bladimir Silva Toro

Active Member
Licensed User
Longtime User
Hola @Álex Patuel

Mira como te dijo @José J. Aguilar existen básicamente 3 formas de conectar a MS SQL Server, de las cuales te recomendaría solo 2 (WebServices o jRDC2) si sabes programar en Web (manejas PHP ó ASP) es mejor que uses WebServices, si eres como yo que solo maneja escritorio pues la mejor forma seria jRDC2.

Aquí te dejo los pasos que debes seguir en jRDC2 https://www.b4x.com/android/forum/t...-android-to-ms-sql-server-using-jrdc2.114856/

Si tienes algún problema avísame para poder ayudarte.
 
Saludos, compañero:

Tiene muy buena pinta el manual; pero volviendo a la "elección" de la forma en conectarme; te comento que en principio la seguridad no es un problema, ya que mis desarrollos irán orientados a bases de datos de aplicaciones que ya tengo en mis clientes con servidores MS SQL Server en la propia red local.

Por lo tanto, la "impresión" que tengo, desde mi desconocimiento, es que la forma más sencilla sería JDBC... ¿sería así? Es por elegir un "rumbo" que tomar :)

Gracias otra vez.
 

josejad

Expert
Licensed User
Longtime User
Hola Álex:

Si tus servidores son locales, y por tanto probablemente puedes ejecutar en tu red local un servidor jRDC2 (bien en el propio servidor MSSQL, bien en otro ordenador de la red), esa es la mejor opción, la más segura, con un rendimiento muy bueno, y en cuanto le pilles un poco el truco, verás que sencilla y potente.
 
Vale... si lo entiendo bien, tengo que instalar un servidor (o un servicio) jRDC2 que es como un "puente" para comunicarme con mi SQL Server. Estoy seguro de que para un futuro será la mejor opción para mí, pero ahora mismo acabo de aterrizar en este entorno; estoy aprendiéndolo aún y lo que me prima es la sencillez. Siendo así... y poniéndome en el horizonte el jRDC2... ¿sería más fácil como primer paso empezar por jDBC?

Gracias de nuevo.
 

josejad

Expert
Licensed User
Longtime User
No he utilizado nunca jDBC, así que no te puedo decir cómo es de sencillo.
Lo que sí te puedo decir, es que jRDC2 no es complicado.
- Te descargas B4J (que es gratuito),
- Te descargas el .jar correspondiente para acceder a MSSQL.
- Cambias en el fichero de configuración los datos de acceso a tu servidor
- Configuras las sentencias SQL en el fichero de configuración.
- Compilas el programa en B4J y lo ejecutas en tu servidor u otro ordenador de la red local. (mientras estás depurando, puedes simplemente ejecutar el programa en B4J y vas viendo los resultados en la pestaña debug)
- Accedes desde tu APP B4A a la ip de tu servidor en el que se está ejecutando jRDC2.

saludos,
 

Bladimir Silva Toro

Active Member
Licensed User
Longtime User
No pierdas el tiempo usando jDBC con MS SQL Server vas a tener muchos dolores de cabeza ya que el driver de Microsoft para Java es realmente malo, aquí puedes ver todas las quejas: https://www.b4x.com/android/forum/threads/mssql-jdbc-minimalistic-example.90548/

Mis clientes trabajan la mayoría en su propia red LAN y como te lo ha dicho ya @José J. Aguilar te recomiendo usar jRDC2 es simple de usar y funciona 100% a la perfección además super fácil de manejar, sigue el tutorial que te di en el siguiente enlace: https://www.b4x.com/android/forum/t...-android-to-ms-sql-server-using-jrdc2.114856/

Y por ultimo se dice en mi tierra que el que no recibe consejos no llega a viejo, así que creo que ya te dieron los consejos, espero los pongas en practica.
 
Perfecto; pues tiro por jRCD2... que no se diga que no hago caso a los expertos ;)

Entiendo entonces que, lo mismo que instalaré en mi PC para hacer el desarrollo, tendré que instalar también en los servidores SQL de mis clientes, ¿verdad?

Saludos.
 

Bladimir Silva Toro

Active Member
Licensed User
Longtime User
Exacto algún equipo o servidor tendrá que tener la base de datos MS SQL Server es el mismo que tendrá que tener el jRDC2 allí funcionando ( el JAR corriendo), al menos así lo manejo yo con mis clientes, en B4A le pones la IP del equipo donde esta corriendo el JAR.

Cualquier duda que tengas avisa para ayudarte.
 
Last edited:

josejad

Expert
Licensed User
Longtime User
Entiendo entonces que, lo mismo que instalaré en mi PC para hacer el desarrollo, tendré que instalar también en los servidores SQL de mis clientes, ¿verdad?
Ojo, una aclaración... no todo.
Es decir, en tu PC de desarrollo tendrás que instalar B4J, pero no es necesario en tus servidores. Es decir, igual que cuando en B4A compilas tu aplicación en modo "Release" obtienes un fichero .apk que es el que distribuyes; cuando en B4J tienes tu programa depurado, en modo release obtienes un fichero .jar, (un ejecutable java) y eso es lo que tienes que ejecutar en tu servidor.

saludos,
 

TILogistic

Expert
Licensed User
Longtime User
Ojo, una aclaración... no todo.
Es decir, en tu PC de desarrollo tendrás que instalar B4J, pero no es necesario en tus servidores. Es decir, igual que cuando en B4A compilas tu aplicación en modo "Release" obtienes un fichero .apk que es el que distribuyes; cuando en B4J tienes tu programa depurado, en modo release obtienes un fichero .jar, (un ejecutable java) y eso es lo que tienes que ejecutar en tu servidor.

saludos,

yyyyyyy :D:D

Comprobar e instalar si es necesario el JAVA 8 u 11 que utilizaste en tu IDE B4J en el servidor donde dejaras el JRDC2, para poder ejecutarlo

NOTA:
El empaquetador autónomo del IDE B4J es solo para aplicaciones UI (interface de usuario).


1602012080619.png
 

virpalacios

Active Member
Licensed User
Longtime User
Hola a Todos, yo trato de hacer las cosas sin complicarme mucho, hago un script en php o un webservice en .net, hago los llamados utilizando el protocolo json (permite manejar tablas como si fuesen arreglos). Esto en combinacion el objeto HttpJob debe ser suficiente.
 
Top