Hace un par de semanas me di a la tarea de lograr conectar android a SQL Server, Oracle y mysql, ante la falta de información que existe en internet al respecto.
Escenario:
* Base de datos SQL Server 2008.
* Android API 2.2.
* Eclipse Helios Service Release 2.
De inicio intenté usar la conexión que implementa Alejandro Alcalde en su blog. En general me funcionó bien para ejecutar sentencias insert, upadte, delete, select. Pero cuando intenté usar los métodos first(), last(), etc, sobre el resultset devuelto por el servidor de base de datos, me daba el siguiente error:
unsupported method resultset.first()
Para corregirlo probé la sentencia
Pero me arrojó el siguiente error: the incoming tabular data stream (tds) remote procedure call (rpc) protocol stream is incorrect
Probé todas las combinaciones posibles de esos 2 parámetros con el driver jdbc para sql server y no tuve resultados.
En definitiva decidí usar el driver jTDS que también me presentó el siguiente error: resultset may only be accessed in a forward direction. (Similar al error primero con el driver de sql server)
Entonces nada más cambié la instrucción anterior a esto:
1. Bajar el driver versión 1.2.5 http://jtds.sourceforge.net/
2. A continuación la clase de conexión:
como saber cual es mi SERVER_IP y mi SERVER_PORT?
ResponderEliminarAmigo, disculpa la demora, el puerto e IP del servidor depende de lo que le definás vos. Sin embargo, por defecto SQL Server usa el puerto 1433... el IP es el que vos definás en el equipo donde instalás SQL Server.
EliminarMuchas gracias por tu blog, te hago una pregunta, como hago con url="..." cuando tengo un SQL Server Express el cual usa instancias en vez de puertos?
ResponderEliminarGracias
No estoy seguro, porque no lo he probado en Android, pero en PC tendrías que poner SERVIDOR/INSTANCIA y no haría falta indicar el puerto.
EliminarBuenas tardes, estoy tratando de conectarme a sql con una instancia y me sale este error
EliminarE/ERRO﹕ Unknown server host name 'Host is unresolved: 192.168.1.175\mssqlserverr2'.
Si alguno pudo resolver este problema se lo agradeceria.
Gracias
No me logra conectar.
ResponderEliminarMi correo es kevinfunezsoft@gmail.com
EliminarPara que me puedas ayudar.
Hice todo lo que dices librería, código y nada.
ResponderEliminarNo se si puedes ayudarme.
Necesito hacer un proyecto.
Te lo agradeceré mucho.
Hago todo tal cual y me lanza la excepción ClassNotFoundException al pasar por la línea.
ResponderEliminarClass.forName(driver).newInstance();
¿Alguna idea?
He realizado el mismo conector con una aplicación Java normal (no Android) y funciona perfectamente.
Gracias por la ayuda
Una vez que realice la conexión, como le hago para ejecutar stored procedures, y mostrar resultados como en un grid, estoy empezando con android y la verdad el sqlite no es mucho de mi agrado
ResponderEliminarme gustaria saber si tienes algún ejemplo de ejecutar stored procedures.
De antemano muchas gracias por su ayuda.
Hola,
ResponderEliminarMe baje las librerías y usé el código tal cual y me manda el siguiente error, estuve buscando y no encontré nada al respecto.
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
Saludos y Gracias.
Hola,
ResponderEliminarLlevo intentando horas hacer funcionar el driver y no lo consigo.
Me da el siguiente error:
11-13 18:01:31.973: E/AndroidRuntime(398): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{serviciocitas.miaplicacion/serviciocitas.miaplicacion.SQLServer}: java.lang.ClassCastException: serviciocitas.dalkom.SQLServer
Se supone que es un error de conversión de Clase pero no se donde está el problema.
He incluido el código de esta página en una clase llamada SQLServer y me he bajado la librería y he añadiro el archivo jtds-1.3.0.jar al proyecto. Desde la activity principal llamo a esta clase asi:
Intent llamada = new Intent(getBaseContext(),SQLServer.class);
startActivity(llamada);
Y siempre me da el mismo error que no se depurar porque no me dice en que línea.
¿Alguien sabe porque me pasa esto y como solucionarlo?
Un saludo y gracias.
Tu clase SQLServer.Class ¿hereda de Activity?
Eliminar¿La declaraste en AndroidManifest.xml?
¿Tiene el metodo onCreate?
Hola:
ResponderEliminarPara todos los que no encontraron el driver el nuevo link está en:
http://sourceforge.net/projects/jtds/files/
Una consulta, luego de bajarme el driver simplemente lo copio a la carpeta principal de mi aplicacion Android y deviera reconocerlo sin tener que importar nada mas?
ResponderEliminarhola a todos, tengo que hacer una aplicacion android con conexion a una base de datos en mi localhost.
ResponderEliminarquiero conectar la aplicacion a dicha base para almacenar y buscar luego elementos para poder hacer alguna accion con ellos. lo que me pasa es que no consigo la conexion a traves de JAVA y debo de hacerlo asi.
tengo mi tabla usuarios en localhost... quien me ayuda??? un millon de gracias
Vale desisto esto en android no funciona, la misma librería en java normal va pero en un proyecto android no soy capaz a hacerla funcionar nunca encuentra la clase.
ResponderEliminarImportada a la manera clásica como librería externa e importada con el boton derecho añadir desde eclipse.
Hasta haciendo trampas y declarando una variable del tipo net.sourceforge.jtds.jdbc.Driver da error diciendo que la clase no esta definida.
java.lang.NoClassDefFoundError: net.sourceforge.jtds.jdbc.Driver
Si alguien sabe como importar la librería para que la reconozca en un proyecto android por favor que haga un vídeo paso a paso.
SOLUCION ClassNotFoundException EN ANDROID.
ResponderEliminarDespués de un día entero de pruebas lo he conseguido. Conecte desde Android con la base de datos.
Paso 1: Tiren a la papelera la librería jtds 1.3 y descarguen la 1.2.5
Paso 2: Agreguenla al proyecto como libreria externa.
Paso 3: En Java Build Path busquen la pestaña Order and Export y marque en archivo jtds 1.2.5
Paso 4: Ejecuten el programa, comprobando que en la carpeta bin/dexedLibs se añada una copia de la librería jtds.
En caso contrario repitan los pasos 2 y 3.
Con esto ya deja de dar el ClassNotFoundException odioso.
Espero que les sirva de ayuda
tengo el problema que no se conecta con android como lo puedo solucionar tengo el driver net.sourceforge.jtds.jdbc.Driver alguien me pueda ayudar
ResponderEliminarTengo la clase asi, cuando llega a este punto:
ResponderEliminarClass.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
me sale el error de "No suitable driver"
Alguien que me pueda ayudar con este problema
Gracias de antemano
Agregaste en el Build Path la librería jtds?. Procura que sea la 1.2.5 o 1.2.7
EliminarString url = "jdbc:jtds:sqlserver://" + serv + ":" + porta + "/" + database;
EliminarBuenas amigo, si quisiera realizar una aplicación que solo modifique y verifique tendría que colocar los procedimientos en clases y que estos sean llamados de una activity ?
ResponderEliminarMis dudas serían:
1.- Desde una activity se pueda llamar a una clase.
Soy novato en programación.
geekccs
Buenas, probando a realizar un programa similar, me da un error que no sé muy bien como solucionar. A ver si alguien me lo podría resolver. Yo utilizo la librería de Microsoft, jdbc, y el Class.forName lo hace correctamente, pero a la hora de conectarme a través de DriverManager.getConnection..., me salta este error:
ResponderEliminarCould not find class 'javax.sql.XAConnection', referenced from method com.microsoft.sqlserver.jdbc.SQLServerConnection.poolCloseEventNotify
Alguien sabría como solucionarlo??
y como se hace la consulta me tilda error saludos
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarhola buenas tardes soy nuevo en lo que es programación móvil y no he podido realizar para insertar datos a la base de datos
ResponderEliminarSaludos Roylan. ¿Eso quiere decir que sí lograste hacer la conexión?
Eliminarhola se puede ocupar este driver para hacerlo con mysql
ResponderEliminarBuenas tardes, mis disculpas por tanta ausencia, debido a asuntos de trabajo. Alicia, yo, si mal no recuerdo, hace años lo intenté con mysql usando el jdbc driver para mysql y funcionó. Yo te sugiero intentarlo de esa manera.
ResponderEliminarSaludos.
se puede realizar en android estudio o solo en java.
ResponderEliminarsaludos