por Mark A. Williams
Utilice las capacidades de ODP.NET para la globalización y personalización.
La interface de usuarios en una aplicación Oracle es el portal a través del cual los usuarios interactúan con los datos de Oracle Database, y presentar estos datos en un formato adecuado para la ubicación, región o país de cada usuario mejorará la experiencia del usuario. Según el nivel de acceso a los datos utilizado, personalizar las aplicaciones para la ubicación de cada cliente puede ser una tarea ardua, pero este no es definitivamente el caso al utilizar Oracle Data Provider for .NET (ODP.NET) como su nivel de acceso a los datos.
Esta columna demuestra cómo utilizar ODP.NET para crear una aplicación que permita que los usuarios personalicen su experiencia al seleccionar el idioma y el formato de la fecha y los datos numéricos. La aplicación consulta Oracle Database, de acuerdo con los datos de usuarios, y luego presenta los datos formateados de acuerdo con el criterio definido por el usuario. La interface de usuarios ofrece opciones para configurar el idioma, territorio, formato de fecha y si realizar una búsqueda que no concuerde con mayúsculas y minúsculas. (Para obtener información adicional sobre estos parámetros o los formatos válidos, vea la Guía para Soporte de Globalización de Oracle Database ).
Para crear la aplicación en esta columna, necesitará lo siguiente:
Comencemos por crear un nuevo sitio Web ASP .NET 2.0 en Visual Studio.
Crear la Solución
Los siguientes pasos crean la solución ASP.NET 2.0 dentro de Visual Studio 2005 o 2008:
Presente la Pantalla Web
Siga los pasos de esta sección para presentar los elementos de la interface de usuarios en la pantalla Web. Para mantener la interface lo más simple y compacta posible, utilizo componentes ASP.NET 2.0 estándar y no segrego las funcionalidades, como la presentación y la lógica de negocios, en diferentes niveles.
En este punto, la presentación se verá similar a la presentación en la Figura 1.
Figura 1: La pantalla Web ASP.NET 2.0 en tiempo de diseño
Configurar las Fuentes de Datos y Conectar los Controles
Ahora que ha finalizado exitosamente la presentación de los controles y elementos HTML en la pantalla Web, es hora de “conectar” las piezas. En esta sección, usted puede crear la cadena de conexión de base de datos necesaria y el texto SQL, y combinar los controles.
select value from v$nls_valid_values where parameter='LANGUAGE' order by 1
Haga click en Siguiente; y finalmente haga click en Finalizar.3. Haga click en el control dsTerritory SqlDataSource para seleccionarlo, y haga click en tareas rápidas en el ángulo superior derecho del control para abrir la ventana de Tareas SqlDataSource como antes. Haga click en la opción Configurar Fuente de Datos, seleccione la conexión previamente definida de la lista, haga click en Siguiente, haga click en la opción Especificar una sentencia SQL personalizada o procedimiento almacenado, haga click en Siguiente, ingrese el siguiente texto como texto SQL:
select value from v$nls_valid_values where parameter='TERRITORY' order by 1
Haga click en Siguiente, y haga click en Finalizar.
4. Haga click en la lista ddlLanguage para seleccionarla, haga click en tareas rápidas, seleccione Elegir Fuente de Datos, seleccione dsLanguage desde la lista Seleccionar fuente de datos, y haga click en OK.
5. Haga click en la lista ddlTerritory para seleccionarla, haga click en tareas rápidas, seleccione Elegir Fuente de Datos, seleccione dsTerritory desde la lista Seleccionar una fuente de datos, y haga click en OK.
6. Haga doble click en el botón btnLookup para abrir el editor de código de origen para el archivo Default.aspx.cs; agregue lo siguiente a la lista de directivas de uso:
using Oracle.DataAccess.Client;
y para el btnLookup_Click automáticamente creado, ingrese el código en la Lista 1.
Lista de Código 1: código del operador de evento
protected void btnLookup_Click(object sender, EventArgs e) {
string strLastName = string.Empty;
string constr = ConfigurationManager.ConnectionStrings["SepOct2008"]
.ConnectionString;
OracleConnection con = new OracleConnection(constr);
con.Open();
OracleGlobalization glb = OracleGlobalization.GetThreadInfo();
glb.Language = ddlLanguage.Text;
glb.Territory = ddlTerritory.Text;
if (txtDateFormat.Text.Length > 0) {
glb.DateFormat = txtDateFormat.Text;
}
if (txtLastName.Text.Length > 0) {
strLastName = txtLastName.Text;
}
else {
strLastName = "%";
}
if (chkCaseInsensitive.Checked) {
glb.Sort = "BINARY_CI";
glb.Comparison = "LINGUISTIC";
}
con.SetSessionInfo(glb);
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select first_name, " +
"last_name, " +
"to_char(hire_date) hire_date, " +
"to_char(nvl(commission_pct, 0), 'fm990D00') commission_pct " +
"from employees " +
"where last_name like (:1) " +
"order by last_name, first_name";
OracleParameter pLastName = new OracleParameter();
pLastName.Value = strLastName;
cmd.Parameters.Add(pLastName);
OracleDataReader dr = cmd.ExecuteReader();
gvResults.DataSource = dr;
gvResults.DataBind();
glb.Dispose();
dr.Dispose();
pLastName.Dispose();
cmd.Dispose();
con.Dispose();
}
Ponga en Marcha la Muestra
Usted ahora puede ejecutar esta aplicación del sitio Web ASP.NET 2.0 al presionar la tecla F5 desde Visual Studio y hacer click en OK para permitir que la información de depuración se cree en el archivo de configuración. Para configurar la presentación para el idioma Francés y Francia como país, haga lo siguiente cuando el browser despliegue la pantalla Web: seleccione FRENCH de la lista de Idioma y FRANCE de la lista Territorio; ingrese DD-fmMonth-YYYY para Formato de Fecha; ingrese g% para Apellido; haga un click en el casillero No Coincidir Mayúsculas y Minúsculas; y finalmente haga click en el botón Consultar. Fíjese que los nombres de meses se muestran en Francés, el separador decimal para Porcentaje de Comisión es una coma (adecuado para la opción de territorio FRANCE), y los valores para Apellido son adecuadamente recuperados sin que coincidan las mayúsculas y minúsculas. (Fíjese que si su browser no respalda la disposición del idioma seleccionado, puede ver caracteres incorrectos en el resultado.) Le aconsejo experimentar diferentes combinaciones de idioma, territorio, formato de fecha y búsquedas que no coincidan con mayúsculas y minúsculas.
Conclusión
Los pasos de esta columna han demostrado cómo crear una aplicación ASP.NET 2.0 con ODP.NET rápida y fácilmente, que pueda adecuarse a la preferencia del usuario respecto del idioma y el formato de fecha y datos numéricos almacenados en Oracle Database. Utilizar ODP.NET para ofrecer esta experiencia personalizada al cliente aumenta la productividad del desarrollador (porque hay menos código para escribir) y facilita la administración de códigos, porque su aplicación utilizará un solo grupo de código que puede aplicarse a todos los lugares.
Mark A. Williams ( mawilliams@cheshamdbs.com) es un director Oracle ACE, un DBA Oracle Certified Professional, el autor de Pro .NET Oracle Programming (Apress, 2004), y contribuyente en el foro de Oracle Data Provider for .NET en Oracle Technology Network.
