viernes, 17 de febrero de 2012

Conectar android a SQL Server 2008

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:

miércoles, 15 de febrero de 2012

Conexión desde android a oracle

Este post lo hago porque me he sumado al esfuerzo y apoyo de Alejandro Alcalde del blog www.elbauldelprogramador.com, donde también se ha publicado este mismo post, acá, ya que él implementó la conexión de android con SQLSERVER 2008. En vista de que en internet casi no hay información de que alguien lo ha realizado, y para empeorar las cosas hay muchas afirmaciones de que no se  puede conectar android a ninguna base de datos, solamente con un webservice (y no se recomienda otra  forma que no sea esta). Yo encontré nada más el post de Alejandro Alcalde, a partir de ahí pude realizar la  conexión y me di a la tarea de implementarlo para oracle y mysql también y compartirlo con quien lo necesite.
(En este post tratamos el caso de oracle).

Escenario:
* Base de datos Oracle 10g.
* Android API 2.2.
* Eclipse Helios Service Release 2.

NOTA: Antes de lograr que funcionara tuve problemitas con encontrar la clase jdbc adecuada para conectarme. Probé las siguientes sin éxito: ojdbc5.jar y ojdbc6.jar. En el caso de la ojdbc5.jar yo la utilizo en una aplicación que hice anteriormente, conectándome a la misma base de datos, pero no me funciona con android en este caso.

Así que en el tercer intento con ojdbc14.jar acerté.

A continuación les detallo puntualmente la implementación de la clase:


1. Agregar al buildpath la librería ojdbc14.jar. La cual pueden bajar del siguiente enlace:

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html


2.  Clase de conexión:

***El esquema SCOTT viene con datos de prueba, cuando instalé mi base de datos.