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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | 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:
1 2 3 4 5 | . . <uses-permission android:name= "android.permission.INTERNET" /> </manifest> |