Base de datos

20
Lic. Victor Pozo Díaz – SQL Server y Visual Basic 1 2013 Victor Pozo Díaz ACCESO A BASE DE DATOS Desde Visual Basic 6.0 El control de datos ADO (Objetos de Datos ActiveX) El control de datos ADO usa Objetos de Datos ActiveX (ADO) para crear de una manera rápida conexiones entre controles de enlace de datos y proveedores de datos. Los controles más utilizados para enlace de datos, ComboBox, TextBox. De manera adicional, Visual Basic incluye distintos controles ActiveX de enlace de datos, como los controles DataGrid. El objeto Connection El objeto connection representa una sesión con el origen de los datos. La función de este objeto es recoger todas la información del proveedor de los datos que se va utilizar para crear un objeto recordset. Para crear una variable de tipo connection debemos hacer lo siguiente: Public conexión as New ADODB.Connection ‘crear la variable connexion de tipo Connection Luego se debe abrir la conexión : Conexión.open “DSN=ORIGENBIBLIO”;uid=;pwd=;” ‘Si trabaja con Origen de datos (ODBC) Donde: DSN Nombre del origen de datos creado por el usuario UID nombre del usuario que abre la conexión PWD Clave utilizada por el usuario para abrir la conexión ó conexion.Open "DRIVER=SQL Server;SERVER=WINDOWSSP4;DATABASE=COMISARIA;UID=;PWD=;" Donde: WINDOWSSP4; Nombre del equipo o servidor de BD. COMISARIA; Nombre de la base de datos en SQL Server. Propiedades relacionadas con el control ADO Propiedad Descripcion Sintaxis y/o ejemplo Backcolor devuelve o establece el color de fondo de un objeto. BackColor = QBColor(Rnd * 15) ConnectionString Contiene la información que se utiliza para establecer una conexión a un origen de datos. PROVIDER=MSDASQL; dsn=asistencia;uid=;pwd=; RecordSource Devuelve o establece la instrucción o la consulta con que se obtiene un conjunto de registros. select Nombres,Materno,Paterno from Empleado;

description

Descripcion de conceptos de base de datos

Transcript of Base de datos

Page 1: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

1

2013Victor Pozo Díaz

ACCESO A BASE DE DATOS Desde Visual Basic 6.0

El control de datos ADO (Objetos de Datos ActiveX)

El control de datos ADO usa Objetos de Datos ActiveX (ADO) para crear de una manera rápidaconexiones entre controles de enlace de datos y proveedores de datos.

Los controles más utilizados para enlace de datos, ComboBox, TextBox. De manera adicional,Visual Basic incluye distintos controles ActiveX de enlace de datos, como los controles DataGrid.

El objeto Connection

El objeto connection representa una sesión con el origen de los datos. La función de este objeto esrecoger todas la información del proveedor de los datos que se va utilizar para crear un objetorecordset.

Para crear una variable de tipo connection debemos hacer lo siguiente:

Public conexión as New ADODB.Connection ‘crear la variable connexion de tipo Connection

Luego se debe abrir la conexión :

Conexión.open “DSN=ORIGENBIBLIO”;uid=;pwd=;” ‘Si trabaja con Origen de datos (ODBC)

Donde:

DSN Nombre del origen de datos creado por el usuarioUID nombre del usuario que abre la conexiónPWD Clave utilizada por el usuario para abrir la conexiónóconexion.Open "DRIVER=SQL Server;SERVER=WINDOWSSP4;DATABASE=COMISARIA;UID=;PWD=;"

Donde:

WINDOWSSP4; Nombre del equipo o servidor de BD.COMISARIA; Nombre de la base de datos en SQL Server.

Propiedades relacionadas con el control ADO

Propiedad Descripcion Sintaxis y/o ejemploBackcolor devuelve o establece el color de fondo

de un objeto.BackColor = QBColor(Rnd * 15)

ConnectionString Contiene la información que se utilizapara establecer una conexión a unorigen de datos.

PROVIDER=MSDASQL;dsn=asistencia;uid=;pwd=;

RecordSource Devuelve o establece la instrucción o laconsulta con que se obtiene un conjuntode registros.

select Nombres,Materno,Paterno fromEmpleado;

Page 2: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

2

2013Victor Pozo Díaz

ToolTipText Devuelve o establece Información sobreherramientas.

objeto.ToolTipText [= cadena]

Visible Devuelve o establece un valor que indicasi un objeto es visible o está oculto.

objeto.Visible [= booleano]

Objeto Recordset

Un objeto Recordset representa los registros de una tabla base o los registros que se generan alejecutar una consulta.

Utilice los objetos Recordset para manipular datos en una base de datos a nivel de registro.Cuando utiliza objetos de acceso de datos, interactúa con los datos prácticamente utilizandoobjetos Recordset. Todos los objetos Recordset se construyen utilizando registros (filas) ycampos (columnas).

Ejemplo: Si Queremos trabajar con el objeto LECTOR debemos hacer lo siguiente:

Primero se debe declarar una variable de tipo recordset y luego crearlo de la siguiente forma:

Public tabLector As New ADODB.RecordsettabLector.Open “LECTOR”, adOpenDynamic, adLockOptimistic

ó

TabLector.Open “SELECT * FROM LECTOR”, adOpenDynamic, adLockOptimistic

Page 3: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

3

2013Victor Pozo Díaz

Page 4: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

4

2013Victor Pozo Díaz

EJEMPLO. Realizar las siguientes tareas en SQL-Server y Visual Basic 6.0:

§ Crear una base de datos en SQL-Server “BIBLIOTECA”§ Crear el objeto LECTOR§ Crear un origen de datos “ORIGENBIBLIO” que conecte con la base de datos

BIOBLIOTECA.§ Crear un proyecto en VB que permita Administrar el objeto LECTOR

1. CREAR UNA BASE DE DATOS EN SQL-SERVER “BIBLIOTECA” CON ELADMINISTRADOR CORPORATIVO

a) Verificar que el administrador de servicios esta en ejecución casocontrario se debe iniciar, haciendo doble clic en el icono y presionando el botónIniciar o continuar

b) Iniciar el Administrador corporativo (Enterprise Manager) desde el grupo deprogramas de Microsoft SQLServer 7.0

c) Clic en el símbolo + ubicado a la izquierda ded) Clic en botón derecho del Mouse en la carpeta Bases de Datose) Seleccionar la opción Nueva base de datos...f) Escribir el nombre de la base de datos “BIBLIOTECA”g) Clic en el botón Aceptar

Page 5: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

5

2013Victor Pozo Díaz

2. CREAR EL OBJETO “LECTOR”

a) Clic en el símbolo + ubicado a la izquierda de la base de datos “BIBLIOTECA”b) botón derecho sobre Tablasc) Seleccionar la opción Nueva tabla...d) Escribir el nombre de la tabla “LECTOR”e) Clic en el botón Aceptarf) Escribir los atributos, tipos de datos con sus restricciones de la tabla LECTOR

como se observa en la figura

a) Clic en el botón Guardarb) Clic en el botón X de la ventana de tabla

Adicionar datos a nuestras tablas LECTOR

a) Botón derecho sobre la tabla LECTORb) Elegir la opción abrir tablac) Seleccionar la opción devolver todas las filasd) Escribir los datos de la tabla LECTOR

Page 6: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

6

2013Victor Pozo Díaz

3. CREAR EL ORIGEN DE DATOS “ORIGENBIBLIO” PARA ACCESAR A LA BASEDE DATOS “BIBLIOTECA”

a) Ingresar a Panel de Control, Herramientas Administrativasb) Doble clic en Origen de Datos (ODBC)

c) Clic en Agregar…d) Seleccionar SQL Servere) Clic en Finalizarf) Llenar los datos de acuerdo a la figura

Page 7: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

7

2013Victor Pozo Díaz

g) Clic en Siguiente>h) Clic en siguiente>i) En Establecer la siguiente base de datos como predeterminada:

Seleccionar BIBLIOTECA

j) Clic en Siguiente>k) Clic en Finalizar (Ver figura)

l) clic en Probar origen de datos…m) Clic en Aceptar

Nombredel Equipo

Nombredel origende datos

Page 8: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

8

2013Victor Pozo Díaz

Resultado:

Page 9: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

9

2013Victor Pozo Díaz

4. CREAR UN PROYECTO EN VB QUE PERMITA ADMINISTRAR EL OBJETOLECTOR

1. Acceso a los datos a través de Enlace de DATOS COMPLEJOS;

a) Se debe agregar los siguientes componentes:

b) Diseñar el siguiente formulario

DataGrid

Page 10: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

10

2013Victor Pozo Díaz

Control propiedadForm1 (nombre)=frmLector

Caption= FORMULARIO DE LECTORESControlBox=FalseMoveable=FalseBorderStyle=1-Fixed Single

Label1 Caption=BIBLIOTECA ESPECIALIZADA CEMSEBorderStyle=1-Fixed SingleAlignment=2-CenterFont=Gill Sans MT, Tamaño 14

Adodc1 (nombre)=ADODCLectorConnectionString=DSN=ORIGENBIBLIORecordsource=select * from LECTOR

DataGrid DataSource=ADODCLectorCommand1 (Nombre)=cmdGrabar

Caption=GrabarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Command2 (Nombre)=cmdNuevoCaption=NuevoStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Command3 (Nombre)=cmdBuscarCaption=BuscarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Command4 (Nombre)=cmdModificarCaption=ModificarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Command5 (Nombre)=cmdEliminarCaption=EliminarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Command6 (Nombre)=cmdCancelarCaption=CancelarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits))

Command7 (Nombre)=cmdSalirCaption=SalirStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa de bits)

Page 11: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

11

2013Victor Pozo Díaz

Resultado:

CODIGO

Option Explicit

'Variables definidas a nivel de modulo de formulario (frmLector)

Dim varCodAl ,mensaje, estilo, titulo As String

Dim respuesta As Byte

Private Sub ADODCLector_MoveComplete(ByVal adReason As

ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As

ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

'El método MoveComplete es invocado después de que la posición actual delRecordset 'haya cambiado.'RecordCount;Indica el número actual de registros de un objeto Recordset.'AbsolutePosition; Devuelve el número de registro relativo de un registro activodel objeto Recordset.

ADODCLector.Caption = "Registro Nº " &

ADODCLector.Recordset.AbsolutePosition & " de " &

ADODCLector.Recordset.RecordCount

End Sub

Page 12: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

12

2013Victor Pozo Díaz

Private Sub cmdBuscar_Click()

On Error GoTo mensajeError 'Manejador de errores en tiempo de ejecución.

'Salta a la etiqueta mensajeError si existe un error.

ADODCLector.Recordset.MoveFirst 'Mueve el puntero al primer registro

varCodAl = Trim(InputBox("Introduzca el código del LECTOR...", ""))ADODCLector.Recordset.Find "COD_LEC='" & Trim(varCodAl) & "'"

If ADODCLector.Recordset.EOF Then 'Verifica si el puntero esta al final

MsgBox "NO EXISTE EL LECTOR" & " " & varCodAl & " " & "EN LA BASE DE DATOS..."

ADODCLector.Recordset.MoveFirst 'Mueve el puntero al primer registro y

'lo convierte en el registro actual.

End If

mensajeError:

If Err.Number <> 0 Then 'Err; Contiene información sobre errores en tiempo de ejecución.

MsgBox Err.Description

End If

End Sub

Private Sub cmdCancelar_Click()

On Error GoTo mensajeError

ADODCLector.Recordset.CancelBatch 'Cancela una actualización por lotes pendiente

'Mueve el puntero al primer registro y lo convierte en el registro actual, para que los

'cambios sean permanentes

ADODCLector.Recordset.MoveFirstmensajeError:

If Err.Number <> 0 Then 'Err; Contiene información sobre errores en tiempo de ejecución.

MsgBox Err.Description

End If

End Sub

Page 13: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

13

2013Victor Pozo Díaz

Private Sub cmdEliminar_Click()

On Error GoTo mensajeError

mensaje = "ESTA SEGURO(a) DE BORRAR EL REGISTRO..."

titulo = "CUADRO DE ELIMNACION"

estilo = vbYesNo + vbInformation

respuesta = MsgBox(mensaje, estilo, titulo)

If respuesta = vbYes Then

ADODCLector.Recordset.Delete 'Borra el Registro seleccionado

ADODCLector.Refresh 'Actualiza o reconstruye el control ADODCLector

End If

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdGrabar_Click()On Error GoTo mensajeError

ADODCLector.Recordset.Update 'Actualiza los valores de los campos del objeto LECTOR

ADODCLector.Refresh 'Actualiza o reconstruye el control ADODCLector

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdModificar_Click()On Error GoTo mensajeError

ADODCLector.Recordset.Update 'Guarda los cambios realizados

ADODCLector.Refresh 'Actualiza o reconstruye el control ADODCLector

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Page 14: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

14

2013Victor Pozo Díaz

Private Sub cmdNuevo_Click()

On Error GoTo mensajeError

ADODCLector.Recordset.AddNew 'Crea una nueva fila para el objeto recordset

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdSalir_Click()

End

End Sub

Page 15: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

15

2013Victor Pozo Díaz

2. Acceso a los datos a través de Enlace de DATOS SIMPLES

c) Agregar un nuevo formulario Nombre=frmLector02d) Diseñar el siguiente formulario

Control propiedadForm2 (nombre)=frmLector02

Caption=FORMULARIO DE LECTORESControlBox=FalseMoveable=TrueBorderStyle=1-Fixed Single

Label1 Caption= ACCESO A LOS DATOS A TRAVES DE ENLACE DE DATOS SIMPLESBorderStyle=1-Fixed SingleAlignment=2-CenterFont=Arial, Tamaño 14

Adodc1 (nombre)=ADODCLector02ConnectionString=DSN=ORIGENBIBLIORecordsource=select * from LECTOR

Text1 DataSource=ADODCLector02DataField=COD_LECMaxLength=10

Text2 DataSource=ADODCLector02DataField=PATERNO

Text3 DataSource=ADODCLector02DataField=MATERNO

Text4 DataSource=ADODCLector02DataField=NOMBRES

Page 16: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

16

2013Victor Pozo Díaz

Text5 DataSource=ADODCLector02DataField=FECHA_NACMaxLength=8

Text6 DataSource=ADODCLector02DataField=DIRECCION

Command1 (Nombre)=cmdGrabarCaption=GrabarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits)

Command2 (Nombre)=cmdNuevoCaption=NuevoStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits)

Command3 (Nombre)=cmdBuscarCaption=BuscarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits)

Command4 (Nombre)=cmdModificarCaption=ModificarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits)

Command5 (Nombre)=cmdEliminarCaption=EliminarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits)

Command6 (Nombre)=cmdCancelarCaption=CancelarStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits))

Command7 (Nombre)=cmdSalirCaption=SalirStyle=1-GraphicalPicture= Buscar un archivo grafico (Mapa debits))

Page 17: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

17

2013Victor Pozo Díaz

Resultado:

CODIGO

Private Sub ADODCLector02_MoveComplete(ByVal adReason As

ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As

ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)'El método MoveComplete es invocado después de que la posición actual del

'Recordset haya cambiado.

ADODCLector02.Caption = "Registro Nº " &

ADODCLector02.Recordset.AbsolutePosition & " de " &

ADODCLector02.Recordset.RecordCount

End Sub

Page 18: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

18

2013Victor Pozo Díaz

Private Sub cmdBuscar_Click()ADODCLector02.Recordset.MoveFirst 'Mueve el puntero al primer registro

varCodAl = Trim(InputBox("Introduzca el codigo del LECTOR...", ""))

ADODCLector02.Recordset.Find "COD_LEC='" & Trim(varCodAl) & "'"

If ADODCLector02.Recordset.EOF Then 'Verifica si el puntero esta al final

MsgBox "NO EXISTE EL LECTOR" & " " & varCodAl & " " & "EN LA BASE DE DATOS..."

ADODCLector02.Recordset.MoveFirst 'Mueve el puntero al primer registro y lo

'convierte en el registro actual, para que'los cambios sean permanentes.

End If

End Sub

Private Sub cmdCancelar_Click()

On Error GoTo mensajeError 'Manejador de errores en tiempo de ejecución. Salta'a la etiqueta mensajeError si existe un error

ADODCLector02.Recordset.CancelBatch Cancela una actualización por lotes pendiente

ADODCLector02.Recordset.MoveFirstmensajeError:

If Err.Number <> 0 Then 'Err; Contiene información sobre errores en tiempo de ejecución.

MsgBox Err.Description

End If

End Sub

Private Sub cmdEliminar_Click()

On Error GoTo mensajeError

mensaje = "ESTA SEGURO(a) DE BORRAR EL REGISTRO..."

titulo = "CUADRO DE ELIMNACION"

estilo = vbYesNo + vbInformation

respuesta = MsgBox(mensaje, estilo, titulo)

If respuesta = vbYes Then

ADODCLector02.Recordset.Delete 'Borra el Registro seleccionado

ADODCLector02.Refresh 'Actualiza o reconstruye el control (ADODCLector02)

End If

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.DescriptionEnd If

End Sub

Page 19: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

19

2013Victor Pozo Díaz

Private Sub cmdGrabar_Click()On Error GoTo mensajeError

mensaje = "ESTA SEGURO(a) DE GRABAR..."

titulo = "CUADRO DE CONFIRMACION" estilo =

vbYesNo + vbInformation

respuesta = MsgBox(mensaje, estilo, titulo)

If respuesta = vbYes Then

ADODCLector02.Recordset.Update 'Actualiza los valores de los campos del objeto LECTOR

ADODCLector02.Refresh 'Actualiza o reconstruye el control ADODCLector02

Else

'Cancela todas las actualizaciones pendientes del objeto Recordset

ADODCLector02.Recordset.CancelUpdate

End If

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdModificar_Click()

On Error GoTo mensajeError

'Guarda los cambios realizados en el registro actual de un objeto recordset

ADODCLector02.Recordset.Update

ADODCLector02.Refresh

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Page 20: Base de datos

Lic. Victor Pozo Díaz – SQL Server y Visual Basic

20

2013Victor Pozo Díaz

Private Sub cmdNuevo_Click()On Error GoTo mensajeError

ADODCLector02.Recordset.AddNew 'Crea una nueva fila para el objeto recordset

Text1.SetFocus 'Mueve el enfoque al control Text1

mensajeError:

If Err.Number <> 0 Then

MsgBox Err.Description

End If

End Sub

Private Sub cmdSalir_Click()

End

End Sub