VB-MUNDO 2.0 - Programacion Visual


/
Inicio   |  Quienes Somos  | Contactenos 



 
Web Foro Portal
 

 20 Ultimos Tutoriales (1015)

Introduccion Rapida a LinQ

Base de Datos en Delphi 7

Java 3D

Algoritmos en Borland C++

Programacion en PHP

Pseudo Codigo

Patron de Distribucion de Aspectos

Ordenamiento de Burbuja

Introduccion Expresiones Regulares

Descomposición LU y método de Gauss-Seidel

Algoritmos Propuestos

Windows Vista - Internet

Windows Vista - Impresion

Manual Completo Crystal Reports 11 - XI

Programación en BASH Shell

Apache - Configuracion

SCORM RunTime Environment

Tablas Basicas por Modulos de SAP

Manual de SAPSCRIPT

Manual de Instalación de MINISAP


ver Todos...


 Enlaces Premium





Links Relacionados
 elguille
 BuscoAfiliados
 SoloTuWeb
 ElQuintero
 DotNetSolidario

Patrocinados por...



 

ADO vs ADO.NET

ADO vs ADO.NET

En el primer libro de .NET que adquirí, uno de los capítulos mas importantes y resonantes era el de ADO.NET.

Lamentablemente en ese libro ya me avisaban sobre un cambio terrible entre una versión y otra de ADO, y de alguna manera daba la sensación de que el cambio seria tan grande que daban ganas de no continuar por ese camino.
En primer lugar pasaré a mencionarles (para el asombro de uds.) algunos de los términos que no se incluyen en ADO.NET.
 
 


EOF
RECORDSET
MOVENEXT
MOVEFIRST
MOVELAST
MOVEPREVIOUS
RECORDCOUNT


Y seguramente muchos más que iré descubriendo con el paso del tiempo.

En ADO la cosa es más o menos así…

Creamos una Conexión a la Base de Datos.
Ejecutamos un comando y llenamos un Objeto RECORDSET con una tabla conformada por el resultado simple o compuesto por varias tablas mediante una sentencia SQL.
Mientras estamos conectados, recorremos y/o modificamos datos de nuestro Recordset los cuales se actualizan en nuestras Bases de Datos.
Cerramos la Conexión.

 En ADO.NET la cosa cambia y bastante… veamos.
 
Creamos un Objeto SqlClient.SqlConnection (Para SQL Server) o un Odbc.OdbcConnection (Para Clientes ODBC) o OleDb.OleDbConnection (Para Clientes OleDB)
Creamos un Objeto SQLDataAdapter o como corresponda SQL, ODBC u OLEDB (Luego detallaré la función de cada componente).
Creamos un Objeto Dataset el cual se llenará gracias a una instrucción del DataAdapter.
El DataSet a diferencia del Recordset, puede contener multiples elementos DataTables o sea TABLAS.
Inmediatamente posterior al llenado del DataSet, la conexión con la BD se cierra. Y se trabaja con los datos de modo desconectado.
Una vez que necesitemos actualizar los datos en nuestras BD el DataAdapter (que no es mas que una aplicación de Interfase) reabre la conexión automáticamente y vuelca los cambios.
Se cierra la conexión definitivamente.
 
En base a lo que hemos expresado, quedan innumerables cuestiones que aclarar y muchos misterios por develar.
 Intentaré explicarlo de la manera mas clara como me sea posible.
  
CONNECTION

 Ya no existe en ADO.NET un simple objeto Connection al cual se le indicaba el proveedor de SQL SERVER , o alguno de ODBC u OLEDB. Ahora existe un Objeto Connection para cada una de estas variantes.

 SQLClient.SQLConnection (SQL Server)
ODBCClient.ODBCConnection (ODBC)
OLEDBClient.OLEDBConnection (OLEDB)

 Tanto SQLClient, como ODBCClient, como OLEDBClient, son colecciones que contienen muchísimos métodos y propiedades inherentes a cada tipo de conexión en particular.

 La sintaxis general es la siguiente…

  Private _SqlConexion As Data.SqlClient.SqlConnection
 
_SqlConexion = New SqlClient.SqlConnection
_SqlConexion.ConnectionString = ConexionStr
_SqlConexion.Open()
 

DATAADAPTER

El DataAdapter es uno de los participes necesarios mas importantes en este nuevo paradigma. Es ni mas ni menos que el que hace todo entre la conexión y el DataSet, se encarga de conectar y desconectar los datos, de llevar la información al DataSet y el de controlar cualquier tipo de inconsistencia entre los datos leidos y los reales a la hora de actualizar. Y lo mas importante… todo eso lo hace solapadamente sin que el usuario deba preocuparse.
La sintaxis general es la siguiente….

Private _SqlDataAdap As Data.SqlClient.SqlDataAdapter
Private _Dataset As Data.DataSet
 
_Dataset = New Data.DataSet
 
_SqlConexion = New SqlClient.SqlConnection
_SqlConexion.ConnectionString = ConexionStr
_SqlConexion.Open()
 
_SqlDataAdap = New SqlClient.SqlDataAdapter(“Select * from clientes”,_SqlConexion)
 _SqlDataAdap.Fill(_Dataset)


Como vemos en el código Ejemplo.. en el mismo DataAdapter ejecutamos el comando y luego mediante el método FILL le adicionamos una DataTABLE a nuestro DataSet.
En caso de necesitar que un DataSet contenga multiples DataTables deberemos crear distintos Objetos DataAdapter y todos colgados de la misma conexión y todos llenando mediante el método FILL al mismo DataSet.

Cuando EDITAMOS, ADICIONAMOS, BORRAMOS o UPDATEAMOS datos de nuestros DataSets, en el momento en que indicamos al ADO.NET que queremos actualizar los cambios o novedades, el DataAdapter ReConecta a la BD y compara los valores leidos originalmente con los que encuentra en ese momento… de haber cambios.. asume que algun usuario ha modificado los datos mientras nosotros estabamos desconectados, y nos devuelve un error manejable para que decidamos que hacer.

DATASET

El DataSet será nuestro Objeto Estrella… Todo lo haremos ahí, y tiene una arquitectura y una filosofia muy distinta a los viejos RecordSets.
Por empezar.. puede contener varias tablas resultantes de multiples consultas.. Cada una de esas tablas se denomina DataTable.
 
DataSet à DataTable(0)
    à DataTable(1)

La manera de Recorrer cada DataTable es la misma en la que recorremos una GRILLA, y no existe el concepto de EOF o BOF
No existen Registros sino ROWS y pueden recorrerse con un simple FOR NEXT o con un FOR EACH.

Ejemplo..

Recorrer

For i = 0 to MyDataSet.DataTable(0).Rows.Count -1
      Messagebox.show MyDataSet.DataTable(0).rows(i)(“NombreCliente”)
Next


Como verán no existe el RECORDCOUNT !!! simplemente le pedimos la cantidad de Rows, al igual que una Grilla.
Asignar

autores.Rows(0).BeginEdit()
autores.Rows(0)("au_lname") = "Negro"
autores.Rows(0).EndEdit()


'hasta aquí modifique localmente
'Update manda los cambios a la base

da1.Update(ds, "authors")

Esta es una simple muestra del potencial de ADO.NET e incorpora la filosofia de trabajar desconectados de la BD lo que evita errores y sobrecarga en el motor de BD, imaginen 100.000 usuarios en una página web accediendo concurrentemente a la misma Tabla.. Imposible hacer si no se desconectan automáticamente.

 ADO.NET es muchísimo mas de lo que acabo de mostrar.. de hecho.. dudo de que haya mostrado el 1 % de su estructura, Pero nos da un pequeño acercamiento a su estructura y sintaxis.


 

Datos del Autor

 Nombre
     Pablo Gustavo Tilotta
 Ubicación
     Buenos Aires - Argentina

Si quieres conocer más sobre Chiaravel haz clic aquí
Si quieres acceder a nuestros foros haz clic aquí
 

 Explosión de Dinero (El segundo libro de Javier Buckenmeyer)

VISUAL BASIC - GOOGLETESTAD - ASP - ASP.NET - MANEJO DE FECHAS SQL SERVERDescubre el libro que esta cambiando la forma de ver a los sitios web. Descubre como optimizar tu sitio de forma de obtener así gran cantidad de ingresos desde Google AdSense.

Escrito por Javier Buckenmeyer (SEO de VB-MUNDO) y traductor del libro "Secretos de ADSense".

El manual explica todo lo que hay que saber antes de hacer una página Web con AdSense. Mi libro te explica cómo se gana dinero con AdSense desde el principio (No después de horas y horas de trabajo cuando ya es demasiado tarde y hay que empezar de nuevo).

ver detalles...

Códigos Fuente

CODIGOS FUENTE PROGRAMACION VISUAL BASICDescarga desde nuestra exclusiva sección de códigos fuente, todas las aplicaciones que desees y utiliza ese código en tus aplicaciones para dotarlas de la mayor versatilidad posible.

Envianos tu propios códigos a aportes@vb-mundo.com

ver códigos...

 Notas Técnicas....

NOTAS TECNICAS PROGRAMACION VISUAL - GOOGLETESTADAccede a nuestra sección de Notas Técnicas, escritas por nuestro Staff y por otros prestigiosos colaboradores. Notas sobre informática en General, VB.NET, C#, y Hardware. Conviertete tu también en NOTERO de VB-MUNDO y gánate tu propia sección y un link (no reciproco) hasta tu sitio web. Deseas escribir para nosotros ? 

Envianos tus notas a foro @ vb-mundo.com

ver sección de notas...


Copyright © 2005-2007 VB-MUNDO. Todos los derechos reservados.
Foro Programacion | Foro Visual Basic | Foro Visual Basic.NET

Mi Foro Espiritual 

Archivo fotográficodiseño webvidenciatarotHoteles con campo de golfcursos para secretariaspisos en tenerifeanuncios gratis