Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL.
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>
