Skip to content

3. Anexos

3.1. Crear un proyecto web con Visual Studio.net en XP familiar

Visual Studio.net permite desarrollar diferentes tipos de proyectos:

Image

Para crear un proyecto de aplicación web, normalmente se elige el tipo [Application Web ASP.NET]. Este tipo de proyecto requiere la presencia de un servidor web IIS, ya sea local o remoto. Si se trabaja en una máquina con Windows XP, este servidor no existe y no es posible instalarlo. Por lo tanto, no se puede crear un proyecto de tipo [Application Web ASP.NET].

Se puede sortear este obstáculo aceptando algunas desventajas menores. Basta con:

  • utilizar el servidor web Cassini en lugar del servidor IIS. Está disponible de forma gratuita en el sitio web de Microsoft.
  • utilizar un proyecto [Bibliothèque de classes] en lugar del proyecto [Application Web ASP.NET]

Creemos un proyecto sencillo que muestre cómo hacerlo.

  • Crear un proyecto [Bibliothèque de classes]
  • Eliminar [Class1.vb]

Image

  • Agregar un nuevo elemento al proyecto, de tipo [Fichier texte], y llamarlo [demo.aspx]:
  • El archivo [demo.aspx] se reconoce como una página web y se le asigna un editor de páginas. Este editor cuenta con dos paneles:
  • [design] para diseñar gráficamente la página
  • [HTML] para acceder al código de la página

Image

  • seleccionar [Affichage/Code] para mostrar la parte del código VB de la página. No pasa nada. No se tiene acceso al código VB de la página.
  • Ir al panel [HTML] e ingresar el código que conectará la página [demo.aspx] con el código [demo.aspx.vb]:

Image

  • solicitar ver el código de control asociado a la página mediante [Affichage code - F7]. Se obtiene el archivo [demo.aspx.vb]:

Image

  • la página [demo.aspx] ahora se reconoce como una página web [.aspx] con un código [.aspx.vb] asociado.
  • Volvamos al panel [Design] de [demo.aspx] y diseñemos la siguiente página:

Image

La página contiene texto y un componente de servidor de tipo [Label] con el identificador [lblHeure].

  • Pasemos al panel [HTML]. Allí encontramos el siguiente código:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>

Este código está incompleto desde el punto de vista de la sintaxis HTML. Completémoslo:

<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
<html>
    <head>
        <title>démo ASPX</title></head>
    <body>
        Démo ASPX, il est
        <asp:Label id="lblHeure" runat="server"></asp:Label>
    </body>
</html>
  • Pasemos al código [demo.aspx.vb] para escribir allí el código de control que insertará la hora en el componente [lblHeure]. Observamos que este no es reconocido por Intellisense, la herramienta de ayuda para escribir código.
  • Cerramos [demo.aspx] y [demo.aspx.vb] después de guardarlos, y luego los volvemos a abrir. Pasar al código [demo.aspx.vb]. Esta vez, Intellisense sí reconoce el componente [lblHeure] de [demo.aspx] en el código [demo.aspx.vb]. Completar el código:

Image

  • generar el proyecto mediante [Générer/Générer demo]. Si la generación se realiza correctamente, se generará el archivo DLL en la carpeta [bin] del proyecto:

Image

  • Ya estamos listos para las pruebas. Configuramos el servidor Cassini (véase el siguiente párrafo) de la siguiente manera:

Image

El destino del acceso directo a Cassini se define de la siguiente manera:

"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
E:\..\WebServer.exe
la ruta del ejecutable
D:\temp\07-04-05\demo
la ruta de la carpeta del proyecto web de Visual Studio
/demo
la ruta virtual asociada
  • Inicie Cassini. Su ícono aparecerá en la barra de tareas. Haga clic con el botón derecho sobre él y seleccione la opción [Show details] para verificar que el servidor web esté configurado correctamente:

Image

  • Con un navegador, accedamos a la página que hemos creado, solicitando la URL URL [http://localhost/demo/demo.aspx]. Obtenemos el siguiente resultado:

Image

Hemos logrado crear una aplicación web en Visual Studio utilizando:

  • un proyecto de tipo [bibliothèque de classes]
  • el servidor web Cassini

Ahora sabemos cómo desarrollar aplicaciones web en equipos que no cuentan con el servidor IIS, como es el caso de los equipos con Windows XP, edición familiar.

3.2. ¿Dónde se puede encontrar el servidor web Cassini ?

Para trabajar con la plataforma .NET de Microsoft, se puede utilizar el servidor web Cassini. Este está disponible a través de un producto llamado [WebMatrix], que es un entorno gratuito de desarrollo web para las plataformas .NET, disponible en el URL:

Image

Seguiremos atentamente los pasos de instalación del producto:

  • descargar e instalar la plataforma .NET (versión 1.1 de marzo de 2004)
  • descargar e instalar WebMatrix
  • descargar e instalar MSDE (Microsoft Data Engine), que es una versión limitada de SQL Server.

Una vez finalizada la instalación, el producto [WebMatrix] estará disponible en los programas instalados:

Image

El enlace [ASP.NET] Web Matrix inicia el IDE de desarrollo ASP.NET:

Image

El enlace [Class Browser] inicia una herramienta de exploración de clases .NET:

Image

Para probar la instalación, ejecutemos [WebMatrix]:

Al iniciarse por primera vez, [WebMatrix] solicita las características del nuevo projet.C; esta es su configuración predeterminada. Se puede configurar para que no aparezca este cuadro de diálogo al iniciarse. Esto se logra mediante la opción [File/New File]. [WebMatrix] permite crear plantillas para diferentes aplicaciones web. Arriba, indicamos con (1) que queríamos crear una aplicación [ASP.ET Page], que es una página web. Con (2), especificamos la carpeta en la que se guardará esta página web. En (3) indicamos el nombre de la página. Debe tener el sufijo .aspx. Por último, en (4), especificamos que queremos trabajar con el lenguaje VB.NET; [WebMatrix] también es compatible con los lenguajes C# y J#. Una vez hecho esto, [WebMatrix] muestra una página de edición del archivo [demo1.aspx]. Allí colocamos el siguiente código:

Image

  • La pestaña [Design] permite «diseñar» la página web que queremos crear. El proceso es similar al de un IDE para la creación de aplicaciones de Windows.
  • El diseño gráfico de la página web en [Design] generará código HTML en la pestaña [HTML]
  • La página web puede contener controles que generen eventos a los que hay que responder, como un botón, por ejemplo. Estos eventos serán manejados por el código VB.NET, que se colocará en la pestaña [Code]
  • Al final, el archivo demo1.aspx es un archivo de texto que combina el código HTML y el código VB.NET, resultado del diseño gráfico realizado en [Design], del código HTML que se pudo agregar manualmente en [HTML] y del código VB.NET colocado en [Code]. El archivo completo está disponible en la pestaña [All].
  • Un desarrollador con experiencia en ASP.ET puede crear el archivo demo1.aspx directamente con un editor de texto sin necesidad de utilizar ningún IDE.

Seleccionemos la opción [All]. Observamos que [WebMatrix] ya ha generado código:

<%@ Page Language="VB" %>
<script runat="server">

     ' Insertar código de página aquí
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Insertar contenido aquí -->
    </form>
</body>
</html>

No vamos a intentar explicar este código aquí. Lo transformamos de la siguiente manera:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

El código anterior es una combinación de HTML y del código VB.NET. Este se ha colocado entre las etiquetas <% ... %>. Para ejecutar este código, utilizamos la opción [View/Start]. [WebMatrix] inicia entonces el servidor web Cassini si aún no está en ejecución

Image

Podemos aceptar los valores predeterminados que se proponen en este cuadro de diálogo y seleccionar la opción [Start]. El servidor web ya está activo. [WebMatrix] iniciará entonces el navegador predeterminado de la máquina en la que se encuentra y solicitará el URL http://localhost:8080/demo1.aspx:

Image

Es posible utilizar el servidor Cassini fuera de [WebMatrix]. El ejecutable del servidor se encuentra en <WebMatrix>\<versión>\WebServer.exe, donde <WebMatrix> es el directorio de instalación de [WebMatrix] y <versión> es su número de versión:

Image

Abramos una ventana de DOS y naviguemos hasta la carpeta del servidor Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

Ejecutemos [WebServer.exe] sin parámetros:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

Aparece una ventana de ayuda:

Image

La aplicación [WebServer], también conocida como servidor web Cassini, admite tres parámetros:

  • /port: número de puerto del servicio web. Puede ser cualquiera. El valor predeterminado es 80
  • /path: ruta física de una carpeta en el disco
  • /vpath: carpeta virtual asociada a la carpeta física anterior. Hay que prestar atención al hecho de que la sintaxis no es /path=ruta, sino /vpath:ruta, a diferencia de lo que indica el ejemplo [Example] del panel de ayuda anterior.

Colocamos el archivo [demo1.aspx] en la siguiente carpeta:

Image

Asociemos la carpeta física [d:\data\devel\webmatrix] con la carpeta virtual [/webmatrix]. El servidor web podría iniciarse de la siguiente manera:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

El servidor Cassini estará entonces activo y su ícono aparecerá en la barra de tareas. Si hacemos doble clic en él:

Image

Aparecen los parámetros de inicio del servidor. También existe la posibilidad de detener [Stop] o reiniciar [Restart] el servidor web. Al hacer clic en el enlace [Root URL], se abre la raíz del árbol web del servidor en un navegador:

Image

Sigamos el enlace [demos]:

Image

y luego el enlace [demo1.aspx]:

Image

Así pues, vemos que si la carpeta física P=[d:\data\devel\webmatrix] se ha asociado a la carpeta virtual V=[/webmatrix] y el servidor opera en el puerto 100, la página web [demo1.aspx], que se encuentra físicamente en [P\demos], será accesible localmente a través de URL y [http://localhost:100/V/demos/demo1.aspx].

Para no tener que abrir una ventana de DOS para iniciar el servidor Cassini, se puede crear un acceso directo al ejecutable del servidor con propiedades similares a las siguientes:

Image

Cible
"C:\Archivos de programa\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\trabajo\2004-2005\aspnet\webarticles-010405\versión3\web" /vpath:"/webarticles"
Démarrer dans
"C:\Archivos de programa\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. ¿Dónde encontrar Spring?

El sitio principal de Spring es [http://www.springframework.org/]. Es el sitio de la versión Java. La versión .NET, actualmente en desarrollo (abril de 2005), se encuentra en la URL [http://www.springframework.net/].

Image

El sitio de descarga se encuentra en [SourceForge]:

Image

Una vez descargado el archivo zip anterior, descomprímelo:

Image

En este documento, solo hemos utilizado el contenido de la carpeta [bin]:

Image

En un proyecto de Visual Studio que utiliza Spring, hay que hacer sistemáticamente dos cosas:

  • colocar los archivos mencionados anteriormente en la carpeta [bin] del proyecto
  • agregar al proyecto una referencia al ensamblado [Spring.Core.dll]

3.4. ¿Dónde encontrar Nunit?

El sitio web principal de Nunit es [http://www.nunit.org/]. La versión disponible en abril de 2005 es la 2.2.0:

Image

Descarga esta versión e instálala. La instalación crea una carpeta donde encontrarás la versión gráfica de prueba:

Lo interesante se encuentra en la carpeta [bin]:

Image

Image

La flecha de arriba señala la utilidad gráfica de prueba. La instalación también ha agregado nuevos elementos al repositorio de ensambles de Visual Studio que vamos a explorar ahora.

Creemos el siguiente proyecto de Visual Studio:

Image

La clase que se está probando se encuentra en [Personne.vb]:

Public Class Personne

     ' campos privados
    Private _nom As String
    Private _age As Integer

     ' constructor predeterminado
    Public Sub New()
    End Sub

     ' propiedades asociadas a los campos privados
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

     ' cadena de identidad
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

     ' método init
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

     ' método close
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

La clase de prueba se encuentra en [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

     ' objeto probado
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' se crea una instancia de Persona
        personne1 = New Personne
         ' registro
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' registro en pantalla
        Console.WriteLine("début test")
         ' inicialización de persona1
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' pruebas
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' registro de pantalla
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' seguimiento
        Console.WriteLine("teardown test")
    End Sub

End Class

Hay varios puntos a destacar:

  • los métodos cuentan con atributos como <Setup()>, <TearDown()>, ...
  • Para que estos atributos sean reconocidos, es necesario que:
    • el proyecto haga referencia al ensamblado [nunit.framework.dll]
    • la clase de prueba importe el espacio de nombres [NUnit.Framework]

La referencia se obtiene haciendo clic con el botón derecho sobre [References] en el explorador de soluciones:

Image

El ensamblado [nunit.framework.dll] debe aparecer en la lista si la instalación de [Nunit] se realizó correctamente. Solo hay que hacer doble clic en el ensamblado para agregarlo al proyecto:

Image

Una vez hecho esto, la clase de prueba [NunitTestPersonne] debe importar el espacio de nombres [NUnit.Framework]:

Imports NUnit.Framework

A continuación, deben reconocerse los atributos de la clase de prueba [NunitTestPersonne].

  • El atributo <Test()> indica un método que se debe probar
  • el atributo <Setup()> designa el método que se debe ejecutar antes de cada método de prueba
  • el atributo <TearDown()> designa el método que se debe ejecutar después de cada método probado
  • el método Assert.AreEqual permite comprobar la igualdad entre dos; entités.Il existen muchos otros métodos del tipo Assert.xx.
  • La utilidad NUnit detiene la ejecución de un método probado tan pronto como falla un método [Assert] y muestra un mensaje de error. De lo contrario, muestra un mensaje de éxito.

Configuremos nuestro proyecto para que genere un DLL:

Image

El DLL generado se llamará [nunit-demos-1.dll] y se colocará por defecto en la carpeta [bin] del proyecto. Generemos nuestro proyecto. Obtenemos en la carpeta [bin]:

Image

Ahora ejecutemos la utilidad de prueba gráfica Nunit. Recordemos que se encuentra en <Nunit>\bin y que se llama [nunit-gui.exe]. <Nunit> se refiere a la carpeta de instalación de [Nunit]. Aparece la siguiente interfaz:

Image

Usemos la opción de menú [File/Open] para cargar el DLL y el [nunit-demos-1.dll] de nuestro proyecto:

Image

[Nunit] es capaz de detectar automáticamente las clases de prueba que se encuentran en el archivo DLL cargado. En este caso, encuentra la clase [NunitTestPersonne]. A continuación, muestra todos los métodos de la clase que tienen el atributo <Test()>. El botón [Run] permite ejecutar las pruebas en el objeto seleccionado. Si este es la clase [NunitTestPersonne], se prueban todos los métodos mostrados. Se puede solicitar la prueba de un método específico seleccionándolo y solicitando su ejecución mediante [Run]. Solicitemos la ejecución de la clase:

Image

Una prueba exitosa en un método se indica con un punto verde junto al método en la ventana de la izquierda. Una prueba fallida se indica con un punto rojo.

La ventana [Console.Out], a la derecha, muestra las pantallas generadas por los métodos probados. Aquí, hemos querido seguir el desarrollo de una prueba:

1
2
3
4
setup test
début test
fin test
teardown test
  • la línea 1 muestra que el método de atributo <Setup()> se ejecuta antes de la prueba
  • las líneas 2 y 3 son generadas por el método [demo] que se está probando (ver el código más arriba)
  • la línea 4 muestra que el método de atributo <TearDown()> se ejecuta después de la prueba

3.5. ¿Dónde encontrar el archivo SGBD e de Firebird?

El sitio web principal de Firebird es [http://firebird.sourceforge.net/]. La página de descargas ofrece los siguientes enlaces (abril de 2005):

Image

Se descargarán los siguientes elementos:

firebird-win32
el SGBD para Windows
firebird-net-provider
una biblioteca de clases para las aplicaciones .NET que permite acceder al SGBD sin necesidad de un controlador ODBC.
firebird-ODBC-driver
el controlador ODBC de Firebird

Instala estos elementos. El SGBD se instala en una carpeta cuyo contenido es similar al siguiente:

Image

Los archivos binarios se encuentran en la carpeta [bin]:

Image

fbguard.exe
permite iniciar/detener el SGBD
isql.exe
cliente de línea que permite administrar bases de datos

Cabe señalar que, por defecto, el administrador de SGBD se llama [SYSDBA] y su contraseña es [masterkey]. Se han instalado menús en [Démarrer]:

Image

La opción [Firebird Guardian] permite iniciar o detener el SGBD. Tras el inicio, el ícono del SGBD permanece en la barra de tareas de Windows:

Para crear y administrar bases de datos Firebird con el cliente de línea de comandos [isql.exe], es necesario leer la documentación que se incluye con el producto en la carpeta [doc]. Una forma más rápida de trabajar con Firebird es utilizar un cliente gráfico. Un ejemplo de este tipo de cliente es IB-Expert, que se describe en el siguiente párrafo.

3.6. ¿Dónde encontrar IB- Expert?

El sitio web principal de Firebird es [http://www.ibexpert.com/]. La página de descargas ofrece los siguientes enlaces:

Image

Elegiremos la versión gratuita [Personal Edition]. Una vez descargada e instalada, tendremos una carpeta similar a la siguiente:

Image

El ejecutable es [ibexpert.exe]. Normalmente hay un acceso directo disponible en el menú [Démarrer]:

Image

Una vez iniciado, IBExpert muestra la siguiente ventana:

Image

Usemos la opción [Database/Create Database] para crear una base de datos:

Image

Server
puede ser [local] o [remote]. En este caso, nuestro servidor está en la misma máquina que [IBExpert]. Por lo tanto, elegimos [local]
Database
utilizamos el botón del tipo [dossier] del menú desplegable para seleccionar el archivo de la base de datos. Firebird almacena toda la base de datos en un solo archivo. Esa es una de sus ventajas. La base de datos se transfiere de una computadora a otra simplemente copiando el archivo. El sufijo [.gdb] se agrega automáticamente.
Username
SYSDBA es el administrador predeterminado de las distribuciones actuales de Firebird
Password
masterkey es la contraseña del administrador SYSDBA de las distribuciones actuales de Firebird
Dialect
el dialecto SQL que se debe utilizar
Register Database
si la casilla está marcada, IBExpert mostrará un enlace a la base de datos creada después de haberla creado

Si al hacer clic en el botón de creación [OK] aparece la siguiente advertencia:

Image

es porque no has iniciado Firebird. Inícialo. Aparecerá una nueva ventana:

Image

Server version
[IBExpert] puede manejar diferentes SGBD derivados de Interbase. Selecciona la versión de Firebird que tengas instalada

Image

Una vez que [Register] valida esta nueva ventana, se obtiene el siguiente resultado:

Image

Para acceder a la base de datos creada, basta con hacer doble clic en su enlace. IBExpert muestra entonces un árbol de navegación que permite acceder a las propiedades de la base de datos:

Image

Creemos una tabla. Hacemos clic con el botón derecho en [Tables] y seleccionamos la opción [New Table]. Aparece la ventana de definición de las propiedades de la tabla:

Comencemos por asignarle el nombre [ARTICLES] a la tabla utilizando el campo de entrada [1]:

Usemos el campo de entrada [2] para definir una clave primaria [ID]:

Para convertir un campo en clave primaria, haz doble clic en el campo [PK] (Primary Key) del campo. Agreguemos campos con el botón [3]:

Image

Mientras no hayamos «compilado» nuestra definición, la tabla no se creará. Usemos el botón [Compile] que aparece arriba para finalizar la definición de la tabla. IBExpert prepara las consultas SQL para generar la tabla y solicita confirmación:

Image

Curiosamente, IBExpert muestra las consultas SQL que ha ejecutado. Esto permite aprender tanto el lenguaje SQL como el dialecto SQL, que posiblemente sea un dialecto propio. El botón [Commit] permite validar la transacción en curso, mientras que [Rollback] la cancela. Aquí la aceptamos con [Commit]. Una vez hecho esto, IBExpert agrega la tabla creada a la estructura de nuestra base de datos:

Image

Al hacer doble clic en la tabla, se accede a sus propiedades:

Image

El panel [Constraints] nos permite agregar nuevas restricciones de integridad a la tabla. Abrámoslo:

Image

Aquí encontramos la restricción de clave primaria que creamos. Podemos agregar otras restricciones:

  • claves externas [Foreign Keys]
  • restricciones de integridad de campos [Checks]
  • restricciones de unicidad de campos [Uniques]

Tenga en cuenta que:

  • los campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] deben ser >0
  • el campo [NOM] debe ser no vacío y único

Abramos el panel [Checks] y hagamos clic con el botón derecho en su área de definición de restricciones para agregar una nueva restricción:

Image

Definamos las restricciones deseadas:

Image

Cabe señalar que la restricción [NOM<>''] utiliza dos apóstrofos y no comillas. Compilemos estas restricciones con el botón [Compile] que se encuentra arriba:

Image

Una vez más, IBExpert demuestra su carácter didáctico al indicar las consultas SQL que ha ejecutado. Pasemos ahora al panel [Constraints/Uniques] para indicar que el nombre debe ser único:

Image

Definamos la restricción:

Image

Compilémosla. Una vez hecho esto, abramos el panel [DDL] de la tabla [ARTICLES]:

Image

Este nos da el código SQL para generar la tabla con todas sus restricciones. Podemos guardar este código en un script para ejecutarlo más adelante:

SET SQL DIALECT 3;
SET NAMES NONE;
CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

Ahora es el momento de ingresar datos en la tabla [ARTICLES]. Para ello, utilicemos su panel [Data]:

Image

Los datos se ingresan haciendo doble clic en los campos de entrada de cada fila de la tabla. Se agrega una nueva línea con el botón [+] y se elimina una línea con el botón [-]. Estas operaciones se realizan en una transacción que se valida con el botón [Commit Transaction]. Sin esta validación, los datos se perderán.

IBExpert permite generar consultas SQL mediante la opción [Tools/SQL Editor] o [F12]. De esta manera, se tiene acceso a un editor avanzado de consultas SQL con el que se pueden ejecutar consultas. Estas se guardan en memoria, lo que permite volver a una consulta ya ejecutada. A continuación, un ejemplo:

Image

Ejecutamos la consulta SQL con el botón [Execute] que se encuentra arriba. Obtenemos el siguiente resultado:

Image

Con esto concluimos nuestras demostraciones. La combinación de IBExpert y Firebird resulta excelente para aprender sobre bases de datos.

3.7. Instalación y uso de un controlador ODBC para [Firebird]

3.8. Instalación del controlador

El enlace [firebird-odbc-provider] de la página de descargas de [Firebird] (párrafo 3.5) da acceso a un controlador ODBC. Una vez instalado, aparecerá en la lista de controladores ODBC instalados.

3.9. Crear una fuente ODBC

  • Ejecutar la herramienta [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • Aparecerá la siguiente ventana:

Image

  • Agreguemos [Add], una nueva fuente de datos del sistema (panel [System DSN]), que asociaremos a la base de datos Firebird que creamos en el párrafo anterior:

Image

  • En primer lugar, debemos especificar el controlador ODBC que se utilizará. Arriba, seleccionamos el controlador para Firebird y luego hacemos clic en [Terminer]. A continuación, el asistente del controlador ODBC de Firebird toma el control:

Image

  • llenamos los distintos campos:

Image

DSN [demo-odbc-firebird]
el nombre DSN de la fuente ODBC —puede ser cualquiera—
Database [D:\..\DBARTICLES.GDB]
el nombre de la base de datos Firebird BD que se va a utilizar; usa [Browse] para designar el archivo .gbd correspondiente
Database Account [SYSDBA]
identificador que se debe usar para conectarse a la base de datos
Password [masterkey]
la contraseña asociada a este identificador

El botón [Test connection] permite verificar la validez de la información que hemos proporcionado. Antes de usarlo, ejecute el SGBD [Firebird]:

Image

  • validar el asistente ODBC, ejecutando [OK] tantas veces como sea necesario

3.10. Probar la fuente ODBC

Existen diversas formas de verificar el correcto funcionamiento de una fuente ODBC. Aquí utilizaremos Excel:

Image

  • utilicemos la opción [Données -> Données externes -> Créer une requête] mencionada anteriormente. Aparecerá la primera ventana de un asistente para definir la fuente de datos. El panel [Bases de données] muestra las fuentes ODBC actualmente definidas en la máquina:

Image

  • Seleccionemos la fuente ODBC [odbc-firebird-articles] que acabamos de crear y pasemos al siguiente paso con [OK]:

Image

  • Esta ventana muestra las tablas y columnas disponibles en la fuente ODBC. Seleccionamos toda la tabla:

Image

  • Pasemos al siguiente paso con [Suivant]:

Image

  • Este paso nos permite filtrar los datos. Aquí no filtramos nada y pasamos al siguiente paso:

Image

  • Este paso nos permite ordenar los datos. No lo hacemos y pasamos al siguiente paso:

Image

  • El último paso nos pregunta qué queremos hacer con los datos. Aquí, los enviamos a Excel:

Image

  • Aquí, Excel nos pregunta dónde queremos colocar los datos recuperados. Los colocamos en la hoja activa a partir de la celda A1. Los datos se recuperan entonces en la hoja de Excel:

Image

Existen otras formas de comprobar la validez de una fuente ODBC. Por ejemplo, se puede utilizar la suite gratuita OpenOffice, disponible en URL [http://www.openoffice.org]. A continuación se muestra un ejemplo con un texto OpenOffice:

  • Un ícono en el lado izquierdo de la ventana de OpenOffice permite acceder a las fuentes de datos. La interfaz cambia entonces para mostrar un área de administración de fuentes de datos:

Image

  • Hay una fuente de datos predefinida: la fuente [Bibliography]. Al hacer clic con el botón derecho en el área de fuentes de datos, podemos crear una nueva con la opción [Gérer les sources de données]:

Image

  • Un asistente [Gestion des sources de données] permite crear fuentes de datos. Al hacer clic con el botón derecho en el área de fuentes de datos, podemos crear una nueva con la opción [Nouvelle source de données]:

Image

Nom [odbc-firebird-articles]
cualquier nombre. Aquí hemos utilizado el nombre de la fuente ODBC
Type de BD [odbc]
OpenOffice puede manejar diferentes tipos de BD a través de JDBC, ODBC o directamente (MySQL, Dbase, ...). Para nuestro ejemplo, hay que elegir ODBC
URL de la source de données
El botón a la derecha del campo de entrada nos da acceso a la lista de fuentes ODBC de la máquina. Seleccionamos la fuente [odbc-firebird-articles]
  • Pasamos al panel [ODBC] para definir allí el usuario con cuya identidad se realizará la conexión:

Image

Nom d'utilisateur [sysdba]
El propietario de la fuente ODBC
  • Pasamos al panel [Tables]. Se solicita la contraseña. En este caso es [masterkey]:

Image

  • Se ejecuta [OK]. A continuación, se muestra la lista de tablas de la fuente ODBC:

Image

  • Se pueden definir las tablas que se mostrarán en el documento [OpenOffice]. Aquí elegimos la tabla [ARTICLES] y creamos [OK]. La definición de la fuente de datos ha finalizado. A continuación, aparece en la lista de fuentes de datos del documento activo:

Image

  • Se puede arrastrar con el ratón la tabla [ARTICLES] que se encuentra arriba hacia el texto [OpenOffice]:

Image

3.11. Cadena de conexión de una fuente ODBC Firebird

  • Inicie Visual Studio y abra el explorador de servidores [Affichage/Explorateur de serveurs]:
  • Haga clic con el botón derecho en [Connexion de données] y seleccione la opción [Ajouter une connexion]:

Image

  • En el panel [Provider], indica que quieres usar una fuente ODBC (véase más arriba), luego pasa al panel [Connection]:

Image

Use data source name
[demo-odbc-firebird]
selecciona la fuente ODBC en el menú desplegable. Debería aparecer la que acabas de crear. Si es necesario, usa [Refresh] para actualizar la lista de fuentes ODBC.
User name [SYSDBA]
identificador que se debe usar para conectarse a la base de datos
Password [masterkey]
la contraseña asociada a este identificador

Una vez más, el botón [Test Connection] permite verificar la validez de la información:

Image

  • Confirme el asistente con [OK]. La fuente de datos aparecerá entonces en la ventana [Explorateur de serveurs] de Visual Studio:

Image

  • Al hacer doble clic en la tabla [ARTICLES], se tiene acceso a los datos de la tabla:

Image

  • Si hacemos clic con el botón derecho en el enlace [Firebird Server D:\temp\... ] y seleccionamos la opción [Propriétés], tenemos acceso a las propiedades de la conexión:

Image

  • La cadena de conexión [ConnectString] es una propiedad importante que hay que conocer, ya que el código .NET la necesita para establecer una conexión con la base de datos. En este caso, la cadena de conexión es:
Provider=MSDASQL.1;Persist Security Info=False;User ID=SYSDBA;Data Source=demo-odbc-firebird;Extended Properties="DSN=demo-odbc-firebird;Driver=Firebird/InterBase(r) driver;Dbname=D:\temp\07-04-05\firebird\DBARTICLES.GDB;CHARSET=NONE;UID=SYSDBA"

Muchos elementos de esta cadena de conexión tienen valores predeterminados. Nos bastará con la siguiente cadena de conexión:

"DSN=demo-odbc-firebird;UID=SYSDBA;PASSWORD=masterkey"

Con esto concluye nuestra presentación del controlador ODBC de [Firebird].

3.12. ¿Dónde se pueden encontrar el SGBD l MSDE?

MSDE es la versión gratuita del servidor SGBD SQL de Microsoft. Se puede encontrar en el URL [http://www.microsoft.com/sql/msde/downloads/download.asp]:

Descarga el archivo de instalación y luego instala el SGBD haciendo doble clic en el ejecutable descargado. Aparecerá una ventana solicitando la carpeta de instalación. El título es engañoso. Se trata de una carpeta temporal que se podrá eliminar posteriormente:

Lee atentamente el archivo [ReadmeMSDE2000A.htm]. El programa de instalación es el [setup.exe] mencionado anteriormente. Se ejecuta desde la línea de comandos para que puedas pasarle parámetros. Los principales son los siguientes:

Paramètre
Descripción

SAPWD="MotDePasseRenforcé"
Especifica una contraseña segura que se asignará al inicio de sesión de administrador «sa».

INSTANCENAME="NomInstance"
Define el nombre de la instancia. Si no se especifica INSTANCENAME, el programa de instalación instalará una instancia por defecto.

Otros parámetros que se utilizan con frecuencia para personalizar una instalación son:

Paramètre
Descripción

DISABLENETWORKPROTOCOLS=n
Especifica si la instancia aceptará conexiones de red desde aplicaciones que se ejecutan en otras computadoras. De forma predeterminada, o si especifica DISABLENTWORKPROTOCOL=1, el programa de instalación configura la instancia para que rechace las conexiones de red. Especifique DISABLENETWORKPROTOCOLS=0 para habilitar las conexiones de red.
SECURITYMODE=SQL
Especifica que la instancia debe instalarse en modo mixto, es decir, que la instancia admite tanto la autenticación de Windows como la autenticación SQL para las conexiones

DATADIR="chemin_dossier_données"
Especifica la carpeta en la que el instalador coloca las bases de datos del sistema, los registros de errores y los scripts de instalación. El valor especificado para chemin_dossier_données debe terminar con una barra invertida (\). Para una instancia predeterminada, el instalador agrega MSSQL\ al valor especificado. Para una instancia con nombre, el instalador agrega MSSQL$NomInstance\, donde NomInstance es el valor especificado mediante el parámetro INSTANCENAME. El programa de instalación crea tres carpetas en la ubicación especificada: una carpeta «Data», una carpeta «Log» y una carpeta «Script».

TARGETDIR="chemin_dossier_exécutables"
Especifica la carpeta en la que el programa de instalación instala los archivos ejecutables de MSDE 2000. El valor especificado para chemin_dossier_exécutables debe terminar con una barra invertida (\). Para una instancia predeterminada, el instalador agrega MSSQL\Binn al valor especificado. Para una instancia con nombre, el programa de instalación agrega MSSQL$NomInstance\Binn, donde NomInstance es el valor especificado mediante el parámetro INSTANCENAME.

Después de leer las recomendaciones de instalación anteriores, nos ubicamos en la carpeta donde se extrajeron los archivos de instalación y ejecutamos el siguiente comando DOS (uso de SGBD sin conexión a la red):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" —este será el nombre de nuestra instancia MSDE. Se pueden instalar varias.
  • SECURITYMODE=SQL: el SGBD funcionará en modo de autenticación mixta. De esta manera, podremos conectarnos a MSDE de dos maneras:
    • con una cuenta de administrador de Windows
    • con una cuenta MSDE: en este caso, se solicitará un nombre de usuario y una contraseña. Este será el modo que se debe utilizar en un programa que se conecte a una base de datos de SGBD.
  • SAPWD="azerty": esta será la contraseña del usuario de SGBD. El usuario [sa] tiene derechos de administración sobre SGBD.

Para utilizar el SGBD en red, se habría ejecutado el siguiente comando:

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty" DISABLENETWORKPROTOCOLS=0

El programa de instalación es muy sencillo y termina sin mostrar ningún mensaje... Sin embargo, se puede ver que el SGBD se instaló mediante la opción [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:

Image

La instalación se realiza normalmente en C:\Archivos de programa\Microsoft SQL Server\MSSQL$nomInstance:

En la carpeta [LOG] de la carpeta de instalación, se encuentra el archivo de registros de la fase de instalación de SGBD. En él se encuentra una información importante: el nombre de la instancia MSDE:

2005-04-14 08:14:29.37 spid4     Le nom du serveur est «PORTABLE1_TAHE\MSDE140405».

Es importante conocer este nombre, ya que todos los clientes de SGBD lo necesitarán. En caso de que no se cuente con estos registros, se puede encontrar el nombre de un servidor MSDE, que es [machine_windows\nom_instance_MSDE]. El nombre de la máquina está disponible en varios lugares. Por ejemplo:

  • haz clic con el botón derecho en [poste de travail] en el escritorio, selecciona la opción [propriétés] y, luego, el panel [Nom de l'ordinateur]:

Image

Aún no se sabe cómo iniciar el servidor MSDE. Normalmente se ha colocado un acceso directo en [Démarrer/Démarrage].

Image

Si revisamos las propiedades de este acceso directo, vemos que el destino es el siguiente:

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe" /n

En la carpeta [ C:\Program Files\Microsoft SQL Server], hay subcarpetas:

Image

  • MSSQL$MSDE140405 es la carpeta de la instancia MSDE que acabamos de instalar.
  • MSSQL es la carpeta de una instancia anterior, MSDE. Como no tiene nombre, la llamamos la instancia predeterminada.
  • La carpeta [80] es una carpeta común a las diferentes instancias de MSDE instaladas. El destino [sqlmangr.exe] del acceso directo que inicia una instancia de MSDE se encuentra en la carpeta [ 80\Tools\Binn].
Iniciemos MSDE mediante el acceso directo de [Démarrer -> Programmes -> Démarrage]. Prácticamente no ocurre nada, salvo que se ha instalado un ícono en la barra de estado:
Hagamos doble clic en este ícono:
El servidor MSDE que se propone aquí es el servidor predeterminado
[PORTABLE1_TAHE] que se encuentra en la máquina. Recordemos que
el servidor MSDE que hemos instalado se llama
[PORTABLE1_TAHE\MSDE140405]. Cambiamos el
nombre del servidor en el campo correspondiente:
Si todo sale bien, se debe iniciar la instancia [MSDE140405]:

Podemos realizar una primera verificación. En la misma carpeta donde se encuentra [sqlmangr.exe], hay un cliente de consola [osql.exe] que permite conectarse a un servidor MSDE y ejecutar comandos SQL. Durante la instalación, le asignamos la contraseña [azerty] al administrador [sa] de nuestro servidor MSDE. Mediante el cliente de consola, nos conectaremos al servidor recién instalado. Al ejecutar el comando [osql -?], se muestra la lista de parámetros posibles:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -?
utilisation : osql
  [-U ID de connexion]
  [-P mot de passe]
  [-S serveur]
  [-H nom de l'hôte]
  [-E connexion approuvée]
  [-d utiliser le nom de la base de données]
  [-l limite du temps de connexion]
  [-t limite du temps de requête]
  [-h en-têtes]
  [-s séparateur de colonnes]
  [-w largeur de colonne]
  [-a taille du paquet]
  [-e entrée d'écho]
  [-I Activer les identificateurs marqués]
  [-L liste des serveurs]
  [-c fin de cmd]           [-D nom ODBC DSN]
  [-q "requête cmdline"]
  [-Q "requête cmdline" et quitter]
  [-n supprimer la numérotation]
  [-m niveau d'erreur]
  [-r msgs vers stderr]
  [-V severitylevel]
  [-i fichier d'entrée]
  [-o fichier de sortie]
  [-p imprimer les statistiques]  [-b abandon du lot d'instruction après erreur]

  [-X[1] désactive les commandes [et quitte avec un avertissement]]
  [-O utiliser le comportement Old ISQL désactive les éléments suivants]
      <EOF> traitement par lot d'instructions
      Mise à l'échelle automatique de la largeur de la console
      Messages larges
      niveau d'erreur par défaut de  -1 au lieu de 1
  [-? description de la syntaxe]

Iniciemos el servidor [MSDE140405] como se indicó anteriormente; luego, en una ventana de DOS, utilicemos [osql] para conectarnos al servidor [portable1_tahe\msde140405] con la identidad [sa, azerty]:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>

El indicador [1>] indica que [osql] está esperando un comando. Estamos correctamente conectados. Para utilizar correctamente [osql], hay que consultar la documentación de MSDE. Esta está disponible en diferentes formatos (pdf, htmlhelp, etc.). Dicha documentación es muy extensa. Por lo general, es preferible utilizar un cliente gráfico para trabajar con una base de datos MSDE. Esto es lo que se propone más adelante. Para salir de [osql], se utiliza el comando [exit]:

1> exit

Ahora veremos cómo crear bases de datos en el servidor MSDE recién instalado. Antes de eso, presentaremos brevemente una herramienta [MSDE Manager] que permite modificar el modo de autenticación de un servidor MSDE. De hecho, si se instala un servidor de este tipo con las opciones de instalación predeterminadas, el modo de autenticación del servidor es del tipo [authentification windows]. Este tipo de autenticación solo permite el acceso a usuarios identificados en la máquina Windows (posiblemente a través de un dominio). Para un programa VB.NET que desea conectarse a una base de datos para aprovechar su contenido, este modo resulta poco práctico. La situación es aún peor para las aplicaciones Java que acceden al SGBD a través de un controlador JDBC. Por lo tanto, es preferible utilizar la autenticación mixta, que, además de la autenticación anterior, acepta pares (nombre de usuario, contraseña) declarados en el SGBD. La herramienta [MSDE Manager] permite realizar esta operación.

3.13. ¿Dónde se encuentra MSDE Manager?

[MSDE Manager] es una herramienta de administración de SGBD y MSDE. Se encuentra en URL y [http://www.valesoftware.com/].

Descargamos la versión gratuita siguiendo el enlace anterior:

Image

Image

La versión de prueba tiene una vigencia limitada. Esto nos conviene, ya que solo la utilizaremos para una única acción muy específica. Descargamos e instalamos el producto. Se crea un acceso directo en el escritorio. Lo utilizamos para iniciar MSDE Manager. Tras pasar las primeras ventanas, llegamos a esta:

Image

  • inicie el servidor MSDE140405
  • Debes iniciar sesión en la máquina con Windows como administrador
  • Haga clic con el botón derecho en el enlace [SQL Server Group] y seleccione la opción [New SQL Server Registration]:

Image

Image

Aparecerá la siguiente página de propiedades:

Server Name 
portable1_tahe\msde140405: nombre de la instancia MSDE a la que desea conectarse
Connection 
Autenticación de Windows: este modo siempre está disponible y permite que un administrador de la máquina con Windows se conecte al servidor MSDE
Server Group 
Seleccione el único grupo de servidores que se muestra: [SQL Server Group]

Una vez que se hace clic en [OK], se muestra el árbol de propiedades del servidor MSDE140405:

Image

Podríamos empezar a crear bases de datos. No lo haremos porque utilizaremos otro producto, un clon del producto IBExpert que ya hemos estudiado. Simplemente cambiaremos el modo de autenticación de MSDE. Hagamos clic con el botón derecho en el servidor MSDE140405 que aparece arriba y seleccionemos la opción [Design]:

Image

Aparece la siguiente ventana de información:

Image

El panel [General] brinda información sobre el servidor MSDE al que estamos conectados. La página [Security] es la que nos interesa:

Image

Aquí hay que asegurarse de que el modo de autenticación de MSDE sea efectivamente [SQL Server and Windows]. De esta manera, podremos conectarnos a MSDE de dos maneras:

  • con una cuenta de administrador de Windows —eso es lo que se ha hecho aquí—
  • con una cuenta de MSDE; en este caso, se solicitará un nombre de usuario y una contraseña. Este será el modo que se debe utilizar en un programa que se conecte a una base de datos de SGBD.

Confirmamos esta elección y salimos de MSDE Manager. Ya no lo necesitaremos. Para crear bases de datos MSDE, utilizaremos otra herramienta: EMS MS SQL Manager.

3.14. ¿Dónde encontrar EMS , MS y SQL Manager?

EMS, MS y SQL Manager es una herramienta gráfica que permite trabajar con el SGBD Microsoft SQL Server y, por lo tanto, con MSDE. Es muy similar a la herramienta IB-Expert descrita anteriormente. Está disponible en la versión URL [http://sqlmanager.net/] (abril de 2005):

Image

El sitio ofrece administradores para numerosos SGBD. Sigue el enlace [MS SQL Manager]:

Image

Arriba, elegimos la versión ligera del producto. Descárgala e instálala. Tendrás una carpeta similar a la siguiente:

Image

El ejecutable es [MsManager.exe]. Normalmente hay un acceso directo disponible en el menú [Démarrer]:

Image

Una vez iniciado, MS SQL Manager muestra la siguiente ventana:

Image

Comencemos por registrar el servidor MSDE en el que queremos trabajar con la opción [Database/Register Host]:

Comentarios:

  • paso 1: como se ha mencionado, MSDE admite dos modos de autenticación: Windows y SQL Server. En el modo [windows], se utilizan las cuentas de la máquina Windows. En el modo [SQL Server], se utilizan las cuentas del SGBD. [SQL Server] puede funcionar en modo [Windows] o en modo mixto [Windows, SQL Server]. El modo de autenticación [Windows] sigue existiendo. El modo de autenticación mixto, por su parte, no siempre está activo. Ya vimos cómo activarlo con MSDE Manager. En el ejemplo anterior, el inicio de sesión se realizó con una cuenta de administrador.
  • Paso 2: una vez completada la autenticación, se muestran las bases de datos predeterminadas de MSDE. En la imagen anterior, se seleccionaron todas.

Comentarios:

  • Paso 3: Se pueden seleccionar opciones de administración de las bases de datos elegidas. Aquí se han conservado las opciones propuestas por defecto.
  • Paso 4: registramos el servidor MSDE con el botón [Register]

El servidor MSDE aparece entonces en el explorador de bases de datos:

Image

Usemos la opción [Database/Create Database] para crear una base de datos:

Paso 2:

Cuando aparece esta página de información, significa que se ha creado la base de datos [dbarticles]. Podemos verificarlo con el botón [Test Connect]. En el campo [Database alias] podemos escribir lo que queramos. Aquí hemos indicado:

  • el nombre de la base de datos
  • el nombre del servidor MSDE en el que se encuentra
  • el usuario [admarticles] que será el propietario de esta base de datos y su contraseña [mdparticles]. Este usuario aún no se ha creado, pero se creará próximamente.

Paso 3:

  • Con el botón [Register] registramos la nueva base de datos en [MS SQL Server ]. Tras el registro, la base de datos [admarticles] aparece en la lista de bases de datos. Al hacer doble clic sobre ella, se muestra el árbol de sus propiedades.

Creemos un nuevo usuario de acceso que será administrador de la base de datos [admarticles].

  • Selecciona la opción [Tools/Login manager]:

Image

  • Se observa que ya hay dos cuentas de usuario definidas:
    • [BUILTIN\Administrateurs]: esta cuenta utiliza autenticación de Windows. Representa a los administradores de la máquina Windows en la que se encuentra el servidor MSDE
    • sa: este inicio de sesión utiliza autenticación SQL. Por defecto, es el administrador del servidor MSDE. Recordemos que, según la configuración al instalar SGBD MSDE, su contraseña es [azerty].
  • Hagamos clic con el botón derecho en el área de inicios de sesión y agreguemos un nuevo inicio de sesión:
  • Aparece un formulario en el que definimos las características del nuevo inicio de sesión:

Image

  • Nombre de inicio de sesión: admarticles
  • Contraseña: mdparticles
  • Una vez que se presiona el botón [OK], MS Manager nos muestra las consultas SQL que va a ejecutar:

Image

El lenguaje SQL que se muestra arriba es Transact-SQL, el lenguaje SQL de MSDE. Solicitamos que [OK] ejecute este código

  • el nuevo inicio de sesión se agrega a la lista de inicios de sesión:

Image

  • En la ventana de propiedades de la base de datos [dbarticles], hagamos clic con el botón derecho en [users] para crear un usuario con derechos sobre la base de datos [dbarticles]:

Image

  • A continuación, aparecerá la siguiente ventana:

Image

  • En el menú desplegable de [Login] aparece la lista de usuarios existentes. Seleccionamos el usuario [admarticles].
  • En [Name] se indica un nombre de usuario. Se pueden asociar varios usuarios a un mismo inicio de sesión. Por lo tanto, en MSDE, la creación de un usuario requiere primero la creación de un inicio de sesión. El panel [User] queda así:

Image

  • Pasemos ahora al panel [Member Of], que nos permitirá definir los derechos de nuestro usuario:

Image

  • No soy un usuario habitual de MSDE y desconozco el significado exacto de cada uno de los roles que se ofrecen en la ventana de la izquierda. El rol [db_owner] resulta tentador (owner = propietario). Por lo tanto, lo elegimos para nuestro usuario [admarticles]:

Image

  • Confirmamos nuestras selecciones con el botón [Compile] que se encuentra arriba. Las consultas SQL presentadas durante la ejecución son las siguientes:

Image

  • Las compilamos mediante [OK]. Ahora tenemos un usuario de la base de datos [dbarticles]:

Image

  • Ahora creemos una tabla. Hacemos clic con el botón derecho en [Tables] y seleccionamos la opción [New Table]. Aparece la ventana para definir las propiedades de la tabla:

Image

  • Empecemos por asignarle el nombre [ARTICLES] a la tabla utilizando el campo de entrada [Table Name]. A continuación, pasemos al panel [Fields]:

Image

  • definamos los siguientes campos:

Image

Mientras no hayamos «compilado» nuestra definición, la tabla no se creará. Usemos el botón [Compile] que aparece arriba para finalizar la definición de la tabla. [MS SQL Manager] prepara las consultas SQL para generar la tabla y solicita confirmación:

Image

Curiosamente, [MS SQL Manager] muestra las consultas SQL que ha ejecutado. Esto permite aprender al mismo tiempo el lenguaje Transact-SQL. El botón [Commit] permite validar la transacción en curso, mientras que [Rollback] la cancela. Aquí la aceptamos mediante [Commit]. Una vez hecho esto, [MS SQL Manager] agrega la tabla creada a la estructura de nuestra base de datos:

Image

Al hacer doble clic en la tabla, se accede a sus propiedades:

Image

El panel [Checks] nos permite agregar nuevas restricciones de integridad a la tabla. Para la tabla [ARTICLES], crearemos las siguientes restricciones:

  • los campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] deben ser >=0
  • el campo [NOM] debe ser distinto de vacío

En el panel [Checks], hagamos clic con el botón derecho en su área en blanco para agregar una nueva restricción [New check]:

Image

  • La hoja de edición de restricciones se ve así:

Image

Nombre: nombre de la restricción

Tabla: tabla sobre la que se aplica la restricción

Definición: expresión de la restricción

La restricción se compila mediante el botón [Compile] que se muestra arriba.

  • De nuevo, [MS SQL Manager] muestra los comandos SQL ejecutados:

Image

  • Se validan con el botón [Commit] (no representado). Si regresamos al panel [Checks] de la tabla [ARTICLES], aparece la nueva restricción:

Image

  • De la misma manera, definimos las demás restricciones para obtener finalmente la siguiente lista:

Image

Una vez hecho esto, abramos el panel [DDL] de la tabla [ARTICLES]:

Image

Este panel proporciona el código Transact-SQL para generar la tabla con todas sus restricciones. Podemos guardar este código en un script para ejecutarlo más adelante:

CREATE TABLE [ARTICLES] (
  [id] int NOT NULL,
  [nom] varchar(20) COLLATE French_CI_AS NOT NULL,
  [prix] float(53) NOT NULL,
  [stockactuel] int NOT NULL,
  [stockminimum] int NOT NULL,
  CONSTRAINT [ARTICLES_uq] UNIQUE ([nom]),
  PRIMARY KEY ([id]),
  CONSTRAINT [ARTICLES_ck_id] CHECK ([id] > 0),
  CONSTRAINT [ARTICLES_ck_nom] CHECK ([nom] <> ''),
  CONSTRAINT [ARTICLES_ck_prix] CHECK ([prix] >= 0),
  CONSTRAINT [ARTICLES_ck_stockactuel] CHECK ([stockactuel] >= 0),
  CONSTRAINT [ARTICLES_ck_stockminimum] CHECK ([stockminimum] >= 0)
)
ON [PRIMARY]
GO

Ahora es momento de ingresar algunos datos en la tabla [ARTICLES]. Para ello, utilicemos su panel [Data]:

Image

El botón [+] permite agregar una fila, mientras que el botón [-] permite eliminarla. Los datos se ingresan simplemente escribiendo en los campos de cada fila de la tabla. Una fila se valida con el botón [Post Edit] que se encuentra a continuación:

Image

Creemos dos artículos:

Image

[MS SQL Manager] permite generar consultas SQL mediante la opción [Tools/Show SQL Editor] o [F12]. De esta manera, tenemos acceso a un editor avanzado de consultas SQL con el que podemos ejecutar consultas. Estas se guardan en memoria, por lo que podemos volver a una consulta ya ejecutada. A continuación, un ejemplo:

Image

Ejecutamos la consulta SQL con el botón [Execute] que se encuentra arriba. Obtenemos el siguiente resultado:

Image

Con esto concluimos nuestras demostraciones. El par [MS SQL Manager - MSDE], al igual que el par [IBExpert - Firebird], también resulta excelente para el aprendizaje de bases de datos.

3.15. Crear una fuente ODBC [MSDE]

El controlador ODBC para SQL Server normalmente viene instalado de forma predeterminada en las computadoras con Windows.

  • Ejecutar la herramienta [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • Aparecerá la siguiente ventana:

Image

  • Agreguemos una nueva fuente de datos del sistema, [Add] (panel [System DSN]), que asociaremos a la base de datos MSDE que creamos en el párrafo anterior:

Image

  • En primer lugar, debemos especificar el controlador ODBC que se utilizará. En la imagen anterior, seleccionamos el controlador para [SQL Server] y luego pasamos a [Terminer]. A continuación, se activa el asistente del controlador ODBC de [SQL Server]:

Image

  • llenamos los distintos campos:
Nom [odbc-msde-articles]
el nombre de la fuente ODBC —puede ser cualquiera—
Description
puede ser cualquiera
Serveur SQLMap
portable_tahe\msde140405
nombre del servidor MSDE que contiene los datos de la fuente ODBC
  • se crea [Suivant] para proporcionar nueva información:

Image

  • llenamos los distintos campos:
Authentification SQL Server
indicamos que nos conectaremos a la fuente de datos ODBC con un nombre de usuario registrado en el servidor MSDE
ID de connexion [admarticles]
inicio de sesión de usuario
Mot de passe [mdparticles]
contraseña de usuario
  • Cabe destacar que estamos utilizando por primera vez el usuario (admarticles, mdparticles) creado en un párrafo anterior. Volvemos a ejecutar [Suivant] para obtener la siguiente hoja:

Image

  • Llenamos los distintos campos:
Changer la base ...
Seleccionamos la base [dbarticles] como base predeterminada para el usuario [admarticles]
  • ejecutamos [Suivant] para obtener la siguiente hoja nueva:

Image

  • Aceptamos los valores predeterminados y creamos [Terminer]. A continuación se presenta un resumen de las características de la fuente ODBC que se va a crear:

Image

  • El botón [Tester la source de données] nos permite verificar la validez de nuestra información. Verifique que se haya iniciado MSDE y luego pruebe la conexión:

Image

  • Ahora estamos seguros de que se reconoce el par [admarticles, mdparticles].

Para realizar pruebas adicionales, el lector puede seguir el procedimiento explicado en el párrafo 3.10.

3.16. Cadena de conexión a una base de datos MSDE

  • Inicie Visual Studio y solicite que se muestre el explorador de servidores [Affichage/Explorateur de serveurs]:
  • Haga clic con el botón derecho en [Connexion de données] y seleccione la opción [Ajouter une connexion]:

Image

  • En el panel [Provider], indica que quieres usar una fuente SQL Server, luego pasa al panel [Connection]. Ten en cuenta que aquí no se utiliza un controlador ODBC.

Image

Nom de serveur
[portable1_tahe\msde140405]
nombre del servidor MSDE al que nos conectamos
Nom d'utilisateur [admarticles]
identificador que se debe usar para conectarse a la base de datos
Mot de passe [mdparticles]
la contraseña asociada a este nombre de usuario
base de données [dbarticles]
la base de datos con la que se desea trabajar

Un botón [Tester la connexion] permite verificar la validez de la información:

Image

  • Confirmar el asistente con [OK]. Curiosamente, una nueva ventana solicita los datos de la conexión:

Image

  • Las volvemos a ingresar y ejecutamos [OK]. La fuente de datos aparece entonces en la ventana [Explorateur de serveurs] de Visual Studio:

Image

  • Al hacer doble clic en la tabla [ARTICLES], se tiene acceso a los datos de la tabla:

Image

  • Si hacemos clic con el botón derecho en el enlace [portable1_tahe\msde140405.dbarticles.admarticles] del panel [Explorateur de serveurs] y seleccionamos la opción [Propriétés], tenemos acceso a las propiedades de la conexión:

Image

  • La cadena de conexión [ConnectString] es una propiedad interesante que conviene conocer, ya que el código .NET la necesita para establecer una conexión con la base de datos. En este caso, la cadena de conexión es:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PORTABLE1_TAHE;Use Encryption for Data=False;Tag with column collation when possible=False

Muchos elementos de esta cadena de conexión tienen valores predeterminados. Nos bastará con la siguiente cadena de conexión:

"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;PASSWORD=mdparticles"