IDE utilizado: Eclipse + ADT.
– Lo primero que se debe de hacer es agregar el jtds (.jar) al proyecto android deseado en la carpeta “libs”, posteriormente se debe hacer click derecho al proyecto y luego click izquierdo a la opción Refresh.
– Luego abrir desde el eclipse el archivo MainActivity.java que se encuentra en la carpeta src y dejarlo de esta manera:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.DialogInterface.OnCancelListener; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private Button ver; private ProgressDialog pDialog; private MiTareaAsincronaDialog tarea2; ArrayList nicks = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ver = (Button)findViewById(R.id.ver); ver.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { pDialog = new ProgressDialog(MainActivity.this); pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); pDialog.setMessage("Procesando..."); pDialog.setCancelable(true); pDialog.setMax(100); tarea2 = new MiTareaAsincronaDialog(); tarea2.execute(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } //Tarea Asincronona para sacar los puestos del ranking. private class MiTareaAsincronaDialog extends AsyncTask<Void, Integer, Boolean> { @Override protected Boolean doInBackground(Void... params) { try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://IP:1433/DB", "USER", "PASSWORD"); //En el stsql se puede agregar cualquier consulta SQL deseada. String stsql = "Select TOP 60 Name from Character"; // String stsql = "SELECT @@VERSION"; Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(stsql); // rs.next(); //System.out.println(rs.getString(1)); while(rs.next()){ nicks.add(rs.getString("Name")); } //Cerramos la conexión conn.close(); publishProgress(100); return true; } catch (SQLException se) { System.out.println("oops! No se puede conectar. Error: " + se.toString()); } catch (ClassNotFoundException e) { System.out.println("oops! No se encuentra la clase. Error: " + e.getMessage()); } return false; } @Override protected void onProgressUpdate(Integer... values) { int progreso = values[0].intValue(); pDialog.setProgress(progreso); } @Override protected void onPreExecute() { pDialog.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { MiTareaAsincronaDialog.this.cancel(true); } }); pDialog.setProgress(0); pDialog.show(); } @Override protected void onPostExecute(Boolean result) { pDialog.dismiss(); if(result) { //Enviamos los resultados a la segunda actividad Intent intent = new Intent(MainActivity.this, SecundaryActivity.class); intent.putExtra("nicks", nicks ); startActivity(intent); } } @Override protected void onCancelled() { Toast.makeText(MainActivity.this, "Problema!", Toast.LENGTH_SHORT).show(); } } }
– Aclaración: Dicho ejemplo lo que hace es consultar a una DB, y el resultado lo transfiere a otra actividad, que toma eso y lo muestra.
– Posteriormente se debe de agregar el permiso para poder acceder a una base de datos remota, para eso deben de agregar lo siguiente en el AndroidManifest.xml:
. . <uses-permission android:name="android.permission.INTERNET" /> </manifest>