Visual Basic - Guía del Estudiante Cap

Anuncio
1
Visual Basic - Guía del Estudiante
Apuntes finales sobre bases de datos y Visual Basic
Bases de Datos SQL Server y Oracle
Las bases de datos más conocidas de las utilizadas en plataforma Windows son posiblemente
Oracle y SQL Server. Cualquier programador conoce al menos unas de ellas. Queremos
explicar aquí los pasos que hay que realizar para poder “ver” la base de datos y trabajar con
ella desde Visual Basic.
Una base de datos de esta categoría va a estar instalada con toda seguridad en un servidor, y
accederemos a ella desde otro ordenador, que será el cliente. Puede estar instalada si lo desea
en el mismo ordenador, pero en ese caso deberá tratarlo como si su ordenador trabajase al
tiempo como servidor y como cliente.
La instalación de la base de datos dentro del servidor es bastante compleja, y no se va a
explicar en este curso. Se supone que el suministrador de la BD explicará como hacerlo. La
instalación de SQL Server exige que se haga sobre un PC o Net Server que tenga Windows
2000 Server (o NT Server), sistema operativo que no se suele instalar en los PCs de cliente y
mucho menos en los PC domésticos. Oracle dispone de una versión con prestaciones algo
reducidas que le permite instalarla en un puesto con Windows 98, en configuración
monousuario, circunstancia que permite hacer pruebas de funcionamiento en PCs particulares,
pero que no es la instalación típica que puede existir en una organización o empresa. Nos
referiremos siempre en este capítulo a la instalación convencional, de un servidor donde se
aloja la base de datos, y una serie de puestos clientes conectados a él mediante Red de Area
Local.
En la base de datos es necesario introducir los nombres de usuario que están permitidos, y la
clave de acceso para cada usuario. Lógicamente para que un puesto pueda acceder a la BD
debe conocer su nombre de usuario y la clave de acceso. Estos datos normalmente se
introducen en el cliente en su configuración, y no es necesario teclearlas cada vez que se inicia
una sesión.
La configuración del sistema de la base de datos es la de cliente - servidor.
El servidor tiene un programa que es el Gestor de la Base de Datos. La base de datos
propiamente dicha estará formada por uno o más ficheros con los datos que tienen introducidos
y la estructura de tablas, consultas e índices que tenga. El programa gestor es quien controla
estos ficheros y puede obtener de ellos los datos en una forma adecuada.
El cliente necesita tener un programa que será el que se comunique con el programa gestor
que está en el servidor. Este programa lo realiza el mismo fabricante de la base de datos y se
distribuye en el mismo disco que el programa servidor y el resto del sistema. A esta parte de la
aplicación cliente – servidor que se instala en cada cliente se le llama Componentes de
Conectividad. Y la misión de estos componentes de conectividad es servir de intermediario
entre el gestor de la base de datos instalado en el servidor, y el programa que en el equipo
cliente va a manejar los datos de esa base de datos. Este programa que va a manejar los datos
puede ser el Administrador Corporativo de SQL Server, el Developper 2000 de Oracle, o una
aplicación realizada por nosotros en Visual Basic. Pero el funcionamiento es siempre el
mismo, el programa que va a manejar los datos en el cliente conecta con el programa
Componentes de Conectividad y es este quien conecta con el Gestor de la Base de Datos
para que realice la operación que tenga que realizar y le devuelva, si ha lugar, la información
extraída de la base de datos. Por lo tanto para poder trabajar desde un cliente con la base de
datos, es necesario que en el servidor esté corriendo el programa gestor de la base de datos, y
en el cliente, que estén instalados los componentes de conectividad.
Los componentes de conectividad, tal como se dijo más atrás, están fabricados por el mismo
fabricante de la BD, pero no se extrañe si encuentra algún programa fabricado por otro
Manuel de Visual Basic
2
fabricante. Para Oracle hay varios fabricantes que han realizado un producto de este tipo. No
es difícil, ya que al tratarse de una aplicación cliente – servidor, lo único importante es el
protocolo de comunicación entre el programa gestor de la BD y los componentes de
conectividad. Vea el capitulo correspondiente a aplicaciones cliente –servidor para más
detalles.
Instalación de los componentes de conectividad para SQL Server
Para instalar los componentes de conectividad de SQL Server en un puesto cliente basta con
introducir el disco de distribución de SQL Server y dejar que se ejecute el Autorun.
Se le indica que instale el servidor de bases de datos. Al darse cuenta que no tiene Windows
2000, dice que no puede instalar más que los componentes del cliente.
Deje que siga la instalación aceptando todos los aviso que se produzcan. Llegará a esta
ventana:
SQL Server tiene dos discos, Standard y Profesional. El Profesional le permite hacer
instalaciones en equipos remotos, y en ese caso estaría la opción Equipo Remoto habilitada.
No es nuestro caso, ya que solamente debemos instalar en el equipo local. Siga la instalación
en la que en sucesivas ventanas le aparecerá la opción: “Crear una nueva instancia de SQL
Server o instalar herramientas de cliente”. Acepte esa opción. A continuación le pide el nombre
y contraseña. Se refiere a la del equipo, no al de la base de datos. Acepte. Llegará a la
ventana siguiente:
Manuel de Visual Basic
3
En esta ventana puede elegir instalar Solo conectividad (es lo que necesita para que un
programa realizado en visual basic funcione), Solo herramientas cliente (le instalará, además
de la conectividad, el Administrador Corporativo, Analizador de consultas, y otras herramientas
de SQL Server. El Administrado Corporativo es la interfase que SQL Server suministra para ver
la base de datos, tanto la estructura como los datos. No es necesario para que funcione una
aplicación realizada en Visual Basic, que lo único que necesita es conectarse a través de los
Componentes de Conectividad.
Vaya aceptando todas las ventanas y la instalación terminará con éxito.
Una vez instalada la conectividad debe asegurarse que desde el cliente ve al servidor y que no
está cerrado el paso al puerto 1433 mediante algún Firewall u otro dispositivo. Ya puede
trabajar con la base de datos SQL Server.
Posiblemente le surja una pregunta ¿Contra que base, en qué servidor, con qué usuario y
clave de acceso? Con lo Ud. ponga en el programa de Visual Basic en la propiedad
ConnectionString del objeto Connection de ADO. Vea un ejemplo real:
ConexRAEN.ConnectionString = "Provider=SQLOLEDB.1;Password=lsuarez;Persist Security
Info=True;User ID=lsuarez;Initial Catalog=Ayudas_M;Data Source=seae_sql"
Aquí tienen todos los datos necesarios para conocer todas las preguntas que se hacía antes:
Provider=SQLOLEDB.1
Data Source=seae_sql
Initial Catalog=Ayudas_M
User ID=lsuarez
Password=lsuarez
Persist Security Info=True
Nombre del proveedor de datos
Nombre del servidor donde está la base de datos.
Nombre de la base de datos contra la que se abre la conexión.
Nombre de Usuario
Clave de acceso
¿
Manuel de Visual Basic
4
Instalación de la conectividad de Oracle
Para instalar la conectividad de Oracle ocurre algo parecido a SQL Server. Le recomiendo que
se instruya adecuadamente con los manuales de Oracle para su correcta instalación. No es
complicado, pero este autor no conoce Oracle como SQL Server.
Con el disco Oracle 7 Client
Software (He empleado la versión
7.3.4.0.0) introduzca el CD-Rom y
deje que se ejecute el Autorun. Le
aparecerá esto. Acepte
Le pide el idioma:
Le
van
apareciendo
sucesivas ventanas en
una le pide el directorio
donde quiere instalar el
programa, en otra le pide
permiso para cambiar
una línea del Autoexec,
etc. Acepte los valores
hasta que la instalación
se haya realizado por
completo.
Una vez terminada verá que le ha creado una carpeta llamada
Orant que puede ver expandida en esta figura.
En \Orant\Network\Admin tiene un fichero llamado Sqlnet.Ora que
contienen algo como esto.
AUTOMATIC_IPC = OFF
TRACE_LEVEL_CLIENT = OFF
names.directory_path = (TNSNAMES)
names.default_domain = world
name.default_zone = world
Fíjese en la línea
names.directory_path = (TNSNAMES)
Esta línea indica que el fichero TNSNAMES.ORA que está en la
misma carpeta contiene el fichero de configuración de SQL Net.
Contiene varios ejemplos, que le pueden servir para configurar la
conexión a su servidor.
El contenido de ese fichero en mi PC es esto:
Manuel de Visual Basic
5
#Este es un fichero de Configuración de SQL*Net generado por la Configuración Rápida de
SQL*Net.
#Atención: No modifique este fichero.
#Si lo hace, la Configuración Rápida de SQL*Net puede no funcionar correctamente.
Tcp-loopback.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 127.0.0.1)
(Port = 1521)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)
Beq-Local.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = beq.world)
(PROTOCOL = BEQ)
(PROGRAM = oracle73)
(ARGV0 = oracle73ORCL)
(ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')
)
)
(CONNECT_DATA = (SID = ORCL)
)
)
Intranet.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 10.3.22.4)
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 10.3.22.4)
(Port = 1526)
)
)
(CONNECT_DATA = (SID = SEUE2)
)
)
La parte que afecta a la aplicación en la que me conecto con Oracle es la que comienza por la
linea:
Intranet.world =
Los datos son reales. Pero he de manifestar que no conozco Oracle tan bien como para
explicarlo, y que la instalación la hizo personal de una distribuidora de Oracle. De cualquier
Manuel de Visual Basic
6
forma puede verse que está definiendo la conexión Intranet , que tienen el Host en la dirección
10.3.22.4 y el puerto de comunicación es el 1521, con una segunda alternativa en el puerto
1526.
Le recomiendo que si su caso es una conexión a Oracle se informe mejor de la configuración
de sus clientes. Es de suponer que los técnicos de Oracle le resuelvan las grandes dudas que
le pueden surgir por las escasa explicaciones de este curso…de Visual Basic.
Visual Basic con el que se escribió estas líneas para crear una conexión ADO con esa base de
datos:
Set ConexBDPrensa = New ADODB.Connection
ConexBDPrensa.ConnectionString = "Provider=MSDAORA.1;User ID=INTRANET;” & _
“Password=INTRANET;Data Source=intranet;Persist Security Info=False"
ConexBDPrensa.Open
El parámetro Data Source=intranet es el que emplea la conectividad de Oracle para buscar
en el fichero TNSNAMES.ORA la dirección del Host y el puerto empleado.
Puede darse cuenta que tanto en SQL Server como en Oracle estamos empleando conexiones
ADO. Podría hacerse también mediante RDO, creando un enlace ODBC (Para poder crear ese
enlace ODBC también es necesario instalar previamente la conectividad). Pero ODBC es una
tecnología que ya está considerada obsoleta, por lo que prescindimos de cualquier ejemplo.
Se sale necesariamente de este curso una explicación más profunda de estas dos bases de
datos.
Manuel de Visual Basic
Descargar