Вы находитесь на странице: 1из 23

CONEXIONES VISUAL BASIC Y SQL SERVER

Duran Mrquez, Jorge Alberto Guevara Salinas, Christian lvaro Flor Rodrguez, Alberto Vera Morales, Julio Cesar

CONEXIONES USANDO DAO

Un Objeto de Acceso a Datos, Data Access Objeto (DAO) es un componente que proveen un interfaz comn entre una aplicacin y uno o ms dispositivos de almacenamiento de datos. Los componentes DAO utilizan la tecnologa OLE. Es posible utilizar el motor JET a la hora de acceder a Microsoft SQL Server o a cualquier otra base de datos que disponga de un driver de ODBC, con el mismo cdigo DAO.

Ejemplo usando DAO

El siguiente cdigo se utiliza con DAO para abrir una base de datos ODBC, procesa un query, y devuelve una serie de records. Este cdigo establece una conexin "DSN-less"

sql = "Select * From titles" Set ws = DBEngine.Workspaces(0) Dim cnStr As String cnStr = "driver={SQL Server};server=mysvr;" & _ "database=pubs;uid=myuid;pwd=mypwd" Set db = ws.OpenDatabase(Name:="PUBS", Exclusive:=False, _ ReadOnly:=False, Connect:=cnStr) Set rs = db.OpenRecordset(sql, dbOpenDynaset) rs.MoveLast MsgBox "DAO: " & Str(rs.RecordCount) & " filas devueltas."

CONEXIONES USANDO RDO

RDO (Objetos de Acceso a Datos Remotos) Con RDO y el control RemoteData, nuestras aplicaciones pueden acceder a fuentes de datos ODBC sin utilizar un motor local. Aunque se puede acceder a cualquier fuente de datos ODBC con RDO y el control de Acceso Remoto, donde conseguiremos el mayor rendimiento ser cuando trabajemos con servidores de bases de datos, como Microsoft SQL Server. Empleando RDO, podemos trabajar con todo tipo de cursores desde los ms simples a los ms complejos.

Podemos ejecutar querys que devuelvan cualquier nmero de resultados, o ejecutar procedimientos almacenados que devuelvan resultados con o sin parmetros y valores de retorno. Podemos limitar el nmero de filas que se devuelven, y monitorizar todos los mensajes y errores generados por la fuente de datos remota sin que esto afecte a la query que se est ejecutando. RDO permite operaciones tanto sncronas como asncronas, por lo que nuestra aplicacin no queda bloqueada mientras se ejecutan largas querys.

DIFERENCIAS ENTRE ADO Y RDO

El modelo DAO se emplea con bases de datos ISAM, Access y ODBC databases. El modelo RDO se halla diseado nicamente para bases de datos ODBC, y ha sido optimado para su uso contra Microsoft SQL Server 6.0 y Oracle. El modelo RDO puede tener mayor rendimiento, ya que todo el proceso se lleva a cabo en el servidor y no en nuestra mquina. Con el modelo DAO parte del proceso se lleva a cabo en nuestra mquina local por lo que con este modelo, el rendimiento puede no ser tan bueno.

El modelo DAO emplea el motor del Jet. Sin embargo, el RDO no emplea el motor del JET, sino el motor ODBC del servidor. El modelo RDO es capaz de llevar a cabo querys sncronas o asncronas. El DAO tiene limitaciones a la hora de ejecutar este tipo de querys. El modelo RDO puede trabajar con cursores complejos, los cuales se encuentran limitados en el DAO.

Ejemplo usando RDO

'El siguiente cdigo se utiliza con DAO para abrir una base de datos ODBC, procesa un query asncrona, y devuelve una serie de records. Este cdigo establece una conexin "DSN-less"
Dim sql As String sql = "Select * From titles" Set en = rdoEngine.rdoEnvironments(0) With en .CursorDriver = rdUseOdbc End With Dim cnStr As String cnStr = "driver={SQL Server};server=mysvr;" & _database=pubs;uid=myuid;pwd=mypwd" Set cn = en.OpenConnection(DSName:="", _ Prompt:=rdDriverNoPrompt, Connect:=cnStr) Set rs = cn.OpenResultset(Name:=sql, Type:=rdOpenKeyset, _ Option:=rdAsyncEnable) While rs.StillExecuting DoEvents Wend rs.MoveLast MsgBox "RDO: " & Str(rs.RowCount) & " filas devueltas." rs.Close

CONEXIONES USANDO ADO

ADO es un intermediario entre el programa y la base de datos. Usando ADO, el programa se comunica con la base de datos, consulta, edita, inserta, borra, registros, aade tablas, etc. ADO a su vez se comunica con la base de datos a travs de un proveedor de datos Principales componentes de ADO

Connection (Permite establecer una conexin con la base de datos) Recordset (Maneja un conjunto de records de la base de datos) Command (Permite enviar rdenes SQL para ser ejecutados por la base de datos)

Private cnn As ADODB.Connection Private rst As ADODB.Recordset Private Sub cmdAbrir_Click() Dim tField As ADODB.Field

'Creando los objetos conexin y recordset


Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset

'Abriendo la base usando las credenciales de Windows


cnn.Open "Provider=SQLOLEDB; " & _ "Initial Catalog=pubs; " & _ "Data Source=(local)\NETSDK; " & _ "integrated security=SSPI; persist security info=True;"

'Abriendo el recordset indicando la tabla a la que queremos acceder


rst.Open "SELECT * FROM authors", cnn, adOpenDynamic, adLockOptimistic

Asignando los nombres de los campos al combo


With cboCampos .Clear

Cerrando el recordset y la conexin


rst.Close cnn.Close End Sub

CONEXIONES USANDO ADO.NET

ADO.NET es una evolucin del modelo de acceso a datos de ADO que controla directamente los requisitos del usuario para programar aplicaciones escalables. Se dise especficamente para el Web, teniendo en cuenta la escalabilidad, la independencia y el estndar XML.

ADO.NET utiliza algunos objetos ADO, como Connection y Command, y tambin agrega objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter. La diferencia ADO.NET y las arquitecturas de datos anteriores es que existe un objeto, DataSet, que es independiente y diferente de los almacenes de datos. Por ello, DataSet funciona como una entidad independiente. Se puede considerar el objeto DataSet como un conjunto de registros que siempre est desconectado y que no sabe nada sobre el origen y el destino de los datos que contiene. Dentro de un objeto DataSet, hay tablas, columnas, relaciones, restricciones, vistas, etc.

El objeto DataAdapter es el objeto que se conecta a la base de datos para llenar el objeto DataSet. En el pasado, el procesamiento de datos se basaba principalmente en la conexin. Ahora, con el fin de proporcionar a las aplicaciones multinivel mayor eficacia, se est adoptando para el procesamiento de datos un enfoque basado en mensajes que manipulan fragmentos de informacin. En el centro de este enfoque se sita el objeto DataAdapter, que proporciona un puente entre un objeto DataSet y un almacn de datos de origen para recuperar y guardar datos. Para ello, enva solicitudes a los comandos SQL apropiados que se ejecutan en el almacn de datos.

Objetos Usados en las conexiones

La conexin a SQl Server la realizaremos con el objeto SqlConnection del espacio de nombre System.Data.SqlClient. .NET framework proporciona varios objetos Connection, uno para cada tipo de espacio de nombres. De este modo para OleDb existe un objeto OleDbConnection del espacio de nombre System.Data.OleDb y para ODBC existe un OdbcConnection del espacio de nombres System.Data.Odbc si utilizamos .NET Framework 1.1 o del espacio de nombres Microsoft.Data.Odbc si utilizamos la versin 1.0.

Objetos DataSet. Para almacenar datos sin formato, datos XML y datos relacionales, as como para configurar el acceso remoto y programar sobre datos de este tipo. Objetos DataAdapter. Para insertar datos en un objeto DataSet y reconciliar datos de la base de datos. Objetos DataReader. Proporcionan una forma de leer una secuencia de registros de datos slo hacia delante desde un origen de datos SQL Server.

EJEMPLO DE CONEXIN VB Y SQL SERVER


1.-Crear objetos de ADO.NET
'Crear objetos de ADO.NET.
Private myConn As SqlConnection Private myCmd As SqlCommand Private myReader As SqlDataReader Private results As String

El objeto SqlConnection establece una conexin de base de datos, el objeto SqlCommand ejecuta una consulta a la base de datos y el objeto SqlDataReader recupera los resultados de la consulta.

2.-Utilizar el objeto SqlConnection para abrir la conexin de SQL Server


Para configurar la cadena de conexin del objeto SqlConnection, Crear un objeto Connection.
myConn = New SqlConnection("Initial Catalog=Northwind;" & _ "Data Source=localhost;Integrated Security=SSPI;")

Crear un objeto Command.


myCmd = myConn.CreateCommand myCmd.CommandText = "SELECT FirstName, LastName FROM Employees"

'Abrir la conexin. myConn.Open()

3.-Utilizar el objeto SqlDataReader para recuperar datos de SQL Server


myReader = myCmd.ExecuteReader() Cuando se ejecuta el mtodo myCmd.ExecuteReader, SqlCommand recupera dos campos de la tabla y crea un objeto SqlDataReader. 'Concatenar el resultado de la consulta en una cadena.
Do While myReader.Read() results = results & myReader.GetString(0) & vbTab & _ myReader.GetString(1) & vbLf Loop

'Mostrar resultados. MsgBox(results) El mtodo myReader.Read devuelve un valor booleano, que indica si hay ms registros que se puedan leer. Los resultados de la consulta SQL se muestran en un cuadro de mensaje. Cerrar los objetos SqlDataReader y SqlConnection: 'Cerrar el lector y la conexin de base de datos.
myReader.Close() myConn.Close()

Conclusiones

El modelo RDO puede tener mayor rendimiento, ya que todo el proceso se lleva a cabo en el servidor y no en nuestra mquina. Con el modelo DAO parte del proceso se lleva a cabo en nuestra mquina local por lo que con este modelo, el rendimiento puede no ser tan bueno.

Conclusiones

Aunque se puede acceder a cualquier fuente de datos ODBC con RDO y el control de Acceso Remoto, donde conseguiremos el mayor rendimiento ser cuando trabajemos con servidores de bases de datos, como Microsoft SQL Server.

Conclusiones
Usando DAO, RDO, ADO Y ADO.NET, el programa se comunica con la base de datos, consulta, edita, inserta, borra, registros, aade tablas, etc. Tenemos 4 tipos importantes en la conexin entre VB y SQL Server que son DAO, RDO y ADO. Y su evolucin ADO.NET

Вам также может понравиться