3. Anexos
3.1. Crear un proyecto web con Visual Studio.net en XP familiar
Visual Studio.net permite crear diferentes tipos de proyectos:

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 local o remoto. Si se trabaja en un equipo 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 algunos inconvenientes menores. Basta con:
- utilizar el servidor web Cassini en lugar del servidor IIS. Está disponible gratuitamente 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]

- Añadir 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 asocia un editor de páginas. Este tiene dos paneles:
- [design] para construir gráficamente la página
- [HTML] para acceder al código de la página

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

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

- 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 dibujemos la siguiente página:

La página contiene texto y un componente de servidor de tipo [Label] con el identificador [lblHeure].
- Pasemos al panel [HTML]. En él 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 sintáctico 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 introducirá la hora en el componente [lblHeure]. Observamos que este no es reconocido por Intellisense, la herramienta de ayuda a la escritura de código.
- Cerramos [demo.aspx] y [demo.aspx.vb] tras guardarlos previamente y, a continuación, los volvemos a abrir. Pasar al código [demo.aspx.vb]. Esta vez, Intellisense reconoce correctamente el componente [lblHeure] de [demo.aspx] en el código [demo.aspx.vb]. Completar el código:

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

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

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"
la ruta del ejecutable | |
la ruta de la carpeta del proyecto web de Visual Studio | |
la ruta virtual asociada |
- Inicie Cassini. Su icono se instalará en la barra de tareas. Haga clic con el botón derecho del ratón sobre él y seleccione la opción [Show details] para comprobar la correcta configuración del servidor web:

- Con un navegador, solicitamos la página que hemos creado, introduciendo URL [http://localhost/demo/demo.aspx]. Obtenemos el siguiente resultado:

Hemos conseguido 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 crear aplicaciones web en equipos que no disponen del servidor IIS, como es el caso de los equipos 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 en las plataformas .NET disponible en el URL:

Seguiremos atentamente los pasos de instalación del producto:
- descargar e instalar la plataforma .NET (1.1 en 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:

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

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

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 por defecto. Se puede configurar para que no aparezca este cuadro de diálogo al iniciarse. Esto se consigue mediante la opción [File/New File]. [WebMatrix] permite crear plantillas para diferentes aplicaciones web. Arriba, hemos especificado 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 colocará esta página web. En (3) indicamos el nombre de la página. Debe tener la extensión .aspx. Por último, en (4), especificamos que queremos trabajar con el lenguaje VB.NET, ya que [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]. En ella colocamos el siguiente código:

- La pestaña [Design] permite «dibujar» 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 reaccionar, como un botón, por ejemplo. Estos eventos serán gestionados por 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 ha podido añadir 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 marcha

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

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:

Abramos una ventana de DOS y nos situemos en 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:
Aparece una ventana de ayuda:

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 del disco
- /vpath: carpeta virtual asociada a la carpeta física anterior. Hay que tener en cuenta que la sintaxis no es /path=ruta, sino /vpath:ruta, al contrario de lo que indica el ejemplo [Example] del panel de ayuda anterior.
Colocamos el archivo [demo1.aspx] en la siguiente carpeta:

Asociemos a la carpeta física [d:\data\devel\webmatrix] 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 icono aparecerá en la barra de tareas. Si hacemos doble clic sobre él:

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

Sigamos el enlace [demos]:

y luego el enlace [demo1.aspx]:

Vemos, pues, que si la carpeta física P=[d:\data\devel\webmatrix] se ha asociado a la carpeta virtual V=[/webmatrix] y el servidor funciona 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 [http://localhost:100/V/demos/demo1.aspx].
Para no tener que pasar por una ventana DOS para iniciar el servidor Cassini, se puede crear un acceso directo al ejecutable del servidor con propiedades similares a las siguientes:

"C:\Archivos de programa\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\travail\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles" | |
"C:\Archivos de programa\Microsoft ASP.NET Web Matrix\v0.6.812" |
3.3. ¿Dónde encontrar Spring?
El sitio web principal de Spring es [http://www.springframework.org/]. Es el sitio web de la versión Java. La versión .NET, actualmente en desarrollo (abril de 2005), se encuentra en la URL [http://www.springframework.net/].

El sitio de descarga se encuentra en [SourceForge]:

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

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

En un proyecto de Visual Studio que utilice Spring, hay que hacer sistemáticamente dos cosas:
- colocar los archivos anteriores en la carpeta [bin] del proyecto
- añadir al proyecto una referencia al ensamblado [Spring.Core.dll]
3.4. ¿Dónde se encuentra Nunit?
La página web principal de Nunit es [http://www.nunit.org/]. La versión disponible en abril de 2005 es la 2.2.0:

Descargue esta versión e instálela. La instalación crea una carpeta donde se encuentra la versión gráfica de prueba:
Lo interesante se encuentra en la carpeta [bin]:


La flecha anterior señala la utilidad gráfica de prueba. La instalación también ha añadido nuevos elementos al repositorio de ensamblados de Visual Studio que vamos a descubrir ahora.
Creemos el siguiente proyecto de Visual Studio:

La clase sometida a prueba se encuentra en [Personne.vb]:
Public Class Personne
' campos privados
Private _nom As String
Private _age As Integer
' constructor por defecto
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 de pantalla
Console.WriteLine("début test")
' inicialización 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 varias cosas que hay que tener en cuenta:
- los métodos tienen 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 en [References] en el explorador de soluciones:
![]() | ![]() |

El ensamblado [nunit.framework.dll] debe aparecer en la lista si la instalación de [Nunit] se ha realizado correctamente. Basta con hacer doble clic en el ensamblado para añadirlo al proyecto:

Una vez hecho esto, la clase de prueba [NunitTestPersonne] debe importar el espacio de nombres [NUnit.Framework]:
A continuación, deben reconocerse los atributos de la clase de prueba [NunitTestPersonne].
- El atributo <Test()> designa un método que se va a probar
- el atributo <Setup()> designa el método que se debe ejecutar antes de cada método probado
- 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 de dos entités.Il existen muchos otros métodos de 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:

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]:

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

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

[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 concreto seleccionándolo y solicitando su ejecución mediante [Run]. Solicitemos la ejecución de la clase:

Una prueba superada 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] de la derecha muestra las pantallas generadas por los métodos probados. En este caso, hemos querido seguir el desarrollo de una prueba:
- la línea 1 muestra que el método de atributo <Setup()> se ejecuta antes de la prueba
- las líneas 2-3 son generadas por el método [demo] probado (véase 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 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):

Se descargarán los siguientes elementos:
el SGBD para Windows | |
una biblioteca de clases para aplicaciones .NET que permite acceder a SGBD sin pasar por un controlador ODBC. | |
el controlador ODBC de Firebird |
Instale estos elementos. El SGBD se instala en una carpeta cuyo contenido es similar al siguiente:

Los binarios se encuentran en la carpeta [bin]:

permite iniciar/detener el SGBD | |
cliente de línea que permite gestionar 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]:

La opción [Firebird Guardian] permite iniciar/detener el SGBD. Tras el inicio, el icono del SGBD permanece en la barra de tareas de Windows:
![]() |
Para crear y utilizar bases de datos Firebird con el cliente de línea [isql.exe], es necesario leer la documentación incluida 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 se puede encontrar IB- Expert?
El sitio web principal de Firebird es [http://www.ibexpert.com/]. La página de descargas ofrece los siguientes enlaces:

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

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

Una vez iniciado, IBExpert muestra la siguiente ventana:

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

puede ser [local] o [remote]. En este caso, nuestro servidor está en la misma máquina que [IBExpert]. Por lo tanto, elegimos [local] | |
utilizar el botón de tipo [dossier] del menú desplegable para designar el archivo de la base de datos. Firebird guarda toda la base de datos en un único archivo. Esta es una de sus ventajas. La base de datos se transfiere de un equipo a otro simplemente copiando el archivo. El sufijo [.gdb] se añade automáticamente. | |
SYSDBA es el administrador por defecto de las distribuciones actuales de Firebird | |
masterkey es la contraseña del administrador SYSDBA de las distribuciones actuales de Firebird | |
el dialecto SQL que se va a utilizar | |
si la casilla está marcada, IBExpert mostrará un enlace a la base de datos creada tras haberla creado |
Si al hacer clic en el botón de creación [OK] aparece el siguiente aviso:

es que no ha iniciado Firebird. Inícielo. Aparecerá una nueva ventana:

[IBExpert] es capaz de gestionar diferentes SGBD derivados de Interbase. Seleccione la versión de Firebird que tenga instalada |
![]()
Una vez validada esta nueva ventana por [Register], se obtiene el siguiente resultado:

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

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:
![]() |
Empecemos por asignar el nombre [ARTICLES] a la tabla utilizando el campo de entrada [1]:
![]() |
Utilicemos el campo de entrada [2] para definir una clave primaria [ID]:
![]() |
Un campo se convierte en clave primaria haciendo doble clic en el campo [PK] (Primary Key) del campo. Añadamos campos con el botón [3]:

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

Curiosamente, IBExpert muestra las consultas SQL que ha ejecutado. Esto permite aprender tanto el lenguaje SQL como el dialecto SQL, que podría ser propietario. 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, IBExpert añade la tabla creada al árbol de nuestra base de datos:

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

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

Encontramos la restricción de clave primaria que hemos creado. Podemos añadir otras restricciones:
- claves externas [Foreign Keys]
- restricciones de integridad de campos [Checks]
- restricciones de unicidad de campos [Uniques]
Señalemos que:
- los campos [ID, PRIX, STOCKACTUEL, STOKMINIMUM] deben ser >0
- el campo [NOM] debe ser distinto de 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 añadir una nueva restricción:

Definamos las restricciones deseadas:

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

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:

Definamos la restricción:

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

Este proporciona el código SQL de generación de la tabla con todas sus restricciones. Podemos guardar este código en un script para volver a 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 introducir datos en la tabla [ARTICLES]. Para ello, utilicemos su panel [Data]:

Los datos se introducen haciendo doble clic en los campos de entrada de cada fila de la tabla. Se añade 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 emitir consultas SQL mediante la opción [Tools/SQL Editor] o [F12]. De este modo, se tiene acceso a un editor de consultas SQL avanzado con el que se pueden ejecutar consultas. Estas se almacenan, por lo que es posible volver a una consulta ya ejecutada. A continuación se muestra un ejemplo:

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

Dejaremos aquí nuestras demostraciones. La combinación IBExpert-Firebird resulta excelente para el aprendizaje de bases de datos.
3.7. Instalación y uso de un controlador de ODBC para [Firebird]
3.8. Instalar el controlador
El enlace [firebird-odbc-provider] de la página de descargas de [Firebird] (apartado 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]:

- Aparecerá la siguiente ventana:

- Añadamos [Add], una nueva fuente de datos del sistema (panel [System DSN]), que asociaremos a la base de datos Firebird que hemos creado en el apartado anterior:

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

- Rellenamos los distintos campos:

el nombre DSN de la fuente ODBC - puede ser cualquiera | |
el nombre de la base de datos Firebird BD que se va a utilizar; utilice [Browse] para designar el archivo .gbd correspondiente | |
identificador que se debe utilizar para conectarse a la base de datos | |
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 utilizarlo, ejecute el SGBD [Firebird]:

- valide el asistente ODBC, haciendo [OK] tantas veces como sea necesario
3.10. Probar la fuente ODBC
Hay varias formas de comprobar el correcto funcionamiento de una fuente ODBC. Aquí utilizaremos Excel:

- utilicemos la opción anterior. Aparece la primera ventana de un asistente de definición de la fuente de datos. El panel muestra las fuentes definidas actualmente en el equipo:

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

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

- Pasemos al siguiente paso con [Suivant]:

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

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

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

- 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:

Hay 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 icono situado en la parte izquierda de la ventana de OpenOffice permite acceder a las fuentes de datos. La interfaz cambia entonces para mostrar un área de gestión de fuentes de datos:

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

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

un nombre cualquiera. Aquí hemos tomado el nombre de la fuente ODBC | |
OpenOffice es capaz de gestionar diferentes tipos de BD a través de JDBC, ODBC o directamente (MySQL, Dbase, ...). Para nuestro ejemplo, hay que elegir ODBC | |
el botón situado 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:

el propietario de la fuente ODBC |
- pasamos al panel [Tables]. Se solicita la contraseña. En este caso es [masterkey]:

- se introduce [OK]. A continuación se muestra la lista de tablas de la fuente ODBC:

- 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. Aparece entonces en la lista de fuentes de datos del documento activo:

- Se puede arrastrar con el ratón la tabla [ARTICLES] anterior al texto [OpenOffice]:

3.11. Cadena de conexión de una fuente ODBC Firebird
- 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]:

- en el panel [Provider], indicar que se desea utilizar una fuente ODBC (véase más arriba) y, a continuación, pasar al panel [Connection]:

seleccionar la fuente ODBC en el menú desplegable. Debería aparecer la que acaba de crearse. Si es necesario, utilizar [Refresh] para actualizar la lista de fuentes ODBC. | |
identificador que se debe utilizar para conectarse a la base | |
la contraseña asociada a este identificador |
Una vez más, el botón [Test Connection] permite verificar la validez de la información:

- validar el asistente mediante [OK]. La fuente de datos aparecerá entonces en la ventana [Explorateur de serveurs] de Visual Studio:

- Al hacer doble clic en la tabla [ARTICLES], se accede a los datos de la tabla:

- si hacemos clic con el botón derecho del ratón en el enlace [Firebird Server D:\temp\... ] y seleccionamos la opción [Propriétés], se accede a las propiedades de la conexión:

- 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, dicha 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 por defecto. Nos bastará con la siguiente cadena de conexión:
Con esto concluye nuestra presentación del controlador ODBC de [Firebird].
3.12. ¿Dónde se puede encontrar el SGBD MSDE?
MSDE es la versión gratuita del servidor SGBD SQL de Microsoft. Se encuentra en el URL [http://www.microsoft.com/sql/msde/downloads/download.asp]:
![]() |
![]() | ![]() |
Descargue el archivo de instalación y, a continuación, instale 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 podrá eliminarse posteriormente:
![]() | ![]() |
Lea 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 se le puedan pasar parámetros. Los principales son los siguientes:
Descripción | |
| Especifica una contraseña reforzada que se asignará al inicio de sesión de administrador «sa». |
| Define el nombre de la instancia. Si no se especifica INSTANCENAME, el programa de instalación instala una instancia por defecto. |
Otros parámetros que se utilizan a menudo para personalizar una instalación son:
Descripción | |
| Especifica si la instancia aceptará conexiones de red procedentes de aplicaciones que se ejecutan en otros equipos. De forma predeterminada, o si se 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. |
Especifica que la instancia debe instalarse en modo mixto, es decir, que la instancia admite la autenticación de Windows y la autenticación SQL para las conexiones | |
| Especifica la carpeta en la que el programa de instalación instala 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 añade MSSQL\ al valor especificado. Para una instancia con nombre, el programa de instalación añade 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. |
| 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 programa de instalación añade MSSQL\Binn al valor especificado. Para una instancia con nombre, el programa de instalación añade MSSQL$NomInstance\Binn, donde NomInstance es el valor especificado mediante el parámetro INSTANCENAME. |
Tras leer las recomendaciones de instalación anteriores, nos situamos en la carpeta donde se han extraído los archivos de instalación y ejecutamos el siguiente comando DOS (uso de SGBD sin red):
- 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 este modo, podremos conectarnos a MSDE de dos maneras:
- con una cuenta de administrador de Windows
- con una cuenta MSDE: en este caso se solicitarán un nombre de usuario y una contraseña. Este será el modo que se 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 SGBD en red, se habría ejecutado el siguiente comando:
El programa de instalación es minimalista y finaliza sin mostrar ningún mensaje... Sin embargo, se puede ver que SGBD se ha instalado mediante la opción [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:
![]()
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 hay una información importante: el nombre de la instancia MSDE:
Es importante conocer este nombre, ya que todos los clientes de SGBD lo necesitarán. A falta de estos registros, se puede encontrar el nombre de un servidor MSDE, que es [machine_windows\nom_instance_MSDE]. El nombre del equipo está disponible en varios lugares. Por ejemplo:
- haga clic con el botón derecho del ratón en [poste de travail] en el escritorio, seleccione la opción [propriétés] y, a continuación, el panel [Nom de l'ordinateur]:

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

Si miramos las propiedades de este acceso directo, vemos que el destino es el siguiente:
En la carpeta [ C:\Program Files\Microsoft SQL Server] hay unas subcarpetas:

- 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 por defecto.
- 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 a través del acceso directo de [Démarrer -> Programmes -> Démarrage]. No ocurre prácticamente nada, salvo que se ha instalado un icono en la barra de estado: | Hagamos doble clic en este icono: ![]() |
El servidor MSDE que se propone aquí es el servidor por defecto [PORTABLE1_TAHE] presente en el equipo. Recordemos que el servidor MSDE que hemos instalado se llama [PORTABLE1_TAHE\MSDE140405]. Cambiamos el nombre del servidor en el campo correspondiente: ![]() | Si todo va bien, se debe iniciar la instancia [MSDE140405]: ![]() |
Podemos realizar una primera comprobación. En la misma carpeta en la que se encuentra [sqlmangr.exe], hay un cliente de consola [osql.exe] que permite conectarse a un servidor MSDE y enviar comandos SQL. Durante la instalación, asignamos la contraseña [azerty] al administrador [sa] de nuestro servidor MSDE. Mediante el cliente de consola, nos conectaremos al servidor recién instalado. Si ejecutamos 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 ha indicado anteriormente y, a continuación, 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. Existe en diferentes formatos (pdf, htmlhelp, etc.). Esta documentación es muy extensa. Por lo general, es preferible utilizar un cliente gráfico para trabajar con una base MSDE. Esto es lo que se propone más adelante. Para salir de [osql], se utiliza el comando [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 de tipo [authentification windows]. Este tipo de autenticación solo permite el acceso a usuarios identificados en el equipo Windows (posiblemente a través de un dominio). Para un programa VB.NET que desea conectarse a una base de datos para explotar 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. En ese caso, es preferible 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 MSDE. Se encuentra en URL [http://www.valesoftware.com/].
Descargamos la versión gratuita siguiendo el enlace anterior:


La versión de prueba tiene una duración limitada. Esto nos viene bien, ya que solo la utilizaremos para una única acción muy concreta. 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:

- inicie el servidor MSDE140405
- debes estar conectado al equipo 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]:


Aparecerá la siguiente página de propiedades:
![]() |
portable1_tahe\msde140405 - nombre de la instancia MSDE a la que desea conectarse | |
Autenticación de Windows: este modo siempre está disponible y permite a un administrador del equipo Windows conectarse al servidor MSDE | |
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:

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

Aparece la siguiente ventana de información:

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

Hay que asegurarse aquí de que el modo de autenticación de MSDE sea efectivamente [SQL Server and Windows]. De este modo, podremos conectarnos a MSDE de dos maneras:
- con una cuenta de administrador de Windows —esto es lo que se ha hecho aquí—
- con una cuenta de MSDE: en este caso se solicitarán un nombre de usuario y una contraseña. Este será el modo que se 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 se puede encontrar EMS MSSQL Manager?
EMS MS 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):

El sitio ofrece gestores de administración para numerosos SGBD. Siga el enlace [MS SQL Manager]:

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

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

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

Empecemos 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 del equipo Windows. En el modo [SQL Server], se utilizan las cuentas de 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. Hemos visto cómo activarlo con MSDE Manager. En el ejemplo anterior, la conexión se realizó con una cuenta de administrador.
- Paso 2: una vez completada la autenticación, se proponen las bases de datos predeterminadas de MSDE. Arriba, se han seleccionado 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:

Utilicemos la opción [Database/Create Database] para crear una base de datos:
![]() |
Paso 2:
Cuando aparece esta página de información, la base [dbarticles] se ha creado. Podemos comprobarlo con el botón [Test Connect]. En el campo [Database alias] podemos poner 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 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 conexión que será administrador de la base de datos [admarticles].
- Seleccione la opción [Tools/Login manager]:

- Se observa que ya hay dos cuentas definidas:
- [BUILTIN\Administrateurs]: este usuario utiliza autenticación de Windows. Representa a los administradores del equipo Windows en el 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 de la instalación de SGBD MSDE, su contraseña es [azerty].
- Hacemos clic con el botón derecho en el área de inicios de sesión y añadimos un nuevo inicio de sesión:
![]() |
- Aparece una hoja de datos en la que definimos las características del nuevo inicio de sesión:

- Nombre de usuario: admarticles
- Contraseña: mdparticles
- Una vez pulsado el botón [OK], MS Manager nos muestra las consultas SQL que va a ejecutar:

El lenguaje SQL presentado anteriormente es Transact-SQL, el lenguaje SQL de MSDE. Solicitamos la ejecución de este código mediante [OK]
- el nuevo inicio de sesión se inserta en la lista de inicios de sesión:

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

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

- En el menú desplegable [Login] aparece la lista de inicios de sesión existentes. Seleccionamos el inicio de sesión [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 pasa primero por la creación de un inicio de sesión. El panel [User] queda así:

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

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

- Confirmamos nuestras selecciones con el botón [Compile] situado arriba. Las consultas SQL presentadas para su ejecución son las siguientes:

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

- Ahora 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:

- Empecemos por asignar el nombre [ARTICLES] a la tabla utilizando el campo de entrada [Table Name]. Pasemos ahora al panel [Fields]:

- definamos los siguientes campos:

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

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] añade la tabla creada al árbol de nuestra base de datos:

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

El panel [Checks] nos permite añadir nuevas restricciones de integridad a la tabla. Para la tabla [ARTICLES] vamos a crear 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 añadir una nueva restricción [New check]:

- La hoja de edición de restricciones tiene el siguiente aspecto:

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] situado arriba.
- De nuevo, [MS SQL Manager] muestra los comandos SQL ejecutados:

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

- Definimos del mismo modo las demás restricciones para obtener finalmente la siguiente lista:

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

Este proporciona el código Transact-SQL para generar la tabla con todas sus restricciones. Podemos guardar este código en un script para volver a 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 el momento de introducir algunos datos en la tabla [ARTICLES]. Para ello, utilicemos su panel [Data]:

El botón [+] permite añadir una línea, mientras que el botón [-] permite eliminarla. Los datos se introducen simplemente escribiendo en los campos de cada línea de la tabla. Una línea se valida con el botón [Post Edit] que se encuentra a continuación:
![]()
Creemos dos artículos:

[MS SQL Manager] permite emitir consultas SQL mediante la opción [Tools/Show SQL Editor] o [F12]. De este modo, se tiene acceso a un editor de consultas SQL avanzado con el que se pueden ejecutar consultas. Estas se almacenan, por lo que es posible volver a una consulta ya ejecutada. He aquí un ejemplo:

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

Dejaremos aquí 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 suele venir instalado de forma predeterminada en los equipos Windows.
- Ejecutar la herramienta [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

- Aparecerá la siguiente ventana:

- Añadamos [Add], una nueva fuente de datos del sistema (panel [System DSN]), que asociaremos a la base MSDE que hemos creado en el párrafo anterior:

- En primer lugar, debemos especificar el controlador ODBC que se va a utilizar. Arriba, elegimos el controlador para [SQL Server] y luego hacemos [Terminer]. A continuación, toma el control el asistente del controlador ODBC de [SQL Server]:

- Rellenamos los distintos campos:
El nombre de la fuente ODBC: puede ser cualquiera | |
puede ser cualquiera | |
nombre del servidor MSDE que contiene los datos de la fuente ODBC |
- se crea [Suivant] para proporcionar nueva información:

- Rellenamos los distintos campos:
indicamos que nos conectaremos a la fuente de datos ODBC con un nombre de usuario declarado en el servidor MSDE | |
inicio de sesión de usuario | |
contraseña de usuario |
- Cabe destacar que utilizamos por primera vez el usuario (admarticles, mdparticles) creado en un apartado anterior. Volvemos a ejecutar [Suivant] para obtener la siguiente hoja:

- Rellenamos los distintos campos:
Seleccionamos la base [dbarticles] como base por defecto para el usuario [admarticles] |
- introducimos [Suivant] para obtener la siguiente hoja nueva:

- Aceptamos los valores por defecto y creamos [Terminer]. Se muestra un resumen de las características de la fuente ODBC que se va a crear:

- El botón [Tester la source de données] nos permite verificar la validez de nuestra información. Compruebe que se ha iniciado MSDE y, a continuación, pruebe la conexión:

- Ahora estamos seguros de que se reconoce el par [admarticles, mdparticles].
Para realizar pruebas adicionales, el lector puede seguir el procedimiento explicado en el apartado 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]:

- En el panel [Provider], indique que desea utilizar una fuente SQL Server y, a continuación, pase al panel [Connection]. Tenga en cuenta que aquí no se utiliza un controlador ODBC.

nombre del servidor MSDE al que nos conectamos | |
identificador que se debe utilizar para conectarse a la base de datos | |
la contraseña asociada a este identificador | |
la base de datos con la que se desea trabajar |
Un botón [Tester la connexion] permite verificar la validez de la información:

- validar el asistente mediante [OK]. Curiosamente, una nueva ventana solicita los datos de conexión:

- las volvemos a introducir y ejecutamos [OK]. La fuente de datos aparece entonces en la ventana [Explorateur de serveurs] de Visual Studio:

- Al hacer doble clic en la tabla [ARTICLES], se accede a los datos de la tabla:

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

- La cadena de conexión [ConnectString] es una propiedad interesante que conviene conocer, ya que el código .NET la necesita para abrir una conexión a la base de datos. En este caso, dicha 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 por defecto. Nos bastará con la siguiente cadena de conexión:






























