Visual Basic - Guía del Estudiante Cap. 15 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 Oracle y SQL Server Server.. Cualquie Cualquierr programad programador or conoce conoce al menos unas unas de ellas. Queremo Queremos s 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 que no se suele instalar en los PCs de cliente y mucho menos menos en los PC domésticos. Oracle dispone dispone de una versión con prestaciones prestaciones algo redu reduci cida das s que que le perm permit ite e inst instal alar arla la en un pues puesto to con con Windo Windows ws 98, 98, en conf config igur urac ació ión n monousuario, monousuario, circunstancia que permite hacer pruebas de funcionamiento 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 debe conoce conocerr su nombr nombre e de usuar usuario io y la clave clave de acceso acceso.. Estos Estos datos datos normal normalmen mente te 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. Datos. La base de datos El servidor tiene un programa que es el Gestor de 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. 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 funcionamient o 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 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 fabric fabrican ante te de la BD, pero pero no se extrañ extrañe e si encue encuentr ntra a algún algún progra programa ma fabric fabricad ado o por otro otro
LSB
Visual Basic Guía del Estudiante Cap. 15
Pág. 1
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 protoc protocolo olo de comu comunic nicaci ación ón entre entre el progra programa ma gestor gestor de la BD y los comp compone onente ntes s de conectivid conectividad. ad. Vea el capitulo capitulo correspon correspondien diente te a aplicaci aplicacione ones s cliente cliente –servido –servidorr 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ó instalación n aceptando aceptando todos todos los aviso que que se produzca produzcan. n. ventana:
Llegará Llegará a esta
SQL SQL Serve Serverr tiene tiene dos dos discos discos,, Stand Standard ard y Profes Profesion ional. al. El Profes Profesion ional al le permi permite te hace hacer r 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 contraseña.. Se refiere refiere a la del equipo, equipo, no al de la base base de datos. Acepte Acepte.. Llegará Llegará a la ventana siguiente:
LSB
Visual Basic Guía del Estudiante Cap. 15
Pág. 2
En esta ventana puede elegir instalar Solo conectividad (es lo que necesita para que un programa realizado realizado en visual basic funcione), funcione), Solo herramientas herramientas cliente (le instalará, además además de la conectividad, conectividad, el Administrador Corporativo, Analizador de consultas, y otras herramientas de SQL Server. El Administrado 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 realizada en Visual Basic, Basic, que lo único que necesita es conectarse 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 cerrado el paso al puerto puerto 1433 mediante mediante algún algún Firewall u otro dispositivo. 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 acce acceso so? ? Con Con lo Ud. Ud. ponga onga en el prog progra rama ma de Visua isuall Basi Basic c en la prop propie ieda dad d ConnectionString del objeto Connection de ADO. Vea un ejemplo real: ConexRAEN.ConnectionString ConexRAEN.ConnectionString = "Provider=SQLOLEDB.1;Pa "Provider=SQLOLEDB.1;Password=lsuarez;Persi ssword=lsuarez;Persist st 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: Provi ovider=SQLOLEDB.1 Data Data Sourc ource e=sea seae_sql _sql Initia Initiall Cata Catalog log=A =Ayud yudas as_M _M User ID=lsuarez Password=lsuarez Persist Security Info=True
LSB
Nombre de del pr proveedor de de da datos Nombre del se servid rvido or do donde est está á la la ba base de de da datos tos. Nomb Nombre re de la base base de datos datos contra contra la que se abre abre la la con conexi exión ón.. Nombre de Usuario Clave de acceso ¿
Visual Basic Guía del Estudiante Cap. 15
Pág. 3
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 Con el disco isco Oracle acle 7 Clie Client nt 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 sucesi sucesivas vas ventan ventanas as en una le pide el directorio donde donde quiere quiere instalar instalar el programa, en otra le pide perm permis iso o para para camb cambia iar r una una línea línea del del Autoe Autoexec xec,, etc. etc. Acep Acepte te los los valo valore res s hasta hasta que la instalació instalación n se haya aya real realiz izad ado o 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 \Orant\Network\Admin tiene un fichero fichero llamado Sqlnet.Ora Sqlnet.Ora que contienen algo como esto. AUTOMATIC_IPC = OFF TRACE_LEVEL_CLIENT = OFF names.directory_path names.directory_path = (TNSNAMES) names.default_domain = world name.default_zone = world Fíjese en la línea names.directory_path names.directory_path = (TNSNAMES) Esta línea indica que que el fichero TNSNAMES.OR TNSNAMES.ORA A 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:
LSB
Visual Basic Guía del Estudiante Cap. 15
Pág. 4
#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 Beq-Local.world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = beq.world) (PROTOCOL = BEQ) (PROGRAM = oracle73) (ARGV0 = oracle73ORCL) (ARGS = '(DESCRIPTION=(LO '(DESCRIPTION=(LOCAL=YES)(ADDRESS CAL=YES)(ADDRESS=(PROTOC =(PROTOCOL=beq)))') OL=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
LSB
Visual Basic Guía del Estudiante Cap. 15
Pág. 5
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 también es necesario instalar instalar previamente la conectividad). 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.
LSB
Visual Basic Guía del Estudiante Cap. 15
Pág. 6