31 Mar 2010 @ 12:53 PM 

Hola amigos que tal, en esta entrega les traigo el como accesar a una base de datos (MySQL) desde el iPhone, a través de un WebService. En el ejemplo hago uso de DataSets, Procedimientos Almacenados, DataAdapters y DataRows, algunos se preguntaran ¿Qué son todas esas cosas? Bueno pues a continuación tratare de dar una breve explicación de cada uno de los elementos.

¿Qué es un DataSet?

Un DataSet es un modo desconectado de nuestra base de datos, los DataSets nos permiten recoger información, actualizar datos, eliminarlos, añadirlos, etc…

Como este es un modelo desconectado, los DataSets son independientes de la tecnología utilizada como base de datos. Por lo tanto podemos decir que un DataSet es un objeto independiente que no conoce ni la fuente ni el origen de los datos, esta libertad la consigue gracias al formato XML. Los DataSets pueden estar formados por varias tablas, vistas, relaciones etc.

Como ya habrán intuido un DataSet es una copia en memoria del modelo de nuestra base de datos por lo tanto tenemos tablas, renglones columnas etc. Existen 3 formas con las cuales podemos trabajar con los DataSets

  1. Creando objetos tipo DataTable para almacenarlos en el DataSet mediante programación.
  2. Llenando el DataSet con información de una base de datos utilizando un mediador entre ambos que es el DataAdapter.
  3. Trabajar con origenes de datos de tipo XML y también con un poco más de trabajo con orígenes tipo JSON.

Esta es una breve introducción al DataSet y no estoy cubriendo todo lo que puede hacer este increíble objeto, de hecho esta es una de las mayores ventajas que tiene .NET sobre cualquier otra tecnología. Si quieren buscar más información sobre este objeto, les recuerdo que Google it´s your friend, existe bastante información y ejemplos de los diferentes usos que tiene este objeto :) .

¿Qué es un DataAdapter?

Un DataAdapter no es más que un puente entre la base de datos y el DataSet, este objeto se encarga de recibir la información de la base de datos y darle el formato adecuado para llenar el DataSet.

¿Qué es un DataRow?

Un objeto DataRow como su nombre lo indica es un renglón de un DataTable, este se utiliza para extraer los valores de un reglón completo de una tabla, en el video queda creo yo un poco más claro su uso.

¿Qué son los Procedimientos Almacenados?

Los Procedimientos almacenados son características que vienen a partir de MySQL 5.0. Un procedimiento almacenado son un conjunto de comandos SQL que se almacenan en el servidor. Una vez hechos, los clientes no necesitan saber los comandos individuales para obtener la informacion necesaria si no que solo le mandan los parametros necesarios al servidor MySQL y el servidor se encarga de extraer la informacion necesaria solamente con los datos que el cliente le mando.

Algunos casos en que los procedimientos almacenados pueden ser muy útiles:

  • Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos.
  • Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las operaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejecutar algunos procedimientos almacenados.

Los procedimientos almacenados son muy parecidos a las funciones que realizamos en una clase de .NET, nosotros le mandamos los parámetros necesarios a la función, nosotros no sabemos el funcionamiento interno de esa función pero si sabemos que nos regresara la información que necesitamos. Esto reduce drásticamente el tráfico entre el servidor de base de datos y el cliente, ya que en vez de mandarle muchísimas cadenas string de consultas SQL, solo le mandamos parámetros a esa función.

Bueno espero les sirva el video para sus futuros proyectos, verán que es bastante sencillo. Ya saben cualquier duda, comentario, sugerencia la pueden poner aquí y tratare de responder lo mas rápido posible. Saludos!


Acceso a MySQL desde el iPhone desde cero utilizando monotouch from Alex Soto on Vimeo.

Comparte!!:
  • email
  • RSS
  • Print
  • Twitter
  • Facebook
  • Google Bookmarks
  • Digg
  • del.icio.us
  • Sphinn
  • Mixx
  • Blogplay
  • LinkedIn
  • Live
  • MySpace
  • Posterous
  • StumbleUpon



Otros Articulos Relacionados

Posted By: Alex Soto
Last Edit: 31 Mar 2010 @ 12:58 PM

EmailPermalink
Tags


 

Responses to this post » (22 Total)

 
  1. Acceso a MySQL desde el iPhone utilizando MonoTouch C# desde cero…

    Thank you for submitting this entry – Trackback from MonoTouch.Info…

  2. [...] This post was mentioned on Twitter by KodiakMx and Samuel Arellano, Roger Navarro Perez. Roger Navarro Perez said: RT @EnriqueAguilar: Aportación de @dalexsoto de WebService con MySQL e invocado por IPhone en C# con #MonoTouch http://bit.ly/bxM8F9 [...]

  3. creps says:

    Hola Alex,

    soy alex de España, jejeje ahora registrado jijij ;-) . Oye voy a mirar el gran tutorial que has colgado y te comentaré que tal, oki? Queria volver a darte la enhorabuena por el manual realizado en este post.

    Seguimos hablando!

    Saludos,
    Creps (alex)

    • Alex Soto says:

      Esta bien Alex, espero tus comentarios amigo. Saludos!!

      • creps says:

        :-D :-D :-D plas plas plas plas!!! como me sospechaba una pasada de tutorial, ENHORABUENA Alex!!! ;-D

        Estoy teniendo algunos problemas con las clases, bueno más que nada con las tareas que son para manejarme con diferentes vistas en el iphone. Si quiero que vaya a otra pantalla (view) etc… nose si es que en Mono todavía no está implementado o va a ser que yo todavía no lo saco. ¿Crees que seria bueno hacer un pequeño tutorial para trabajar con diferentes ventanas o tabs?

        Una vez más, enhorabuena crack!! ;-D

        Saludines!
        Alex.

        • Alex Soto says:

          Hola Alex, Claro que si hago un tuto con respecto a los views y subviews en monotouch, solo que este tema es muy extenso, ya que existen muchisimas maneras de manejarlas, y mas que nada depende mucho lo que quieras manejar, por ejemplo con este codigo puedes detectar las vistas y las subvistas que tengas cargadas

          
          foreach(var view in this.window.Subviews)
          {
          	Console.WriteLine ("View" + view.ToString());
          	foreach(var subView in this.view.Subviews)
          	{
          		Console.WriteLine ("SubView: " + subView.ToString());
          	}
          }
          

          Dame unos días en lo que armo un buen ejemplo de vistas y subvistas para poder publicarlo va?

          Saludos Alex

          • creps says:

            oooou yeaah! don’t worry!

            si que estaría bien un tuto de ejemplo con vistas, subvistas y tabs para asi tener bien clara la teoria y saber estructurar bien las aplicaciones en mono.

            Enhorabuena Alex!

            Saludos,
            Alex

      • Jose Luis says:

        Hola, Alex me inscribi a tu blog solo para felicitarte por tu sitio y la tematica .
        Con cual programa creastes tu sitio?

  4. Jose Luis says:

    Muy buen toturial gracias, una duda para el desarrollo en iPhone utilizas mono Touch?

    • Alex Soto says:

      Hola Jose Luis primero que nada bienvenido al blog, respondiendo a tu pregunta, te confirmo que si estoy utilizando MonoTouch, hasta el momento se me hace la mejor alternativa que hay para el desarrollo en iPhone, y mas si es que ya tenemos experiencia sobre la plataforma .NET. Saludos Jose Luis

  5. Jose Luis says:

    OK, gracias por responder cuanto te costo la luicencia o es de prueba

  6. creps says:

    Hola Alex!!

    Como va todo? por aqui con ganas de seguir leyendo tus grandes tutoriales.

    Vas a poder realizar un tutorial sobre vistas y tabs?

    Un saludo muy grande!!

    Alex

  7. Dome says:

    hola alex,
    en primer lugar en hora buena por tus tutoriales.

    Pensaba replicar tu ejemplo. He creado una base de datos sencilla y 3-4 procedimintntos sobre tu estilo. El servidor en un ordenador linux y las query funcionan.

    Mi pregunta es : para replicar tu aplicacion puedo poner en la parte

    MYSQLConnection(server = 10.10.10.1, .. . .. . . )

    es decri la direcicon IP del ordenador donde corre el servidor.
    Otra cosa, no tengo claro como usar lo que tu llamas System.Data…

    Un saludo,
    Dome

  8. ivanbyte says:

    Hola Alex

    Soy nuevo en este blog y me parecio muy interesante tu tutorial de MySQl con MonoDevelop, pero me di cuenta que los requierimientos del monotouch te pide el iPhone SDK 3.2, yo tengo la 3.1.2, Crees que exista incompatibilidad con esta version? o donde puedeo bajar la 3.2 porque ya no se puede conseguir de la pagina de desarrollador de Apple

    Saludos

  9. Salva says:

    Genial el Post Alex. Habia visto algun otro codigo usando monotouch para acceder a bases de datos locales con sqlite pero no remotas.
    De esta manera es super sencillo. lo unico que necesito ya es conectar a una base de datos de sql server en lugar de mySql. Espero que pueda encontrar el adaptor.

    De nuevo congrats, un saludo y sobre todo gracias por enseñarnos!!

  10. salva says:

    Buenas,

    He estado intentando debuggar una aplicacion e incluso en las mas simples, cuando pongo el breckpoint, la aplicacion se para pero unos 20 segundos despues el debugger deja de funcionar.

    He leido por ahi algunos comentarios de gente que le sucede lo mismo.

    Queria preguntarte si a ti te pasa lo mismo o si por el contrario has podido depurar tu aplicacion en el simulador

    Un saludo y gracias

  11. Xavi says:

    hola alex,

    soy Xavi (desde España),

    primero de todo muchisimas gracias por hacer un tutorial tan extenso y bueno como este.

    en segundo lugar tengo una consulta, he conseguido crear el webservice y me funciona a la perfeccion si lo ejecuto desde monodevelop, pero yo lo que quiero es extraerlo y ponerlo en el localhost.

    lo he intentado pero no hay manera, si lo extraigo todo y lo pongo en localhost, al cargar la pagina me sale el codigo de dentro de la pagina .asmx:

    puedes explicarme como lo debo hacer para que funcione si lo alojo en el localhost?

    muchisimas gracias!

Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

 Last 50 Posts
Change Theme...
  • Users » 151
  • Posts/Pages » 6
  • Comments » 58
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight