Base de datos
-
Upload
gary-botelo -
Category
Documents
-
view
213 -
download
0
description
Transcript of 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;
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
Lic. Victor Pozo Díaz – SQL Server y Visual Basic
3
2013Victor Pozo Díaz
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
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
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
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
Lic. Victor Pozo Díaz – SQL Server y Visual Basic
8
2013Victor Pozo Díaz
Resultado:
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
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)
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
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
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
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
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
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))
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
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
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
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