![]()
En anteriores entradas expliqué como he ido desarrollando una aplicación para Android que enviaba mensajes al pc para un proyecto de fin de curso.
Bien, ahora voy a explicar en que consiste la aplicación exactamente, que aún no lo he hecho.Se trara de desarrollar un programa para bares, en la cual cada camarero tendrá una PDA, o dispositivo Android, desde la cual anotará los pedidos de los clientes. La PDA enviará estos pedidos al servidor que contiene una Base de datos, y este imprimirá los tickets.
Para esto es necesario establecer una conexión PDA-Base de datos del Servidor.
Lo primero que hay que hacer es intalar SQL server 2008 y configurarlo para que se pueda acceder de dos formas (con autentificación windows y con autentificación SQl server), esto se pregunta durante la instalación de SQL server, posteriormente hay que crear un usuario SQL server, aqui se explica como hacerlo. Tambien debemos permitir conexiones remotas.
Ahora vamos al código, (que he sacado de un ejemplo de la web de microsoft), al cual solo he añadido una consulta a una tabla de mi base de datos.
Ahora vamos a crear un proyecto, yo lo he creado en ecplise, es necesario agregarle las librerías JDBC para que hagan de puente entre la aplicación y la base de datos. En ecplise se añaden en las propiedades del proyecto/JAva Build Path/Libraries, estas librerías podeis descargarlas de aqui, si no lo hacéis en ecplise, en este enlace se ve como configurarlo
También puedes ver cómo Conectar una base de datos ORACLE a aplicación Java remotamente
Dejo el código por aquí:
Y la sálida de ejecutar la aplicación:
Connection Successful! Driver Information Driver Name: SQLServer Driver Version: 2.2.0022 Database Information Database Name: Microsoft SQL Server Database Version: Microsoft SQL Server Yukon - 10.0.1600 Algunos datos de la BD Nombre: Alejandro Apellido: Alcalde Dni: 12345678
Espero que os sirva de ayuda, he escrito esta entrada rápido por falta de tiempo, así que si algo no se entiende no dudes en preguntar e intentaré ayudarte.
¿Eres curioso? » sigue este enlace
Únete a la comunidad El Baúl del Programador: » RSS | Twitter (1128) | Facebook (623) | Google+
gracias lo probaré!
Anónimo: Suerte
bueno,yo estoy haciendo una aplicacion java en netbeans y trabajando con una base de datos en mysql, y lo tengo funcionando bien,el problema es que necesito ke varios equipos esten trabajando solo con la aplicacion java pero desde ahi manipular mi base de datos desde sus computadoras,y no se como hacer la conexion remota
ojala y me puedas ayudar.
gracias.
Anónimo:
Pero no es en Android?, no?. Pretendes que varios clientes se conecten al servidor y manipulen los Datos de la BBDD?
Funciona bien con un proyecto de java, pero cuando lo pruebo con un proyecto de android no funiona nos puedes ayudar???
@Anónimo:, Con un proyecto Android debe funcionar igual de bien, ya que para mi proyecto wifiBar reutilizé parte de este código. Uno de los errores comunes en los proyectos Android que necesitan internet es no dar permiso a la aplicación para usar la red. Asegurate que en vuestro AndroidManifest tenéis lo siguite:
<uses-permission android:name="android.permission.INTERNET" />
buenos tutoriales.. grasias de antemano.. tengo una pregunta.. como me conecto a un servidor linux con mysql ???
lo que quiero es traerme una lista de nombres y que me aparesca en un listview..
SOLO KIERO SABER COMO CONECTARME AL SERVIDOR CON MYSQL
GRASIAS..
Mira a ver si te sirve este tuto: http://zetcode.com/databases/mysqljavatutorial/
Alejandro Alcalde says:
23 de diciembre de 2011 10:47
Mira a ver si te sirve este tuto: http://zetcode.com/databases/mysqljavatutorial/
GRASIAS.. LEYENDOO
Hola como conecto configuro un proyecto Android para que es pueda ver la libreria de sql server porque ese error me sale.
Saludos
Como configurar un proyecto de Android en eclipse para que me acepte la libreria de sql Server, porque con el buil path pero me dice que no lo encuentra.
Espero tu pronta respuesta .
Gracias!
clic derecho en tu proyecto de android,
*seleccionas "Java Buld Path"
*a lado derecho aparecen botones, das clic en Add JARs
*seleccionas los JARs de tu carpeta lib, clic en ok, y ok!
*en tu proyecto principal se agregan las librerias con diferente icono
Gracias por contestarle. Ultimamente tengo el correo saturado y no doy abasto. Un saludo.
Alejandro, saludos. He probado esto en sql server 2008 con la version 2 y 3 del driver jdbc y no se conecta dice que no puede establecer conexion segura, algo así. Con mysql sí logré conectarme y ejecutar operaciones en la base de datos, pero necesito trabajar con SQL Server. En otro tema, he visto la aplicación móvil que has estado desarrollando y quiero saber si ya hiciste el webservice, como alternativa a jdbc, porque vi en el código que usás o pretendés usar webservice, creo que en php.
Saludos y muchas gracias por tu colaboración gentil.
Hola, al final la aplicación conectaba directamente con la base de datos alojada en un pc con Sqlserver 2008. Decirte que durante el desarrollo de la aplicación encontré muchisimas dificultades para lograr conectar con SQLserver desde Android, probé con sqlserver 2000 y 2008, finalmente lo logré con el 2008.
El problema solía venir siempre del jbcd. He estado mirando el código de la aplicación final y los dos puntos problemáticos eran estos:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 version
connection = java.sql.DriverManager.getConnection(getConnectionUrl());
Y la variable string url que contiene el protocolo a usar, que en esta entrada es private final String url = "jdbc:microsoft:sqlserver://";
Pero en el proyecto que tengo en mi pc es:
private final String url = "jdbc:sqlserver://";
Prueba a cambiar esa cadena y me comentas si se solucionó el problema.
Saludos.
Gracias por responder.
Yo tengo esas 2 líneas de código así:
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
con = (Connection) DriverManager.getConnection("jdbc:sqlserver://172.16.31.215:1433;databaseName=ACTIVOS","sa", "admin");
Uso el driver jdbc versión 3. Librería sqljdbc.jar.
Me da este error: Java Runtime Environment (JRE) version 0.9 is not supported
by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
Uso el driver: jdbc versión 3. La librería sqljdbc4.jar
Me arroja el error:
The driver could not establish a secure connection to sql server by using secure sockets layer (SSL) encryption. Error: "Unable to make socket non blocking".
He leído en muchos foros, en uno de microsoft se dice que este jdbc no soporta android actualmente y que puede haber un problema específicamente con SSL en la plataforma android.
Sinceramente le he dado vueltas un día entero tratando de arreglarlo pero no he podido. Por favor, te agradecería sobremanera si me podés apoyar aclarándome que versión de driver específica usaste y qué cadena de conexión. Gracias.
¿Al final en la aplicación usás también algún webservice o no?
Buen día.
Alejandro, aprovecho para preguntarte qué versión de API Android usaste también en el proyecto.
Gracias.
El error The driver could not establish a secure connection to sql server by using secure sockets layer (SSL) encryption. Error: "Unable to make socket non blocking". Me aparecía a mí también, Librerías uso msbase, mssqlserver y msutil, concrétamente 2.2.0022. Versión de Android 2.2 Api level 8. Creo que el problema puede estás en la url de conexión, yo tengo lo siguiente:
private final String url = "jdbc:sqlserver://";
private final String selectMethod = "direct";
private String getConnectionUrl() {
return url
+ serverName
+ ":"
+ portNumber
+ ";databaseName="
+ databaseName
+ ";user="
+ userName
+ ";password="
+ password
+ ";selectMethod="
+ selectMethod
+ ";integratedSecurity=true;encrypt=true;trustServerCertificate=false;";
}
Creo que no se me olvida nada, Espero que te sea de utilidad.
Gracias, Alejandro.
Mira, antes de recibir tu respuesta anterior ya había logrado resolver con un driver freeware llamado JTDS, de la siguiente manera:
Bajé el driver versión 1.2.5 (también lo probé y funciona con la 1.2.3) de: http://jtds.sourceforge.net/
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
String connString = "jdbc:jtds:sqlserver://172.16.31.215:1433/ACTIVOS;encrypt=fasle;user=sa;password=*****;";
con = DriverManager.getConnection(connString,"sa","*****");
De esta forma logré conectarme a SQL Server 2008.
Por otro lado tomé tu sugerencia en cuanto a la cadena de conexión y la puse exactamente con la misma sintaxis. Usando el driver jdbc versión 4 de microsoft (sqljdbc_4.0.1722.1_enu.exe, propiamente sqljdbc4.jar), no usé las 3 librerías que vos me recomendaste anteriormente. Y funcionó perfecto, solamente cambiando, repito, la cadena de conexión a como vos me lo sugeriste.
Próximamente estaré intentando conectar a ORACLE, cuando tenga resultados los compartiré con todos ustedes.
Gracias, Alejandro, saludos y buen día.
Hola me podrias ayudar para realizar la coneccion de android con sql server 2008 por favor me es urgente
Hola, lamento comunicarte que no dispongo de tiempo para ello. Un saludo.
ME alegro que hayas conseguido hacerlo funcionar, Cuando tengas listo el de ORACLE, házmelo saber vía mail y nos ponemos de acuerdo para redactar un post para que quede mejor, en lugar de publicarlo como comentario.
Un saludo y gracias por las explicaciones.
Saludos, Alejandro, te envié correo desde g+. Por favor revisar. Gracias-
Alejandro, antes que nada recibe un afectuoso saludo.
Me parecen muy interesantes todos tus artículos.
Me estoy comenzando a involucrar en el desarrollo de aplicaciones para android (Ya tengo algo de experiencia con Java).
Estoy haciendo pruebas para realizar conexiones a bases de datos de SQL; por lo que he leído aquí con ustedes es que no se puede llevar a cabo una conexión con un servidor SQL 2005, ¿cierto?
Ahora bien, creo que estoy algo perdido por aquí. He intentado seguir las instrucciones dadas, tanto por Alejandro como por Ediwn, pero dentro del emulador me notifica que no tengo conexión con el servidor. (no he probado en dispositivo físico).
No sé qué tan complicado fuera para ustedes, ya sea Alejandro o Edwin, que me pudiesen compartir la clase de conexión que emplean.
Desda ya muchas gracias y a seguir con el buen trabajo.
Hola Fede, gracias por comentar y seguir el blog. Con lo que dijimos Edwin y yo debería funcionarte, lo mas importante es la cadena de conexión.
Otra cosa que da muchos dolores de cabeza en android son los permisos. Comprueba que en el AndroidManifest tu app tiene permisos para acceder a internet.
Un saludo.
Saludos, Fede.
Si te da mucho problema el driver jdbc de microsoft, también podés probar con el jTDS que yo menciono y explico en uno de mis comentarios anteriores, yo lo estoy usando también y funciona bien.
Alejandro, Edwin.
Gracias a ambos por sus prontas respuestas y comentarios, retomaré el proyecto en el que estaba trabajando y ya les comentaré!
Estaba en pleno proceso de cambio de departamento dentro mi área de trabajo y el tiempo no es algo que me esté sobrando jajajaja.
De nuevo muchas gracias y les deseo excelente inicio de semana.
Alejandro & Edwin.
Muchas gracias por haber compartido tan valiosa información con nosotros.
Como bien lo apunta Alejandro, me fue muy complicado encontrar información sobre cómo lograr que Android se conecte directamente a una base de datos, pero al final del día lo he logrado con la información que han proporcionado.
Si ustedes me lo permiten, dentro de mi aplicación en la parte de agradecimientos ustedes ocuparán un lugar muy especial.
¡Muchas gracias!
Me alegro que finalmente lo consigueras
. Ahí quedaremos escritos en tu código. 
Un saludo.
Gracias por el aporte, esto probando el driver jTDS pero lanza un error que dice "The decimal scale must be >= 0 and <= 28.", no se por que, me parece interesantisimo este aporte por que estaba usando el driver de Microsoft para conectarme a SQL 2008, pero era muy lento (se demora como 5 segundos para conectar), con el driver jDTS es casi instantaneo pero me tira el error antes expuesto. Tengo una Store que recibe 5 parametros y me devuelve 4:
JtdsCallableStatement insmarca = (JtdsCallableStatement) cnx.prepareCall("{call dbo.SP_Grabar_Marcas_Tmp(?,?,?,?,?,?,?,?,?)}");
insmarca.setString(1, String.valueOf(codigo));
insmarca.setString(2, "1");
insmarca.setInt(3, tipo);
insmarca.setString(4, "10.82.0.999");
insmarca.setString(5, "tumami");
insmarca.registerOutParameter(6, java.sql.Types.CHAR);
insmarca.registerOutParameter(7, java.sql.Types.VARCHAR, 100);
insmarca.registerOutParameter(8, java.sql.Types.TIME);
insmarca.registerOutParameter(9, java.sql.Types.INTEGER);
insmarca.execute();
El error "The decimal scale must be >= 0 and <= 28." me sale tambien asi no use el
JtdsCallableStatement y use el standar CallableStatement.
¿Alguien me podria ayudar por favor?
Yo creo que es por el 100 ese que tienes ahí, porque viendo el mensaje de error diciendo que la escala de decimales debe estar entre 0 y 28… Me dá a mi que puede ser eso. Prueba a poner un número de ese rango.
Un saludo.
Me alegra saber que lo lograste. Muchas gracias, Fede, claro que podés incluir mi nombre. Un saludo.
Perdón, en el comentario anterior me puse como "anónimo". Att, Edwin.
Hola, me pareció interesante este enlace y he puesto a programar en android, pero lamentablemente no he podido realizar la conexion a la base de datos he usado tanto el dirver de microsoft como el jtds.
El dirver jtds es el que mas me parecio fiable, en primer lugar voy a un proyecto en java probando las conexiones sin tener problemas,pero luego paso las clases a mi proyecto android y me da error al momento de realizar la conexión, es como si no reconociera las clases que están incluidas en el dirver, he incluido las variables en el clashpath, al momento de ejecutar el proyecto en mi tablet no funciona, me marca el error en “net.sourceforge.jtds.jdbc.Driver”, mis ¿tengo que instalar el dirver en alguna ruta de la tablet o tengo que seter alguna configuración especial en el proyecto android? tengo la habilitados los permisos para acceder a internet. Saludos y gracias de ante mano.
No sé si lo habrás hecho, pero tienes que decirle al proyecto android qué librerías vas a usar (En las propiedades del proyecto -> Java Build Path). Y asegúrate de que estás poniendo correctamente la dirección IP del servidor en la aplicación cliente.
Un saludo.
Buenas,
Gracias por el aporte antes que nada, pero podrías especificar dónde conseguir la información que declaras en ésta sección, porfavor?:
private final String url = "jdbc:microsoft:sqlserver://";
private final String serverName = "192.168.1.38";
private final String portNumber = "1433";
private final String databaseName = "db_WifiBar";
private final String userName = "algui91";
private final String password = "1234";
Entiendo que la url es predefinida, el serverName y portNumber cómo puedo averiguarlos, imagino que dentro de MS SQL Server habrá algún sitio, pero soy incapaz de encontrarlo. databaseName ok, el nombre de la base de datos a la que quiero acceder dentro del servidor. userName y password son usuarios definidos en Security>Logins? (Dentro de MS SQL Server, claro).
Sólo aclarar que tengo el servidor en local, por si sirve de algo, estoy bastante verde con todo el tema de servidores.
Gracias de antemano.
Buenas, el portNumber es el que se usa por defecto, si no has tocado nada en la configuración de SQL Server debería ser ese. La ip es la ip del ordenador en el que tengas instalado sql server. Y el nombre de usuario es el nombre del usuario que crees para esa base de datos.
Un saludo.
buenas soy nuevo en android y quiero realizar una aplicación que me diga si tengo conexión al servidor sql para empesar, quiero qe al presionar un boton inicie la conexión y me de el mensaje conectado o no conectado, pero cuando ejecuto el programa con el ejemplo este me sale que la aplicación de detuvo y que se va a cerrar
que puedo hacer o como puedo encontrar el error
El error lo puedes encontrar mirando el logcat
en el logcat me aparece el siguiente error:
FATAL EXCEPTIOn: main
java,lang.RuntimeException: Unable to instantiate activity componentInfo(com.example.PruebaCon/com.example.PruebaCon.ConnectSQL): java.lang.classCastException: com.example.PruebaCon.ConnectSQL
este es el error que me aparece en el logcat:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.pruebacon/com.example.pruebacon.ConnectSQL}: java.lang.ClassCastException: com.example.pruebacon.ConnectSQL
como puedo enviar una imagen desde mi web service hacia mi app android y posteriormente mostrarla???
si me podrian ayudar
Hola,
Necesitaba hacer lo mismo a lo de tu ejemplo en android y tuve varios problemas, pero al final lo pude solucionar.
Aunque ahora tengo otro problema, mi aplicación la instale en mi celular (android version 2.2) y funciona perfecto, puedo hacer consultas a la base de datos y registrar datos, luego que todo me funciono quise instalarla en una tablet con version android 4.0 pero lamentablemente no funciona, y no es problema de la aplicación sino de la librería JDBC, ya que la aplicación se ve, pero no realiza acciones a la base de datos y ese es el problema que no he podido solucionar y no se que hacer :/
si tienes alguna idea de como solucionarlo me podrías decir por favor.
saludos!
El logcat no te da ningun tipo de informaci’on sobre el fallo?
Buenos Alejandro….
Me esta sucediendo lo siguientre… implemento tu codigo en mi aplicacion java y funciona excelente pero cuando lo trato de implementar en mi proyecto android no esta funcionando, ya le puse el permiso de acceso a internet, tambien agregue las librerias…. Me sale un error en la consola como este:
A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (classFileParser.cpp:3494), pid=5068, tid=4000
# Error: ShouldNotReachHere()
etc….
Tal ves el error no diga mucho… Si me podrias ayudar en algo, estare totalmente agradecido.
Uso Versión de Android 4.2 Api level 17…. no se si eso tendra algo que ver.
Gracias de antemano..
Hola, te dejo un link en stackoverflow: http://stackoverflow.com/questions/2904761/shouldnotreachhere-classfileparser-android
Puede que esta solución te ayude
Hola, espero me puedan a yudar en una conexion de sql server 2000 y android he visto tutoriales pero ninguno funciona
Buenas Alejandro.
Tu codigo me sirve cuando lo implemento en un proyecto de java, pero cuando lo implemento en uno de android no me sirve…. Siempre me devuelve la conexion en NULL. Cuando hago un debug, en el punto:
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
se cae, entra al catch y la exepcion que da es:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
Ya tiene los permisos de acceso a intenet y todo.
Ale alguna idea de lo que pueda ser?
Muchas Gracias.
Hola, prueba sustituyendo Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”); por Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“);
Saludos
La clase Test hay que incluirla en el AndroidManifest.xml?
No, únicamente se declaran las clases que heredan de Activity
En otros sitios hablan de una variable “CLASSPATH” esto no aplica aqui cierto?
Yo creo que no
a mi me da este error.
import java.sql.Statement;
public class Test {
private java.sql.Connection connection = null;
private final String url = “jdbc:microsoft:sqlserver://”;
private final String serverName = “192.168.0.101″;
private final String portNumber = “1433″;
private final String databaseName = “PRODUCTOS”;
private final String userName = “ruchija”;
private final String password = “uchija88″;
private final String statement = “select * from producto;”;
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a connection.
private final String selectMethod = “Direct”;
// Constructor
public Test() {
}
private String getConnectionUrl() {
return url + serverName + “:” + portNumber + “;databaseName=”
+ databaseName + “;selectMethod=” + selectMethod + “;”;
}
private java.sql.Connection getConnection() {
try {
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
connection = java.sql.DriverManager.getConnection(getConnectionUrl(),
userName, password);
if (connection != null)
System.out.println(“Connection Successful!”);
} catch (Exception e) {
e.printStackTrace();
System.out.println(“Error Trace in getConnection() : ”
+ e.getMessage());
}
return connection;
}
/*
* Display the driver properties, database details
*/
public void displayDbProperties() {
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet result = null;
try {
connection = this.getConnection();
if (connection != null) {
dm = connection.getMetaData();
System.out.println(“Driver Information”);
System.out.println(“\tDriver Name: ” + dm.getDriverName());
System.out
.println(“\tDriver Version: ” + dm.getDriverVersion());
System.out.println(“\nDatabase Information “);
System.out.println(“\tDatabase Name: ”
+ dm.getDatabaseProductName());
System.out.println(“\tDatabase Version: ”
+ dm.getDatabaseProductVersion());
Statement select = connection.createStatement();
result = select.executeQuery(statement);
while (result.next()) {
System.out.println(“Nombre: ” + result.getString(1) + “\n”);
System.out.println(“Apellido: ” + result.getString(2) + “\n”);
System.out.println(“Dni: ” + result.getString(3) + “\n”);
}
result.close();
result = null;
closeConnection();
} else
System.out.println(“Error: No active Connection”);
} catch (Exception e) {
e.printStackTrace();
}
dm = null;
}
private void closeConnection() {
try {
if (connection != null)
connection.close();
connection = null;
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Test myDbTest = new Test();
myDbTest.displayDbProperties();
}
}
Este es el error.
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
Error Trace in getConnection() : com.microsoft.jdbc.sqlserver.SQLServerDriver
Error: No active Connection
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at javaapplication1.Test.getConnection(Test.java:34)
at javaapplication1.Test.displayDbProperties(Test.java:55)
at javaapplication1.Test.main(Test.java:99)
GENERACIÓN CORRECTA (total time: 0 seconds)
estoy usando el ultimo jdbc que esta disponible.
sqljdbc4.jar
el que no tiene el 4 meda mas errores.
aa y tampoco me puedo conectar a Mysql con jdbc.
tengo windows 7 talvez es un problema de puertos pero lo desactive todos.
no se que puede ser.
Hola, prueba sustituyendo Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”); por Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“);
Buenas Tardes, una pregunta si puedes ayudarme como hiciste para correrlo en Android, no tengo ni la más mínima idea. Si puedes ayudarme en ese paso te lo agradeceria.
Saludos Cordiales,
hola, primero que todo gracias por el tutorial…yo tambien estoy realizando mi proyecto pero me encuentro con una duda…al trabajar en la tableta con conexion a internet y guardar mis datos, de una suben al servidor por esto no tengo problemas…el problema es cuando mi tableta no tiene acceso a internet, lo que he pensado es: guardar los datos que realizo en la sdcard de la tablet (esto ya lo tengo), y una vez la tableta detecte conexion a internet coger el archivo .db que he creado y subirlo al servidor..hay es donde necesito ayuda! :S
Buenas Noches Alejandro, para conectarme a la base de datos SQL Server, tengo que crear una activiy dentro del proyecto Android que se llame Test y agregar los jars.
Esto fue lo que realice (por favor corrígeme si estoy equivocado):
1.- Creación de Proyecto Android.
2.- ACtivity con el nombre Test.java
3.- Añado el jar de conexión
4.- Pruebo conexión
me da el siguiente error:
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:129), pid=7316, tid=648
# fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) Client VM (23.7-b01 mixed mode windows-x86 )
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Si puedes observa y guiarme te lo agradeceré o cualquiera que pueda guiarme.
Saludos,
Tienes el mismo problema que geekccs, debes ejecutar la aplicación como App Android: http://stackoverflow.com/questions/13030111/fatal-error-invalid-layout-of-java-lang-string-at-value
Saludos.
Buenas Alejandro necesito de tu ayuda, te indicare los pasos que estoy realizando para realizar la conexión Android-SqlServer 2008.
1.- Creación de Proyecto ANdroid.
2.- Activity de nombre Test.java
3.- Añado las librerias de sql server.
Me da el siguiente error:
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:129), pid=2184, tid=6032
# fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) Client VM (23.7-b01 mixed mode windows-x86 )
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\*************************************************************
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
No se si estoy creando bien la activity, o como puedo solucionar eso, soy nuevo programando en Android.
Échale un vistazo a este enlace de stackoerflow: http://stackoverflow.com/questions/13030111/fatal-error-invalid-layout-of-java-lang-string-at-value
Debes ejecutar la aplicación como Android, no como java.
Buenas, ese código Java o Android porque como android no se como correrlo, no se si creo una clase o creo una Activity en Android con el nombre de Test.
Soy nuevo en Android
Hola Alejandro y Edwin.
Una pregunta, he realizado la conexión para Android con la librería jtds 1.2.5.
Al probarla en un dispositivo Samsung, la aplicación va perfectamente y ejecuta las sentencias sin ningún problema.
Pero cuando lo hago en otro dispositivo que no es Android, la conexión me la devuelve null, y no entiendo la diferencia que puede haber.
Sabéis de alguien que le haya podido pasar lo mismo? No cambio nada, y todo es idéntico.
El código es este:
String usuario = “sa”;
String password = “******”;
String url = “jdbc:jtds:sqlserver://”;
String servidor =”1192.168.0.25:1433″;
String bbdd = “nombreBD”;
String conexion = url + servidor + “/” + bbdd+”; user=sa; password=******;”;
Class.forName(“net.sourceforge.jtds.jdbc.Driver”);
Connection conn = DriverManager.getConnection(conexion, user, password);
Si lo ejecuto desde un Samsung la variable conn me devuelve lo correcto, pero si lo hago desde otro, esta variable es null.
Muchas gracias
No sabría decirte, yo solo la he usado con Android. Qué dispositivo es?
Sí, sí, es con Android. Con cualquier dispositivo Samsung me funciona perfectamente. Pero lo he probado con otros como HTC o SonyEricsson (también Android) y no funciona.
El sistema operativo en todos los casos era el mismo, así que por ahí no va el error.
Buenas Alejando, sera que puedes indicarme que estoy realizando mal al correr la aplicación, me da el siguiente error:
The TCP/IP connection to the host localhost, port 1433 has failed. Error: “localhost/127.0.0.1:1433 – Connection refused. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.”.
He verificado y la base de datos tiene todo habilitado y estoy utilizando el API 8 (Versión 2.2).
Saludos,
Saludos, disculpa no se si este mal yo o el código de tu ejemplo no aparece y me interesa bastante.
Asegúrate de que tienes JavaScript activado en el navegador. Si usas adblock puede que esté impidiendo mostrar el código. Saludos.
hola amigo… mira tengo un proyecto q entregar consiste en hacer una coneccion a una base de datos en internet por medio del movil (android) y ando perdido en este tema podras ayudarme ???
Hola, no has conseguido echar a andar el ejemplo? Te da algún tipo de error?