ACAC - Tomo II - 1

Anuncio
1
Introducción
En la actualidad en las grandes empresas podemos encontrar un DBA (Administrador de
Bases de Datos) el cual cuenta con las herramientas y conocimientos para una correcta
administración del motor de base implementada en su respectiva organización y bajo la
cual se encuentran desarrolladas sus aplicaciones. Pero en las pequeñas y medianas
empresas no existe una persona especializada en Bases de Datos, sino que muchas de las
veces existen una o varias personas que realizan múltiples tareas dentro del
Departamento de Sistemas, y ello concurre a que no se pueda obtener un excelente
rendimiento de la Dase de Datos que se administre, realizándose simplemente tareas
básicas y elementales aprendidas en las aulas de la universidad o leídas en un libro al
momento de cursar la materia de Bases de Datos.
También se da que un DBA, siempre que ocurra algún problema con la Base de datos, ya
sea por respaldo o restauración de datos, este deba conectarse a través de alguna
herramientas de acceso remoto como son: Teamviewer, LogMeIn, Real VNC y otros,
para poder dar asistencia en las eventualidades ocurridas cuando él no se encuentra en el
lugar de los hechos, siempre y cuando ambos equipos que existen en los extremos del
acceso remoto cuenten con la herramienta instalada localmente. Es allí que surge el
inconveniente en caso de no se cuente con los medios para el acceso remoto, que el DBA
o profesional de Sistemas, deba trasladarse personalmente al lugar de los hechos.
2
Capítulo I
MANUAL TECNICO
3
Introducción
El propósito de todo manual técnico es proporcionar la información necesaria y
suficiente, para guiar al profesional del área de Sistemas, tanto el Analista como el
Programador, para su revisión y conocimientos de cómo fue analizado, diseñado y
programado este prototipo de aplicación y poder en cualquier momento poder realizar
una actualización a partir de la información contenida, y así adaptarla mas a los
requerimientos de la empresa que implemente esta aplicación.
Adicionalmente, se describe detalladamente las características físicas y técnicas de cada
elemento que se utiliza en esta aplicación.
4
Diagrama General del Flujo del Sistema
Aquí se representa de manera gráfica el flujo de datos a través del sistema de
información.
También se puede visualizar el procesamiento de datos de manera simplificada o
detallada.
Realizar este tipo de diagramas es muy común entre los diseñadores, ya que con ello
dibujan un contexto a nivel de diagramas, en el que primero muestra la interacción entre
el sistema y las entidades externas.
Gráfico No. 1.
Diagrama de Flujo del Sistema.
PC -
Cuenta
de
Correo
Celular
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
Base de
Datos 1
Aplicación
Base de
Datos 2
5
Diagrama de Flujo de Datos
Gráfico No. 2.
Diagrama de Flujo de Datos.
Envío de correo
¿Existe
cuenta
de correo?
NO
Ignorar el
contenido del
SI
¿Esta correcto
Usuario y
Contraseña?
NO
Emitir mensaje de usuario
y contraseña inválidas
SI
Revisión Contenido
de correo
¿Existe
Palabra
Reservada?
NO
No ejecuta
tarea alguna
SI
Ejecuta la tarea
correspondiente
¿Tarea
Realizada?
NO
Envía mensaje de
error de la tarea
SI
Confirmación del estado de
la ejecución de la tarea
Envío de mensaje al correo
a la cuenta
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
6
Diagrama de Casos de Usos
Configuración
Este proceso consiste en la configuración inicial de los parámetros o variables para el
desenvolvimiento de la aplicación.
Este es uno de los escenarios más importantes ya que si los parámetros no está
completamente correctos y registrados, el proceso de lectura de correo y ejecución de las
tareas de respaldo y/o restauración, no lograrán los objetivos esperados.
Gráfico No. 3.
Caso de Uso de Configuración.
Configuración de
parámetros iniciales
Elaboración: Alberto Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
7
Envío de correo
Este proceso consiste en el envío del mensaje del correo en el formato establecido, desde
la cuenta de correo permitida para el procesamiento de la tarea.
Este escenario consiste en que el administrador envíe sus solicitudes a través de la cuenta
de correo, conforme el formato de la tarea a realizar que se definió.
Gráfico No. 4.
Caso de Uso de Envío de Correo.
Envió de correo a la
cuenta
Elaboración: Alberto Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
8
Recepción de correo
Este proceso consiste en la lectura de los correos desde la cuenta de la aplicación y que
procesará los mensajes recibidos de la cuenta permitida, revisar el contenido del mensaje
y el posterior procesamiento de la respectiva tarea.
Gráfico No. 5.
Caso de Uso de Recepción de Correo.
Lectura de correo
desde la cuenta
Revisión del cuerpo del
mensaje
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
Envío de la tarea de
ejecución a la base de
datos
9
Ejecución de tareas
Este proceso se encarga de la ejecución de la tarea de respaldo o restauración, de la base,
una vez que ha cumplido todas las exigencias para su final procesamiento.
En este escenario empieza una vez que ha sido comprobado el formato de tarea, pasa a
realizar la correspondiente tarea solicitada, ya sea esta la de realizar un respaldo de la
base o restaurar una base de datos.
Gráfico No. 6.
Casos de Uso de Ejecución de tareas.
Ejecución de tareas
de Respaldo
Elaboración: Alberto Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
10
Descripción de los Escenarios
Configuración de la aplicación
Tabla No. 1.
Escenario de Configuración correcta.
Nombre
1.1.- Configuración de la aplicación
Configurar parámetros de la aplicación
Objetivo
El administrador del sistema deberá parametrizar variables iniciales para la
Descripción
ejecución de la aplicación.
•
Configurar la cuenta de correo a la que se envía las respuestas.
Datos
•
La misma cuenta servirá para leer las instrucciones a realizar.
específicos
•
Configuración de las bases sobre las cuales se ejecutaran tareas de
respaldos.
Intervalo
Sólo presente.
Estabilidad
Alta
El desenvolvimiento de la aplicación depende de la correcta configuración
Comentario
de los parámetros iniciales.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
11
Configuración de la aplicación Incorrecta
Tabla No. 2.
Escenario de Configuración Incorrecta.
Nombre
1.2.- Configuración de la aplicación Incorrecta.
Configurar parámetros incorrectos de la aplicación.
Objetivo
En el caso de que el administrador del sistema parametrice las variables
Descripción
iniciales erroneamente, la ejecución de la aplicación no será confiable al
momento de realizar las tareas de respaldos.
Datos
•
Configurar la cuenta de correo equivocada o mal descrita.
•
Mala descripción del nombre del Servidor de Datos.
•
Mala elección de las bases sobre las cuales se ejecutaran tareas de
específicos
respaldos.
•
Mala asignación de usuario y clave para que pueda ejecutar las tareas
de respaldo vía correo electrónico.
Intervalo
Sólo presente.
Estabilidad
Alta
El desenvolvimiento de la aplicación depende de la correcta configuración
Comentario
de los parámetros iniciales.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
12
Envío de Correo
Tabla No. 3.
Caso de uso del Envío de correo.
Nombre
2.1.- Envío de Correo
Envío del correo con una determinada instrucción para la generación
Objetivo
de los respaldos de la base.
Descripción
El envío del correo deberá incluir una palabra clave dentro del cuerpo
del mensaje, la cual será procesa para luego ser enviada la instrucción
de ejecución sobre los respaldos.
Datos
•
Envío del correo por parte del DBA.
específicos
•
Dentro del correo se enviará una palabra clave para la ejecución
de la tarea.
•
Esperar la confirmación de la recepción y ejecución de la tarea.
Intervalo
Sólo presente.
Estabilidad
Alta
Comentario
Se deberá tener en cuenta las palabras reservadas para el lenguaje
SQL, que son conocidas por un DBA.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
13
Recepción de Correo Válido
Tabla No. 4.
Caso de uso de la recepción.
Nombre
3.1.- Recepción de Correo Válido
Leer el correo desde una cuenta determinda en la configuración de los
Objetivo
parámetros iniciales.
Descripción
Recibir el correo de una cuenta determinada, procesar el contenido del
mensaje para evaluar la palabra reservada que dará paso a la ejecución
de una tarea de respaldo.
Datos
•
Lectura del mensaje desde la aplicación.
específicos
•
Procesar el contenido del mensaje.
•
Envío de la instrucción para la ejecución de la respectiva tarea de
respaldo.
Intervalo
Sólo presente.
Estabilidad
Alta
Comentario
Una vez que se procesa el contenido del mensaje se dará paso a la
ejecución de la tarea de respaldo.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
14
Lectura de Correo con mensaje invalido
Tabla No. 5.
Caso de uso lectura de correo.
Nombre
3.2- Lectura de Correo con mensaje invalido
Leer el contenido del correo de la cuenta con un mensaje que no
Objetivo
va a realizar tarea alguna.
Descripción
Al recibir el correo con el contenido del mensaje no válido para
la ejecución de alguna tarea de respaldo, se ignorará el mensaje.
Datos
•
Revisar el contenido del mensaje.
específicos
•
Comprobar la existencia de palabras reservadas.
•
Ignorar el correo.
Intervalo
Sólo presente.
Estabilidad
Alta
Comentario
No se enviará ninguna respuesta ya que al no existir las palabras
reservadas para la ejecución de tareas no se debe notificar.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
15
Ejecución de Tareas sin error
Tabla No. 6.
Caso de Uso de ejecución de tarea.
Nombre
4.1.- Ejecución de Tareas sin error
Ejecutar la correspondiente tarea de respaldo, según el contenido
Objetivo
del mensaje leído.
Descripción
Ejecutar la tarea de respaldo sobre el motor de la base de datos.
Datos
específicos
•
Ejecución de los respaldos de datos como:
•
Respaldos completos.
•
Respaldos diferenciales.
•
Respaldos del archivo log.
•
Respaldos de los Archivos de datos y Grupos de datos
Intervalo
Sólo presente.
Estabilidad
Alta
Una vez procesada la tarea de respaldo se enviará un correo de
Comentario
confirmación de la tarea, caso contrario el estado de la ejecución
de la tarea.
Elaboración: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
16
Ejecución de Tareas con error
Tabla No. 7.
Caso de uso al ejecutar una tarea con error
Nombre
4.2.- Ejecución de Tareas con error
Confirmar la no ejecución de la tarea por error en el proceso,
Objetivo
según sea el caso.
Descripción
Se ejecuta un mensaje de error desde la Base de Datos.
Datos
•
Ejecutar el servicio de mensaje desde SQL Server.
•
Envío de mensaje descriptivo sobre el error producido al
específicos
ejecutar la tarea.
•
Guardar una bitácora del error ocurrido.
Intervalo
Sólo presente.
Estabilidad
Alta
Una vez procesada la ejecución de la tarea y esta no se pueda
Comentario
realizar, se enviará un mensaje de correo sobre dicha tarea no
realizada.
Elaborado: Alberto C. Arreaga C.
Fuente: Etapa de diseño de la aplicación.
17
Diagrama de Objetos
Ejecutar la Tarea de Respaldo o Restauración
Gráfico No. 7.
DIO Ejecución de tarea.
Conexión
Comprobar
conexión
con la base
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
Mail
Leer y
comprobar
la cuenta
Respaldos
Verificar y
ejecutar
tarea de
respaldo
18
Conexión con la Base de Datos
Gráfico No. 8.
DIO de conexión con la Base de Datos.
Conexión
Mail
Comprobar
conexión
con la base
No existe
comunicación
con Servidor
de Datos
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
Respaldos
19
Lectura de Mensajes de la Cuenta de Correo
Gráfico No. 9.
DIO de Lectura de mensaje.
Conexión
Comprobar
conexión con
la base
Mail
Respaldos
Leer y
comprobar
la cuenta
Ignorar
lectura de
mensaje
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
20
Envío de confirmación o Mensaje de Error
Gráfico No. 10.
DIO de Envío de mensaje.
Conexión
Comprobar
conexión
con la base
Mail
Leer y
comprobar
la cuenta
Elaborado: Alberto C. Arreaga C.
Fuente: Diseño del prototipo de la aplicación.
Respaldos
Verificar y
ejecutar
tarea de
respaldo
Envía mensaje
de error en la
ejecución de
la tarea
21
Diagrama de Clases
Clase para el Registro de las Variables
La clase Registro está desarrollada para el acceso a los variables de registros que se
necesitan tener guardadas para el buen desenvolvimiento de la aplicación. Esta clase no
ayudará a poder obtener los datos en cualquier instancia en que se requiera el contenido
del valor de cualquiera de las claves de la aplicación.
Tabla No. 8.
Clase Registro.
DclsRegistro
Tipo
Func_ConsultarValor
Público
Func_CrearNuevaClave
Público
Func_EliminarClave
Público
Func_EliminarValor
Público
Func_EstablecerValor
Público
QueryValueEx
Privado
SetValueEx
Privado
GetRegErrorText
Privado
Elaborado: Alberto C. Arreaga C.
Fuente: Clase DclsRegistro.
22
Clase para la Conexión con la Base de Datos
La clase Conexión está desarrollada para crear la conexión hacia el Servidor de Base de
Datos existente, así poder abrir y cerrar esta conexión en cualquier momento en que se
vaya a ejecutar las tareas por la aplicación.
Tabla No. 9.
Clase Conexión.
DclsConexion
Tipo
Func_ConexionServidorDB
Público
Proc_AbrirConexionDB
Público
Proc_CerrarConexion
Público
Errores
Público
sCadConexion
Público
adoConexion
Público
sNomServidorDB
Público
sNombreDB
Público
sUsuarioDB
Público
sContraseñaDB
Público
sTipoConexionDB
Público
Elaborado: Alberto C. Arreaga C.
Fuente: Clase DclsConexion.
23
Clase para la Conexión con la Cuenta de Correo
La clase OsPop3 es componente desarrollado por la empresa OstroSoft, con el objetivo
de recuperar mensajes de correo electrónico mediante programación. Funciona para
cuentas de correos con servidores POP3. Soporta correo electrónico seguro (TLS / SSL),
correo electrónico (MIME) archivos adjuntos, correo HTML, cabeceras personalizadas,
objetos incrustados.
La versión utilizada es para Visual Basic 6.0. (Mas sobre este componente en el Anexo 1
de este Tomo II).
Gráfico No. 11.
Diagrama de la Clase OSPOP3.
Header
Attachmentt
OsPOP3
Email
Message
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/.
MessageListEntry
Session
24
Clases del OSPOP3
La clase Sesion es la de mayor jerarquía dentro del componente OSPOP3, con relación a
las demás clases sque conforman el componente, ya que mantiene la conexión directa
con el servidor de correo, a través de la cual se recupera las estadísticas del buzón de
entrada de la cuenta de correo, así como también la lista de mensajes que los recupera y/o
los elimina.
Tabla No. 10.
Clase Session.
Session
Métodos
Tipo
OpenPOP3
Público
ClosePOP3
Público
GetMessageList
Público
DeleteMessage
Público
GetMailboxSize
Público
GetMessage
Público
GetMessageCount
Público
GetMessageHeaders
Público
ResetSession
Público
State
Público
MailboxSize
Público
MessageCount
Público
DeleteMessage
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
25
La clase Email se encarga del encabezado cada uno de los mensajes que llegan al buzón,
es decir del nombre y dirección del correo de quien remite el mensaje y los destinatarios.
Tabla No. 11.
Clase Email.
Email
Métodos
Tipo
Name
Público
Address
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
La clase MessageListEntry contiene el tamaño del mensaje la posición del mensaje según
la llegada al buzón y el código del mensaje, que identifican los mensajes dependiendo de
su número ordinal del servidor de correo, es decir el UIDL.
Tabla No. 12.
Clase MessageListEntry.
MessageListEntry
Métodos
Tipo
UIDL
Público
ID
Público
Size
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
26
La clase Header se encarga del encabezado del mensaje, su contenido y valor.
Tabla No. 13.
Clase Header.
Header
Métodos
Tipo
Name
Público
Values
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
La clase Message devuelve en sus 2 funciones el contenido una vez analizado el mensaje
de correo electrónico.
Tabla No. 14.
Clase Message.
Message
Métodos
Tipo
Save
Público
Sender.Name
Público
Sender.Address
Público
Recipients
Público
RecipientsCC
Público
UIDL
Público
Headers
Público
Body
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
27
La clase Attachment se encarga de recoger los datos acerca de los archivos adjuntos,
nombre del archivo, el cuerpo, el tipo de archivo adjunto debido al intercambio de
información a través del internet, es decir el MIME, el tipo de codificación de los datos
adjuntos
Tabla No. 15.
Clase Attachment.
Attachment
Métodos
Tipo
Save
Público
AttachmentName
Público
Body
Público
Filename
Público
ContentType
Público
ContentTransferEncoding
Público
ContentDisposition
Público
Elaborado: Alberto C. Arreaga C.
Fuente: http://www.ostrosoft.com/POP3_component.asp
28
Diccionario de Datos
Un diccionario de datos es un conjunto de metadatos que contiene las características
lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa,
incluyendo nombre, descripción, alias, contenido y organización.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso
inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a
los analistas que participan en la determinación de los requerimientos del sistema, su
contenido también se emplea durante el diseño.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte
del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos,
almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción
de todos estos elementos.
29
Tabla No. 16.
Diccionario de Datos.
Objeto
Module
ClassModule
Project
Form
MDIForm
Abrev.
mod
cls
pry
frm
mdi
Objeto
Public
Private
Const
Function
Sub
ClsRegistro
ClsConexion
String
Integer
Long
Control
Boolean
Error
Object
Abrev.
g
l
const
Func
Proc
oClsR
oClsC
s
i
l
c
b
err
obj
Elaborado: Alberto C. Arreaga C.
Fuente:Herramienta Visual Basic 6.0.
Objeto
SmartMenuXP
Toolbar
XPButton
Label
StatusBar
ListView
Frame
Skin
Timer
PictureBox
TextBox
SSTab
ComboBox
CheckBox
Line
CommandButton
Abrev.
smn
tlb
cmd
lbl
stb
lvw
fme
skn
tmr
pbx
txt
sst
cmb
chk
lne
cmd
30
Procedimientos y Funciones
Función Func_ConsultarValor
Se encuentra dentro de la clase DclsRegistro. Recibe 3 parámetros, el nombre de la
carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta
donde
se
encuentra
el
conjunto
de
valores
de
la
clave
(Software\TesisGrado\Proyecto2010), dentro de esta clave se encuentran las subclaves
(Conexión, Correo, Parametro, Respaldo, Seguridad), y por último el nombre del valor.
Devuelve el contenido o información del valor de la clave que se solicita.
Public Function Func_ConsultarValor(lClave As Long, sNombre_Clave As _
String, sNombre_valor As String)
Dim lHandle_Clave As Long
Dim vValor As Variant
Dim lRet As Long
lRet = RegOpenKeyEx(lClave, sNombre_Clave, 0, KEY_ALL_ACCESS,
lHandle_Clave)
lRet = QueryValueEx(lHandle_Clave, sNombre_valor, vValor)
ConsultarValor = Mid(Trim(vValor), 1, Len(vValor) - 1)
RegCloseKey (lHandle_Clave)
End Function
31
Función Func_ EstablecerValor
Se encuentra dentro de la clase DclsRegistro. Recibe 5 parámetros, el nombre de la
carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta
donde
se
encuentra
el
conjunto
de
valores
de
la
clave
(Software\TesisGrado\Proyecto2010), dentro de esta clave se encuentran las subclaves
(Conexión, Correo, Parametro, Respaldo, Seguridad), el nombre del valor, el contenido o
información a guardar en el valor, y el tipo de valor (Alfanumérico, Binario, DWord,
Cadena múltiple). Establece un valor en el contenido o información del valor de la clave
que se envía.
Public Function EstablecerValor(lClave As Long, sNombre_Clave As String, _
sNombre_Valor As String, vEl_Valor As Variant, lTipo_Valor As Long)
Dim lRet As Long
Dim lHandle_Clave As Long
lRet = RegOpenKeyEx(lClave, sNombre_Clave, 0, KEY_ALL_ACCESS,
lHandle_Clave)
lRet = SetValueEx(lHandle_Clave, sNombre_Valor, lTipo_Valor, vEl_Valor)
RegCloseKey (lHandle_Clave)
End Function
32
Función Func_ CrearNuevaClave
Se encuentra dentro de la clase DclsRegistro. Recibe 2 parámetros, el nombre de la
carpeta principal del Editor de Registro (HKEY_CURRENT_USER), el directorio o ruta
donde se grabará la clave (Software\TesisGrado\Proyecto2010), mas el nombre de la
subclave (Conexión, Correo, Parametro, Respaldo, Seguridad). Crea la subclave que se
envía.
Public Function CrearNuevaClave(lClave As Long, sNombre_Clave As String)
Dim sHandle_Clave As Long
Dim sRet As Long
sRet = RegCreateKeyEx(lClave, sNombre_Clave, 0&, vbNullString, _
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, _
sHandle_Clave, sRet)
RegCloseKey (sHandle_Clave)
End Function
33
Función Func_ConexionServidorDB
Se encuentra dentro de la clase DclsConexion. En esta función se realiza el puente de
conexión hacia la base de datos dependiendo de la autenticación (Autenticación
Windows o Autenticación SQL) que se registro en la configuración de las variables.
Public Function Func_ConexionServidorDB() As Boolean
On Error GoTo fin
sCadConexion = ""
If sTipoConexionDB = "SQLS" Then
sCadConexion = sCadConexion & "Provider=SQLOLEDB.1;"
sCadConexion = sCadConexion & "Data Source=" & sNomServidorDB & ";"
sCadConexion = sCadConexion & "User ID =" & sUsuarioDB & ";"
sCadConexion = sCadConexion & "Password=" & sContraseñaDB & ";"
sCadConexion = sCadConexion & "DataBase=" & sNombreDB
ElseIf sTipoConexionDB = "WIND" Then
sCadConexion = sCadConexion & "Provider=SQLOLEDB.1;"
sCadConexion = sCadConexion & "Data Source=" & sNomServidorDB & ";"
sCadConexion = sCadConexion & "User ID =;"
sCadConexion = sCadConexion & "Password=;"
sCadConexion = sCadConexion & "DataBase=" & sNombreDB
End If
34
sCadConexion = sCadConexion & "DataBase=" & sNombreDB
End If
Set adoConexion = New ADODB.Connection
adoConexion.ConnectionString = sCadConexion
adoConexion.ConnectionTimeout = 0
adoConexion.CommandTimeout = 0
adoConexion.Open
Func_ConexionServidorDB = True
Exit Function
fin:
msgERROR = msgERROR + " " + Err.Description
Func_ConexionServidorDB = False
End Function
Procedimiento Proc_AbrirConexionDB
Se encuentra dentro de la clase DclsConexion. En esta función sirve para abrir la
conexión una vez que se armó la cadena de conexión.
35
Public Sub Proc_AbrirConexionDB()
On Error GoTo fin
adoConexion.ConnectionString = sCadConexion
adoConexion.Open adoConexion.ConnectionString, "", ""
Exit Sub
fin:
msgERROR = msgERROR + " " + Err.Description
End Sub
Procedimiento Proc_CerrarConexion
Se encuentra dentro de la clase DclsConexion. En esta función sirve para cerrar la
conexión una vez que se haiga realizados las sentencias con la base de datos.
Public Sub Proc_CerrarConexion()
On Error GoTo fin
adoConexion.Close
Exit Sub
fin:
msgERROR = msgERROR + " " + Err.Description
End Sub
36
Función Func_ConsultaParametros
Se encuentra dentro del Proyecto pryCorreo. Recibe 2 parámetros: el número de la
posición subclave, y el nombre del valor o entrada de registro a consulta. Devuelve el
contenido o información del valor a consulta.
Public Function fg_ConsultaParametros(sNumClave As Integer, _
sValor As String) As String
fg_ConsultaParametros = ""
Select Case sNumClave
Case 1: sClave = "": sClave = const_Clave1
Case 2: sClave = "": sClave = const_Clave2
Case 3: sClave = "": sClave = const_Clave3
Case 4: sClave = "": sClave = const_Clave4
Case 5: sClave = "": sClave = const_Clave5
End Select
fg_ConsultaParametros = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + sClave, sValor))
End Function
37
Función Func_ GrabarParametros
Se encuentra dentro del Proyecto pryCorreo. Recibe 3 parámetros: el número de la
posición subclave, el nombre del valor o entrada de registro a consulta y el contenido o
información del valor. Devuelve un valor verdadero sí la acción es registrada
correctamente.
Public Function fg_GrabarParametros(sNumClave As Integer, _
sValor As String, sDatoValor As String) As Boolean
Dim sClave As String
Select Case sNumClave
Case 1: sClave = "": sClave = const_Clave1
Case 2: sClave = "": sClave = const_Clave2
Case 3: sClave = "": sClave = const_Clave3
Case 4: sClave = "": sClave = const_Clave4
Case 5: sClave = "": sClave = const_Clave4
End Select
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + sClave)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + sClave, sValor, sDatoValor, REG_SZ)
End Function
38
Función Func_ ExtraeCadena
Se encuentra dentro del Proyecto pryCorreo. Recibe 3 parámetros: la cadena en que se
buscara un determinado valor o dato entre los símbolos, carácter o símbolo inicial que
hace de limite, carácter o símbolo final que hace de límite. Devuelve un valor verdadero
sí la acción es registrada correctamente.
Public Function fg_ExtraeCadena(sCadena As String, _
sCaracterIni As String, sCaracterFin As String)
Dim iPosicionIni As Integer
Dim iPosicionFin As Integer
fg_ExtraeCadena = ""
iPosicionIni = InStr(1, sCadena, sCaracterIni)
iPosicionFin = InStr(1, sCadena, sCaracterFin)
If iPosicionIni > 0 And iPosicionFin > 0 Then
fg_ExtraeCadena = Mid(sCadena, iPosicionIni + 1, _
iPosicionFin - iPosicionIni - 1)
End If
End Function
39
Función Func_Validar_Correo
Se encuentra dentro del Proyecto pryCorreo. Recibe 1 parámetros: la cuenta de correo
electrónico. Devuelve un valor verdadero sí el formato de la cuenta es correcta.
Public Function Func_Validar_Correo(ByVal Email As String) As Boolean
Dim strTmp As String
Dim n As Long
Dim sEXT As String
MensajeError = ""
Func_Validar_Correo = True
sEXT = Email
Do While InStr(1, sEXT, ".") <> 0
sEXT = Right(sEXT, Len(sEXT) - InStr(1, sEXT, "."))
Loop
If Email = "" Then
Func_Validar_Correo = False
MensajeError = MensajeError & "No se indicó ninguna dirección" _
& " de " & "mail para verificar!" & vbNewLine
ElseIf InStr(1, Email, "@") = 0 Then
Func_Validar_Correo = False
MensajeError = MensajeError & "La dirección de email con " _
& "contiene el signo @" & vbNewLine
40
ElseIf InStr(1, Email, "@") = 1 Then
Func_Validar_Correo = False
MensajeError = MensajeError & "El @ No puede estar al " _
& " principio" & vbNewLine
ElseIf InStr(1, Email, "@") = Len(Email) Then
Func_Validar_Correo = False
MensajeError = MensajeError & "El @ no puede estar al final" _
& " de la dirección" & vbNewLine
ElseIf Func_Valida_Extension(sEXT) = False Then
Func_Validar_Correo = False
MensajeError = MensajeError & "LA dirección no tiene un " _
& "dominio válido, "
MensajeError = MensajeError & "por ejemplo : " & vbNewLine
MensajeError = MensajeError & ".com, .net, .gov, .org, .edu, " _
& ".biz, .tv etc.. " & vbNewLine
ElseIf Len(Email) < 6 Then
Func_Validar_Correo = False
MensajeError = MensajeError & "La dirección no puede ser " _
& "menor a 6 caracteres." & vbNewLine
End If
strTmp = Email
41
Do While InStr(1, strTmp, "@") <> 0
n=1
strTmp = Right(strTmp, Len(strTmp) - InStr(1, strTmp, "@"))
Loop
If n > 1 Then
Func_Validar_Correo = False
MensajeError = MensajeError & "Solo puede haber un @ en " _
& "la dirección de email" & vbNewLine
End If
Dim pos As Integer
pos = InStr(1, Email, "@")
If Mid(Email, pos + 1, 1) = "." Then
Func_Validar_Correo = False
MensajeError = MensajeError & "El punto no puede estar " _
& "seguido del @" & vbNewLine
End If
If MensajeError <> "" Then
MsgBox MensajeError, vbCritical
End If
End Function
42
Función Func_Ultimas_Claves
Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada al momento de
realizar el cambio de contraseña, verifica si la nueva contraseña está entre las últimas 5
anteriores contraseñas utilizadas. Recibe 1 parámetro: la nueva contraseña que se va a
cambiar. Devuelve un valor verdadero en caso de existir la clave entre las últimas 5
anteriormente usadas.
Public Function Func_Ultimas_Claves(sClaveNueva As String) _
As Boolean
Dim iIndice As Integer
Dim sClaveAnte As String
Dim sVariable As String
Func_Ultimas_Claves = False
iIndice = 5
sClaveNueva = fg_CifrarCaracter(Trim(sClaveNueva), _
sCaracterClave, True)
For iIndice = 1 To iIndice
sVariable = "Contraseña0" & CStr(iIndice)
sClaveAnte = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, sVariable))
43
sClaveAnte = fg_CifrarCaracter(Trim(sClaveAnte), _
sCaracterClave, True)
If sClaveAnte = sClaveNueva And sClaveAnte <> "" Then
Func_Ultimas_Claves = True
Exit Function
End If
Next iIndice
End Function
Procedimiento Proc_Registro_Hitorial_Clave
Se encuentra dentro del Proyecto pryCorreo. Este procedimiento es llamada al momento
de que se realiza el cambio de contraseña, guarda el historial moviendo de posición las
anteriores contraseñas. Recibe la nueva clave.
Public Sub Proc_Registro_Hitorial_Clave(sClaveNueva As String)
Dim iIndice As Integer
Dim sVariableAnte As String
Dim sVariableDesp As String
Dim sClaveAnte As String
For iIndice = 4 To 1 Step -1
44
sVariableAnte = "Contraseña0" & CStr(iIndice)
sVariableDesp = "Contraseña0" & CStr(iIndice + 1)
sClaveAnte = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, sVariableAnte))
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, sVariableDesp, sClaveAnte, REG_SZ)
Next iIndice
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5)
sClaveNueva = modFuncionesVarias.fg_CifrarCaracter(sClaveNueva, _
sCaracterClave, False)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, "Contraseña01", sClaveNueva, _
REG_SZ)
End Sub
45
Función Func_AvisoCambioClave
Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando la clave del
usuario está por caducar, dando aviso los n días que tiene para que pueda cambiar la
clave.
Public Function Func_AvisoCambioClave()
Dim sFechaActual As String
Dim sFechaCambio As String
Dim sFechaAviso As String
Dim nDiasExpira As Integer
Dim nDiasVigencia As String
Dim nDiasPorcAviso As String
sFechaActual = Format(Date, "yyyy/mm/dd")
nDiasVigencia = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, "DiasVigencia"))
sFechaCambio = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, "FechaCambio"))
sFechaAviso = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, "FechaAviso"))
46
nDiasExpira = DateDiff("d", sFechaCambio, sFechaActual) + 1
nDiasPorcAviso = nDiasVigencia * 0.5
nDias = nDiasVigencia - nDiasExpira
If nDiasExpira > nDiasPorcAviso Then
If sFechaAviso <> sFechaActual Then
MsgBox "La Contraseña caduca dentro de " & CStr(nDias) _
& " Días", vbCritical, "SISTEMAS"
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave5, "FechaAviso", sFechaActual, _
REG_SZ)
End If
End If
End Function
47
Función Func_EnvioCorreo
Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se envía la
respuesta a la cuenta de correo sobre la petición solicitada a realizar en la base de datos.
Recibe 2 parámetros: el mensaje que se enviará, y el nombre del archivo adjunto, este
parámetro es opcional.
Public Sub Func_EnvioCorreo(sMensaje As String, _
Optional sArchivoAdjunto As String = "")
Dim sFecha As String
Dim sHora As String
sFecha = Format(Date, "yyyymmdd")
sHora = Format(Time, "hhMM")
Screen.MousePointer = vbHourglass
With frmSession.sendmail1
.SMTPHostValidacion = VALIDATE_HOST_NONE
.ValidarEmail = VALIDATE_SYNTAX
.Delimitador = ";"
.FromDisplayName = "Aplicativo Respaldos " & sFecha & "-" & sHora
.Remitente = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave2, "CorreoAdm")) 'txtFrom.Text
.SMTPHost = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave2, "ServidorCCS")) 'txtServer.Text
48
.Destinatario = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "CuentaDBA")) 'txtTo.Text
.Asunto = "Respuesta a su Requerimiento" 'txtSubject.Text
.Mensaje = sMensaje 'txtMsg.Text
If sArchivoAdjunto <> "" Then
.Adjunto = sArchivoAdjunto
Else
.Adjunto = ""
End If
.Prioridad = Baja
.UsarLoginSMTP = True
.Usuario = "proyecto.mnas" 'txtUserName
Dim sCadena As String
sCadena = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave2, "ContraseñaAdm")) 'txtPassword
.Password = fg_CifrarCaracter(sCadena, sCaracterClave, True)
.Codificacion = MIME_ENCODE
.EnviarEmail
End With
Screen.MousePointer = vbDefault
End Sub
49
Función Func_ProcesaCorreo
Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se va a
procesar todo el contenido mensaje desde la bandeja de entrada, se encarga de que el
mensaje tenga un mensaje.
Public Function Func_ProcesaCorreo()
Dim m As OSPOP3.Message
Dim h As OSPOP3.Header
Dim s
Dim nd As Node
Dim e As OSPOP3.Email
Dim a As OSPOP3.Attachment
Dim iCount As Integer
Dim i As Integer
Dim j As Integer
On Error GoTo err_handler
With frmSession
.tvw.Nodes.Clear
i = .lvwMessages.SelectedItem.Text
50
If .bHeadersOnly Then
Set m = frmSession.oSession.GetMessageHeaders(i)
Else
Set m = frmSession.oSession.GetMessage(i)
End If
.tvw.Nodes.Add , , "m" & i, "message " & i
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "from", "from"
.tvw.Nodes.Add "m" & i & "from", tvwChild, , "name: " _
& m.Sender.Name
.tvw.Nodes.Add "m" & i & "from", tvwChild, , "address: " _
& m.Sender.Address
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "to", "to"
For Each e In m.Recipients
Set nd = .tvw.Nodes.Add("m" & i & "to", tvwChild, , "recipient")
.tvw.Nodes.Add nd.Index, tvwChild, , "name: " & e.Name
.tvw.Nodes.Add nd.Index, tvwChild, , "address: " & e.Address
Next
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "cc", "cc"
For Each e In m.RecipientsCC
Set nd = tvw.Nodes.Add("m" & i & "cc", tvwChild, , "recipient")
.tvw.Nodes.Add nd.Index, tvwChild, , "name: " & e.Name
.tvw.Nodes.Add nd.Index, tvwChild, , "address: " & e.Address
51
Next
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "subject", "subject"
.tvw.Nodes.Add "m" & i & "subject", tvwChild, , m.Subject
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "date", "date"
.tvw.Nodes.Add "m" & i & "date", tvwChild, , m.DateSent
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "ContentType", _
"Content-Type"
.tvw.Nodes.Add "m" & i & "ContentType", tvwChild, , m.ContentType
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "ContentTransferEncoding", _
"Content-Transfer-Encoding"
.tvw.Nodes.Add "m" & i & "ContentTransferEncoding", tvwChild, _
, m.ContentTransferEncoding
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "char", "Charset"
.tvw.Nodes.Add "m" & i & "char", tvwChild, , m.Charset
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "UIDL", "UIDL"
.tvw.Nodes.Add "m" & i & "UIDL", tvwChild, , m.UIDL
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "h", "headers"
For Each h In m.Headers
.tvw.Nodes.Add "m" & i & "h", tvwChild, "m" & i & h.Name, h.Name
For Each s In h.Values
.tvw.Nodes.Add "m" & i & h.Name, tvwChild, , s
Next
52
Next
If Not .bHeadersOnly Then
.tvw.Nodes.Add "m" & i, tvwChild, "m" & i & "body", "body"
tvw.Nodes.Add "m" & i & "body", tvwChild, , m.Body
If Func_ProcesaMensaje(m.Body) Then
MsgBox "mensaje correcto", vbInformation, "Mensaje Sistemas"
Else
MsgBox "mensaje incorrecto", vbInformation, "Mensaje Sistemas"
End If
End If
End With
err_handler:
If Err.Number <> 0 Then MsgBox "Error " & Err.Number & ": " &
Err.Description
End Function
Función Func_ProcesaMensaje
Se encuentra dentro del Proyecto pryCorreo. Esta función es llamada cuando se va a
procesar el mensaje del correo leído, se encarga de procesar la tarea contenida en el
cuerpo del mensaje. Es aquí donde dependiendo de la tarea y de la seguiradad de dicho
mensaje, se conecta a la base para ejecutar la correspondiente tarea enviada.
53
Public Function Func_ProcesaMensaje(sMensaje As String) As Boolean
Dim sCadena As String
Dim sCadenaPermiso As String
Dim sNombreRespaldo As String
Dim sCadenaBase As String
Dim sCadenaTarea As String
Dim sCadenaArchivo As String
Dim sCadenaArchivo2 As String
Dim sCadenaModo As String
Dim sCadenaFecha As String
Dim sTipoConsulta As String
Dim adoRcdset As New ADODB.Recordset
On Error GoTo eMensaje
Dim sqlQuery As String
Dim sMensajeErr As String
Dim sDirRespaldo As String
Dim sArchivo As String
Dim sPosCaracter As Integer
Dim sUsuarioPermiso As String
Dim sContraseñaPermiso As String
Dim sCadenaTipoFrecuncia As String
Dim sCadenaIntervaloFrecuencia As String
54
Dim sCadenaTipoSubFrecuencia As String
Dim sCadenaIntervaloSubFrecuencia As String
Dim sCadenaFechaDesde As String
Dim sCadenaFechaHasta As String
Dim sCadenaHoraDesde As String
Dim sCadenaHoraHasta As String
sTipoConsulta = ""
Func_ProcesaMensaje = False
If sMensaje = "" Then Exit Function
Func_ProcesaMensaje = False
sMensajeCorreo = Trim(UCase(sMensaje))
sMensajeCorreo = Trim(Replace(sMensajeCorreo, Chr(13), Chr(32), _
1, -1, vbTextCompare))
sMensajeCorreo = Trim(Replace(sMensajeCorreo, Chr(10), Chr(32), _
1, -1, vbTextCompare))
sCadenaPermiso = Func_ExtraeBloque("Usuario", ":", ".")
If sCadenaPermiso <> "" Then
sPosCaracter = InStr(1, sCadenaPermiso, sCaracterClave, _
vbTextCompare)
sUsuarioPermiso = Mid(sCadenaPermiso, 1, sPosCaracter - 1)
sContraseñaPermiso = Mid(sCadenaPermiso, sPosCaracter + 1, _
Len(sCadenaPermiso))
55
Else
sPosCaracter = 0
sUsuarioPermiso = ""
sContraseñaPermiso = ""
End If
Dim sUsuario As String
Dim sClave As String
sUsuario = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "UsuarioApl"))
sClave = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ContraseñaApl"))
sClave = fg_CifrarCaracter(sClave, sCaracterClave, True)
If sUsuarioPermiso = UCase(sUsuario) And _
sContraseñaPermiso = sClave Then
sCadenaBase = Func_ExtraeBloque("BASE", ":", ".")
If sCadenaBase = "" Then GoTo eMensaje
sCadenaTarea = Func_ExtraeBloque("TAREA", ":", ".")
If sCadenaTarea = "" Then GoTo eMensaje
sCadenaModo = Func_ExtraeBloque("MODO", ":", ".")
If sCadenaModo = "" And sCadenaTarea <> "LISTARESPALDO" _
Then GoTo eMensaje
sCadenaArchivo = Func_ExtraeBloque("Archivo", ":", ".")
56
sCadenaArchivo2 = Func_ExtraeBloque("Archivo", ":", ".")
If sCadenaArchivo = "" And sCadenaArchivo2 = "" And _
sCadenaModo = "RESTAURAR" Then GoTo eMensaje
sCadenaFecha = Func_ExtraeBloque("FECHA", ":", ".")
If sCadenaFecha = "" And sCadenaTarea = "LISTARESPALDO" _
Then GoTo eMensaje
sCadenaTipoFrecuncia = Func_ExtraeBloque("TipoFrecuencia", _
":", ".")
If sCadenaTipoFrecuncia = "" And sCadenaTarea <> _
"TAREAPROGRAMADA" Then GoTo eMensaje
sCadenaIntervaloFrecuencia = Func_ExtraeBloque _
("IntervaloFrecuencia", ":", ".")
If sCadenaIntervaloFrecuencia = "" And sCadenaTarea <> _
"TAREAPROGRAMADA" Then GoTo eMensaje
sCadenaTipoSubFrecuencia = Func_ExtraeBloque _
("TipoSubFrecuencia", ":", ".")
If sCadenaTipoSubFrecuencia = "" And sCadenaTarea <> _
"TAREAPROGRAMADA" Then GoTo eMensaje
sCadenaIntervaloSubFrecuencia = Func_ExtraeBloque _
("IntervaloSubFrecuencia", ":", ".")
If sCadenaIntervaloSubFrecuencia = "" And sCadenaTarea <> _
"TAREAPROGRAMADA" Then GoTo eMensaje
57
sCadenaFechaDesde = Func_ExtraeBloque("FechDesde", ":", ".")
If sCadenaFechaDesde = "" And sCadenaTarea <> "TAREAPROGRAMADA" _
Then GoTo eMensaje
sCadenaFechaHasta = Func_ExtraeBloque("FechHasta", ":", ".")
sCadenaHoraDesde = Func_ExtraeBloque("HoraDesde", ":", ".")
If sCadenaHoraDesde = "" And sCadenaTarea <> "TAREAPROGRAMADA" _
Then GoTo eMensaje
sCadenaHoraHasta = Func_ExtraeBloque("HoraHasta", ":", ".")
Dim sContraseña As String
oclsConexion.sNomServidorDB = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + const_Clave1, _
"ServidorDB"))
oclsConexion.sUsuarioDB = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + const_Clave1, "UsuarioDB"))
sContraseña = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + const_Clave1, _
"ContraseñaDB"))
oclsConexion.sContraseñaDB = fg_CifrarCaracter(sContraseña, _
sCaracterClave, True)
oclsConexion.sTipoConexionDB = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + const_Clave1, _
"TipoCuenta"))
58
Call oclsConexion.Func_ConexionServidorDB
Dim sAnio As String
Dim sMes As String
Dim sDia As String
Dim sHora As String
Dim sMinutos As String
Dim sFecha As String
Dim sTiempo As String
sFecha = Date
sTiempo = Time
sAnio = Format(Year(Date), "0000")
sMes = Format(Month(Date), "00")
sDia = Format(Day(Date), "00")
sHora = Format(Hour(sTiempo), "00")
sMinutos = Format(Minute(sTiempo), "00")
sDirRespaldo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave4, "RutaRespaldo"))
sqlQuery = ""
If sCadenaTarea = "LISTARESPALDO" Then
sTipoConsulta = "RETORNA"
sqlQuery = " sp_ReporteListadoRespaldos '" & sCadenaBase & _
"','" & sCadenaFecha & "' "
59
ElseIf sCadenaTarea = "RESPALDO" Then
If sCadenaModo = "COMPLETO" Then
sNombreRespaldo = sAnio + sMes + sDia
sqlQuery = " sp_RespaldoCompleto '" & sCadenaBase & "','" & _
sDirRespaldo & "','" & sNombreRespaldo & "' "
ElseIf sCadenaModo = "DIFERENCIAL" Then
sNombreRespaldo = sAnio + sMes + sDia + sHora + sMinutos
sqlQuery = " sp_RespaldoDiferencial '" & sCadenaBase & "','" _
& sDirRespaldo & "','" & sNombreRespaldo & "' "
End If
sTipoConsulta = "RETORNAD"
ElseIf sCadenaTarea = "RESTAURAR" Then
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave4, "RutaRespaldo"))
If sCadenaModo = "COMPLETO" Then
If Func_ValidaRespaldoExista(sArchivo, sCadenaArchivo + _
".bak") Then
sqlQuery = " sp_RestauracionCompleta '" & sCadenaBase & _
"','" & sDirRespaldo & "','" & sCadenaArchivo & "' "
Else
sCadena = "El archivo de respaldo no existe o no " _
& "se encuentra disponible en la ruta determinada"
60
sTipoConsulta = "ERRARCHIVO"
End If
ElseIf sCadenaModo = "COMPLETODIFERENCIAL" Then
If Func_ValidaRespaldoExista(sArchivo, sCadenaArchivo + _
".bak") And Func_ValidaRespaldoExista(sArchivo, _
sCadenaArchivo2 + ".bak") Then
sqlQuery = " sp_RestauracionConDiferencial '" & _
sCadenaBase & "','" & sDirRespaldo & "','" & _
sCadenaArchivo & "','" & sCadenaArchivo2 & "'"
Else
sCadena = "El archivo(s) de respaldo no existen o no " _
& "se encuentran disponibles en la ruta determinada"
sTipoConsulta = "ERRARCHIVO"
End If
End If
ElseIf sCadenaTarea = "TAREAPROGRAMADA" Then
If sCadenaFechaHasta = "" Then
sCadenaFechaHasta = "9999/12/31"
End If
If sCadenaHoraHasta = "" Then
sCadenaHoraHasta = "23-59-59"
End If
61
sqlQuery = ""
sqlQuery = " sp_CreacionTareaProgramada '" & sCadenaBase & _
"','" & sDirRespaldo & "','" & sNombreRespaldo & "'"
sqlQuery = sqlQuery & ",'" & sCadenaFechaDesde & "','" & _
sCadenaFechaHasta & "','" & sCadenaHoraDesde & "','" & _
sCadenaHoraHasta & "',"
sqlQuery = sqlQuery & CInt(sCadenaTipoFrecuncia) & "," & _
CInt(sCadenaIntervaloFrecuencia) & "," & CInt _
(sCadenaTipoSubFrecuencia) & "," & CInt _
(sCadenaIntervaloSubFrecuencia) & ""
sTipoConsulta = ""
ElseIf sCadenaTarea = "TAREAPROGDETENER" Then
sCadenaFechaHasta = Format(Now, "yyyy/mm/dd")
sCadenaHoraHasta = Format(Time, "HH:MM:SS")
sqlQuery = ""
sqlQuery = " sp_DetenerTareaProgramada '" & sCadenaModo & "','" _
& sCadenaFechaHasta & "','" & sCadenaHoraHasta & "'"
sTipoConsulta = ""
End If
If sTipoConsulta = "" Then
oclsConexion.adoConexion.Execute sqlQuery
sCadena = "Ejecucion realizada correctamente: " & sqlQuery
62
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoAuditoria"))
Call Proc_RegErroresArchivo(sCadena, sArchivo)
Call Func_EnvioCorreo(sCadena)
sCadena = ""
sTipoConsulta = ""
Func_ProcesaMensaje = True
ElseIf sTipoConsulta = "RETORNAD" Then
oclsConexion.adoConexion.Execute sqlQuery
sCadena = "Ejecucion realizada correctamente: " & sqlQuery
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoAuditoria"))
Call Proc_RegErroresArchivo(sCadena, sArchivo)
sCadena = ""
sCadena = sCadenaBase & " - " & sCadenaBase & sNombreRespaldo _
& " - " & sCadenaModo
Call Func_EnvioCorreo("Ejecucion realizada correctamente: " & _
Chr(13) & "Base-Nombre-Tipo" & Chr(13) & sCadena)
sTipoConsulta = ""
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoConsulta"))
Call Proc_RegErroresArchivo(sCadena, sAnio + sMes + "-" + _
63
sCadenaBase + sArchivo)
sCadena = ""
sTipoConsulta = ""
Func_ProcesaMensaje = True
ElseIf sTipoConsulta = "RETORNA" Then
Set adoRcdset = oclsConexion.adoConexion.Execute(sqlQuery)
sCadena = "Ejecucion realizada correctamente: " & sqlQuery
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoAuditoria"))
Call Proc_RegErroresArchivo(sCadena, sArchivo)
sCadena = ""
Dim sRutaArchivo As String
sRutaArchivo = Trim(oclsRegistro.ConsultarValor _
(HKEY_CURRENT_USER, const_Directorio + const_Clave3, _
"RutaArchError")) + "\" + sAnio + sMes + "-" + sCadenaBase _
+ Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoConsulta"))
Call Func_EnvioCorreo("Ejecucion realizada correctamente", _
sRutaArchivo)
sCadena = ""
sTipoConsulta = ""
Func_ProcesaMensaje = True
64
ElseIf sTipoConsulta = "ERRARCHIVO" Then
sCadena = "Ejecucion no realizada: " & sCadena
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoErrores"))
Call Proc_RegErroresArchivo(sCadena, sArchivo)
Call Func_EnvioCorreo(sCadena)
sCadena = ""
sTipoConsulta = ""
Func_ProcesaMensaje = True
End If
oclsConexion.adoConexion.Close
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "UltimoCorreoLeido", sMsmUidl, _
REG_SZ)
With frmSession
.oSession.DeleteMessage .lvwMessages.SelectedItem.Text
.lvwMessages.ListItems.Remove .lvwMessages.SelectedItem.Index
End With
Exit Function
Else
65
sMensajeErr = ""
sMensajeErr = sMensajeErr + ": No se puedo procesar mensaje: " + _
sMensaje
sMensajeErr = sMensajeErr + ": No supero la validación de " & _
"seguridad: "
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoErrores"))
Call Proc_RegErroresArchivo(sMensajeErr, sArchivo)
Call oclsRegistro.CrearNuevaClave(HKEY_CURRENT_USER, _
const_Directorio + const_Clave2)
Call oclsRegistro.EstablecerValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave2, "UltimoCorreoLeido", _
sMsmUidl, REG_SZ)
Exit Function
End If
sMensajeErr = ""
sMensajeErr = sMensaje + ": Error al Ejecutar: " + sqlQuery
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoErrores"))
Call Proc_RegErroresArchivo(sMensajeErr, sArchivo)
adoRcdset.Close
Func_ProcesaMensaje = True
66
Exit Function
eMensaje:
Call Func_EnvioCorreo("Ejecucion no se realizo correctamente: " & _
sqlQuery)
sMensajeErr = ""
sMensajeErr = sMensaje & ": Error al Ejecutar: " & sqlQuery & _
vbCrLf
sArchivo = Trim(oclsRegistro.ConsultarValor(HKEY_CURRENT_USER, _
const_Directorio + const_Clave3, "ArchivoErrores"))
Call Proc_RegErroresArchivo(sMensajeErr, sArchivo)
adoRcdset.Close
Func_ProcesaMensaje = False
End Function
67
Descripción de las Herramientas
MS Visual Basic 6.0
Esta herramienta de programación que ofrece una plataforma gráfica para realizar
interfaces que utilicen las características del Sistema Operativo Windows, dando al
usuario una atractiva interface y que pueda relacionar con los otros programas del
sistema que este brinda.
Se escogió Visual Basic, como plataforma de trabajo para el desarrollo de la interface,
debido a la experiencia obtenida programando aplicaciones, además porque ofrece gran
facilidad en el manejo de sus herramientas, un uso mínimo de las líneas de código.
Entre las ventajas que presenta este lenguaje de programación esta su facilidad para
programar aplicaciones de cierta complejidad para Windows.
68
MS SQL Server 2005
Este motor de base de datos está diseñado para ayudar a las empresas a enfrentar desafíos
como la necesidad de tomar decisiones más rápidas y más orientadas a datos, la
necesidad de aumentar la productividad y flexibilidad del personal de desarrollo.
SQL Server es una solución de datos global, integrada y de extremo a extremo que
habilita a los usuarios en toda su organización mediante una plataforma más segura,
confiable y productiva para datos empresariales y aplicaciones de BI. SQL Server 2005
provee herramientas sólidas y conocidas a los profesionales de IT, así como también a
trabajadores de la información, reduciendo la complejidad de la creación, despliegue,
administración y uso de aplicaciones analíticas y de datos empresariales en plataformas
que van desde los dispositivos móviles hasta los sistemas de datos empresariales. A
través de un conjunto global de características, la interoperabilidad con sistemas
existentes y la automatización de tareas rutinarias, SQL Server 2005 ofrece una solución
completa de datos para empresas de todos los tamaños.
69
Cuenta de Correo
A través de una cuenta de correo el Administrador de Bases de Datos podrá enviar
peticiones a la aplicación la cual se encargará a su vez de ejecutar la instrucción
correspondiente en la petición, y recibir la confirmación de la ejecución de determinada
tarea.
Sistema Operativo
Desde cualquier sistema operativo basado en Windows, ya sea este XP, Vista, 7, Server
2000/2003/2008.
70
Capítulo IV
MANUAL DE USUARIO
71
Introducción
Este proyecto fue desarrollado basado en la necesidad de una nueva forma de conexión
remota entre el DBA o profesional de Sistemas, que necesita poder resolver problemas
con respecto a los respaldos y restauraciones de Bases de Datos, para poder resolver
situaciones que se llegasen a presentar sobre todo cuando él se encuentra fuera de su área
de trabajo. Mediante este prototipo de aplicación se podrá a través de un formato de
mensaje enviar un correo para realizar una tarea determinada como respaldo o
restauración de una base de datos que se necesite realizar.
Inicio de Sesión
Grafico No. 12.
Pantalla de Inicio de Sesión
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
72
Para ingresar al sistema se debe ingresar el usuario, que se configura inicialmente al
instalar la aplicación, seguido de la contraseña.
Una vez autenticado el usuario y la contraseña, se podrá tener acceso al sistema
prototipo.
Cambio de Contraseña
Grafico No. 13.
Pantalla Inicio de Sesión, cambio de contraseña.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
Podemos realizar el cambio de contraseña cada que se crea necesario, o cuando este
pronto a caducar el tiempo de vigencia de la clave vigente.
Para proceder al cambio de la contraseña se accede desde la pantalla de inicio de sesión,
en el botón Cambiar Contraseña
la cual dará acceso al Cambio de
Contraseña. Para ello se requiere de digitar la contraseña actual o anterior, y digitar la
73
contraseña nueva. Por asuntos de seguridad se requiere la confirmación de la contraseña
nueva. Una vez que registrado los campos requeridos, se procede a grabar.
Para el cambio de la contraseña no se podrá utilizar las últimas 5 contraseñas utilizadas
anteriormente, esto se realiza por asuntos de seguridad.
Pantalla Principal
Grafico No. 14.
Pantalla principal.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
74
Esta es la pantalla principal o Menú principal del prototipo de la aplicación, contiene las
3 opciones Configuración, Proceso y Ayuda.
Podemos acceder mediante:
•
El menú.
•
Los botones de acceso.
•
Las teclas de acceso.
Configuración
Dentro de esta opción tenemos 3 pestañas de ingreso de parámetros, para el correcto
desenvolvimiento de la aplicación.
La primera pestaña es la de configuración de correo, en la cual se ingresará:
La cuenta de correo, cuenta de la aplicación, donde se leerán los mensajes enviados por
el administrador del Departamento de Sistemas, debe ser de un Proveedor de correo con
servidor de correo POP3 y SMTP, como los es Yahoo.
La contraseña, la misma que se definió al crear la cuenta de correo, del proveedor
elegido.
75
Grafico No. 15.
Pantalla de Registro de parámetros.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
Tipo de cuentas, en este caso el servidor de correo POP3.
Servidor Entrante, la dirección del servidor entrante, de acuerdo al proveedor de correo
elegido. Así también como el número de puerto del servidor entrante utilizado para la
comunicación.
76
Servidor Saliente, la dirección del servidor saliente, de acuerdo al proveedor de correo
elegido. Así también como el número de puerto del servidor saliente utilizado para la
comunicación.
Cuenta de correo destino, la cuenta de correo desde la cual se enviarán los mensajes y la
de la cual solo se aceptará correos entrantes, para el procesamiento del mensaje.
Autenticación, el tipo de autenticación del servidor de datos de MS Sql Server 2005.
Servidor de datos, nombre del servidor de datos en el cual se encuentra la o el grupo de
bases y sobre la cual se hará las tareas de respaldo y restauración.
Usuario, en caso de que la autenticación sea mediante SQL, se deberá especificar el
usuario permitido para las tareas a realizar sobre el servidor.
Contraseña, la contraseña asignada al usuario del servidor de base.
Respaldos
En esta pantalla se configurará los directorios donde se tendra guardados los respaldos
generados desde la aplicción, así como también los directorios de los archivos de errores,
77
el cual grabará el tipo de error ya sea por conexion a la cuenta en la lectura y envío, como
error en la conexión con el servidor de base de datos y errores en el emnsaje de ejecución
Grafico No. 16.
Pantalla de Configuración de Respaldos.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
de la tarea de respaldo o restauración. Los archivos de auditorias, contendrán las
sentencias que se ejecutan correctamente para poder saber en que tiempo se ejecuto la
tarea sobre la base. Los archivos de consulta, que contienen el listado de los respaldos
generados desde la aplicación por cada base existente, para ser enviada en el momento en
que se la solicite y basarse en ella para una restauración.
78
Seguridades
Grafico No. 17.
Panalla de Configuración de seguridades.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
En esta pestaña, se registrará variables de seguridad en cuanto a usuario ante la recepción
de una tarea, vigencia de la contraseña, y direcciones de respaldos de los archivos.
Usuario, el usuario permitido al que se le podrá realizar la ejecución o procesamiento de
las tareas recibidas por correo.
Contraseña, del usuario permitido.
79
Vigencia de la Contraseña, días de vigencia que tendrá una clave, para proceder al
cambio de contraseña.
Proceso
El proceso consiste en la lectura de los mensajes de correo de la bandeja de entrada de la
cuenta de correo de la aplicación ([email protected]), y mostrarlos en la bandeja
de entrada de la aplicación, para poder procesar uno a uno según el orden de llegada.
Una vez que los correos se encuentran en la bandeja de entrada, serán procesados para
ejecutar la correspondiente tarea.
Grafico No. 18.
Pantalla de Recepción de mensajes de correo.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
80
Una vez procesado el mensaje según el estado de la resolución de la tarea esta se
guardará en un archivo de texto, ya sea para auditoría, error, o consulta de listado.
Ayuda
Grafico No. 19.
Pantalla de Ayuda de la aplicación.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
La aplicación consta de una ayuda rápida dentro de la cual se explica cada uno de los
procesos, así como también el significado de algunos términos y la bibliografía en la cual
se basó el desarrollo de la aplicación.
81
Formato de mensajes de correo
Grafico No. 20.
Pantalla de Envío de Correo desde Gmail.
Elaborado: Alberto C. Arreaga C..
Fuente: Programa.
Para el envio de los mensajes de correo hacia la cuenta de correo de la aplicación, estos
deberán seguir un formato, según, la tarea a realizar deberan cumplir con los requisitos
de solicitud de datos enviados para poder ejecutar la tarea respectiva, caso contrario se
ignorará la tarea y se enviará un mensaje de error, debido a la falta de parámetros.
Estos formatos constarán en su primera línea con el nombre del usuario de la aplicación y
la contraseña, esto par poder autenticar la tarea a ejecutar, y comprobar que el usuario
82
que envía es el encargado de la aplicación, ya que la clave la actualizará cada cierto
tiempo y es el quien sabrá en ese momento la clave de ejecución de la tarea.
Gráfico No. 21.
Tareas de la aplicación.
Completa
Tareas de Respaldo
Diferencial
Completa
Tarea de Restauración
Completa y Diferencial
Conaulta de Listado de Respaldos
Creación
Trabajos Programados
Modificación
Eliminación
Elaborado: Alberto C. Arreaga C.
Fuente: Codificación de la aplicación.
83
Formatos de Tarea Respaldo Completo
Usuario: administra&456.
Base: AdmDemo.
Tarea: Resapldo.
Modo: Completo.
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (Respaldo). Y finalmente en la etiqueta modo, la forma
como se realizará el respaldo (Completo).
Formatos de Tarea Respaldo Diferencial
Usuario: administra&456.
Base: AdmDemo.
Tarea: Resapldo.
Modo: Diferencial.
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
84
el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (Respaldo). Y finalmente en la etiqueta modo, la forma
como se realizará el respaldo (Diferencial).
Formatos de Tarea Restauración Completa
Usuario: administra&456.
Base: AdmDemo.
Tarea: Restaurar.
Modo: Completo.
Archivo: AdmDemo20100721.
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
el nombre de la base de datos dqe lq que se le realizará la restauración (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (Restaurar). En la etiqueta Modo, la forma como se
realizará la restauración (Completo), ya que se utilizará un solo archivo para resturar. Y
finalmente en la etiqueta Archivo, el nombre de archivo de respaldo que tomará como
referencia para resturar la base de datos a la fecha que se generó (AdmDemo20100721).
85
Formatos de Tarea Restauración Completo y Diferencial
Usuario: administra&456.
Base: AdmDemo.
Tarea: Restaurar.
Modo: CompletoDiferencial.
Archivo: AdmDemo20100721.
Archivo2: AdmDemo201007211914.
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
el nombre de la base de datos dqe lq que se le realizará la restauración (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (Restaurar). En la etiqueta Modo, la forma como se
realizará la restauración (CompletoDiferencial), esta vez se utilizará 2 archivo para
resturar. En la etiqueta Archivo, el nombre de archivo de respaldo completo que tomará
como referencia para resturar la base de datos a la fecha que se generó
(AdmDemo20100721). Y finalmente en la etiqueta Archivo2 el nombre de archivo de
respaldo diferencial hasta el cual se desea restaurar la base de datos. Esto suele darse
cuando solo queremos que se restauren los datos de la base hasta cierto tiempo.
86
Formatos de Listado de Respaldo
Usuario: administra&456.
Base: AdmDemo.
Tarea: ListaRespaldo.
Fecha: 2010/07/21.
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (ListaRespaldo). Y finalmente en la etiqueta Fecha, la
fecha a la que se desea los respaldos (2010/07/21).
Formatos de Creación de Tareas Programadas
Este formato consta en la etiqueta Usuario con el nombre del usuario (administra)
seguido del símbolo & y aontinuación la clave del usuario (456). En la etiqueta Base, irá
el nombre de la base de datos a la cual se le realizará el respaldo (AdmDemo). En la
eiqueta Tarea, la tarea a realizar (TareaProg). En la etiqueta Modo irá completo en
referencia al respaldo a realizar en la tarea programada. En la etiqueta TipoFrecuencia, se
refiere a la frecuencia con la que se dará la tarea (4: Diaria).
87
Usuario: administra&456.
Base: AdmDemo.
Tarea: TareaProg.
Modo: Completo.
TipoFrecuencia: 4.
IntervaloFrecuencia: 1.
TipoSubFrecuencia: 8.
IntervaloSubFrecuencia: 3.
FechDesde: 2010/09/01.
FechHasta: .
HoraDesde: 07-00-00.
HoraHasta: 19-00-00.
88
ANEXOS
Tomo II
89
OstroSoft - Componente POP3 (OSPOP3)
Descripción
Componente OstroSoft POP3 (OSPOP3) es un archivo para recuperar mensajes de correo
electrónico mediante programación. Funciona con cuentas POP3. Soporta correo
electrónico segura (TLS / SSL), correo electrónico (MIME) archivos adjuntos, correo
HTML, cabeceras personalizadas, objetos incrustados.
Componente permite recuperar y eliminar mensajes de correo electrónico de servidor de
correo POP3, estado del buzón de verificación, los mensajes de analizar recuperar
mediante programación y lenguajes de script de apoyo. NET y COM. La nueva versión
añade soporte para conexiones seguras (SSL / TLS).
La nueva versión soporta todos los métodos y las propiedades de una versión anterior,
pero no es compatible con versiones anteriores, ya que se basa en una tecnología
diferente (. NET frente componente COM).
Actualización de 3.0.1 incluye correcciones para la recuperación de archivos adjuntos
grandes, restablecer la sesión y la propiedad. Contraseña. Además, se añaden ejemplos de
código para VB.NET, Visual Basic 6 y C #.
Dentro de las próximas semanas vamos a proporcionar el código de ejemplo para los
lenguajes de programación más y entornos.
90
Biblioteca de COM para recuperar mensajes de correo electrónico del servidor de correo
POP3, comprobar el estado del buzón, el análisis de los mensajes recuperados desde
Visual Basic 6 y otros programas y lenguajes de scripting, soporte COM.
Licencias
Cuadro No. 17.
Licencias de Componente OSPOP3
Tipo Licencia
Licencia no comercial
Valor
free libre
El uso ilimitado para el desarrollo de
1 aplicaciones no comerciales.
Desarrollador de licencia
$19.00
Para un solo programador para desarrollar y
2 distribuir una aplicación comercial único.
Licencia de servidor
$59.00
Para su uso en una aplicación comercial,
3 instalado en un único servidor.
Empresa de licencia
$139.00
Para los programadores dentro de una empresa
para desarrollar y distribuir un número
4 ilimitado de aplicaciones comerciales.
Elaborado: Alberto C. Arreaga C..
Fuente: http://www.ostrosoft.com/.
91
BIBLIOGRAFIA
92
Bibliografía
Libros
Revisión de las fases para el desarrollo de un sistema, Ingeniería de Software, un
enfoque práctico, 5ta. Edición, Roger S. Pressman.
Revisión del Desarrollo de Diagramas de Caso de Uso, Tesis de Grado T-7, Portal
Inteligente, Febrero 18 del 2005, desarrollada por J. Rodríguez, A. Agana, D. Del Pino,
F. Fernández.
Revisión del Desarrollo del Manual Técnico, Proyecto de Grado PG-116, Portal de
Ventas de Supermercado por Internet manejando Pedidos y Listas de Compras
recurrentes por Usuario, Febrero 7 del 2008, desarrollado por E. Avilés, E. Loaiza, B.
Macías.
Revisión del Desarrollo del Manual de Usuario, Proyecto de Grado PG-276, Desarrollo
de un Sistema de Votaciones Electrónicas, Mayo 17 del 2010, desarrollada por A.
Vásquez, A. Aroni, S. Rosales.
93
Publicaciones
Ley de Comercio Electrónico, Firmas Electrónicas y Mensajes de Datos, Congreso
Nacional del Ecuador, Ley 2002-67 (Registro Oficial 557-S, 17-IV-2002).
Direcciones Web
Componente OSPOP3.dll, que permite recuperar y eliminar mensajes de correo
electrónico de un servidor de correo POP3. http://www.ostrosoft.com
Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0:
http://www.recursosvisualbasic.com.ar
Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0:
http://www.foro.vb-mundo.com
Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0:
http://www.canalvisualbasic.net
94
Ayuda sobre código de la herramienta utilizada, MS Visual Basic 6.0:
http://www.elguille.info/vb/default.aspx
Ayuda sobre desarrollo de una tesis: http://www.monografias.com
Sentencias de Respaldo, ayuda cobre los comandos para lograr un respaldo:
http://msdn.microsoft.com/es-es/library/ms186865%28v=SQL.90%29.aspx
Sentencias de Restauración, ayuda sobre los comandos para lograr una restauración:
http://msdn.microsoft.com/es-es/library/ms186858%28v=SQL.90%29.aspx
Descargar