Como Calcular de forma facil, la edad en años meses y dias en Sql

Una manera fácil y sencilla de obtener la edad de una persona en términos de Año, mes o día en Sql Server, se puede realizar a partir del siguiente ejemplo:

Declare @FechaNacimiento datetime
Set @FechaNacimiento = '05/16/2011'
Select Convert(Integer, Datediff(Day, @FechaNacimiento, Getdate())/365.25)EdadAños,
 Convert(Integer, Datediff(Day, @FechaNacimiento, Getdate())/30)EdadMeses,
 Convert(Integer, Datediff(Day, @FechaNacimiento, Getdate()))EdadDias 

El resultado de la ejecución anterior seria lo siguiente:


Analizando un poco el ejemplo anterior, lo que se hace es declarar una variable que almacena la fecha de nacimiento, luego ésta es pasada a cada una de las instrucciones Sql que consulta la edad en años, Meses y días.

Leer Mas:

Los invito ha consultar el código que nos permite obtener el tamaño de las tablas de una Base de datos Sql.
Share:

Consumir Web Service desde C# .Net

Para consumir un Web Service en Visual Studio debemos seguir los siguientes pasos, es muy importante para este ejemplo conocer como Crear Web Service con C# en Visual Studio. Para iniciar a Consumir un Web Service en C#, debemos seguir los siguientes pasos:

Abrimos Visual Studio, seleccionamos en menú File - New Web Site... como lo muestra la siguiente imagen:


Luego nos aparece la siguiente imagen, seleccionamos la ubicación del proyecto desde el botón Browser y damos clic sobre el boton OK:


Seguidamente se crea el proyecto solución como se muestra en la siguiente imagen:


Ahora, empezamos agregar la Referencia Web de nuestro Web Service que deseamos consumir. Primero damos clic derecho en nuestro proyecto y damos clic sobre Add Web Reference... 


Luego nos aparece la siguiente ventana, aquí nos permite colocar la Url del Web Service que deseamos consumir, en la opción URL y damos clic en el boton Go, como se muestra en la siguiente imagen:


Al dar clic en el botón Go, nos aparece un nombre de Web Service por default si es necesario lo cambiamos, para nuestro ejemplo colocamos WSSuma:


Hasta aquí tenemos agregado a nuestro proyecto web, el Web Service que creamos en una publicación anterior llamado Crear Web Service con C# en Visual Studio

Continuando con el ejemplo, el proyecto solución quedaría de la siguiente forma:


A continuación se muestra el código Html de la pagina default.aspx: 


Y el código C# de la pagina default.aspx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    //Se instancia en variable local, referencia al web services

    WSSuma.Service wsWeb = new WSSuma.Service();

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSumar_Click(object sender, EventArgs e)
    {
        /****************************************************************************************************
         * Parametrizar en BD la Url del WebServices ademas proxy y credenciales si las llegas a necesitar
         * 2.   Para nuestro ejemplo solo le vamos a pasar el Url del web services apuntando al servidor web
         *      donde se enceuntra alojado
         * 3.   Anexo codigo para credenciales y proxy
         * 
         *      System.Net.WebProxy proxy = new System.Net.WebProxy("IpProxy");
         *      proxy.Credentials = new System.Net.NetworkCredential("userProxy","passProxy","dominioProxy");
         ****************************************************************************************************/
        try
        {
            wsWeb.Url = "http://10.10.174.16/Appwebservices/service.asmx";
            //Se invoca metodo Suma, se pasan los valores A y B y el resultado se muestra
            lblSuma.Text = wsWeb.Suma(txtVA.Text.Trim(), txtVB.Text.Trim());
        }
        catch (Exception ex)
        {
            lblSuma.Text = ex.Message;
        }        
    }
}

En el código anterior la linea No. 11 (WSSuma.Service wsWeb = new WSSuma.Service();)donde se instancia el Web Service es muy importante ya que nos va ha permitir acceder a los métodos del Web Service.

Finalmente nuestro ejemplo ya en ejecución quedaría de la siguiente forma:

Consumir Web Service Visual Studio

Los invito a consultar como crear un Web Services con C# en Visual Studio.
Share:

Crear Web Service con C# en Visual Studio

A continuación vamos a ver la creación de un Web Services con C# en Visual Studio .Net, que tendrá un método llamado Suma. Para este ejemplo utilizamos Visual Studio .Net 2008 pero puede aplicar para .Net 2010. Primero creamos un nuevo proyecto en el menú File - New - Web Site..., como nos muestra la siguiente imagen:


Luego seleccionamos el tipo de proyecto que para nuestro ejemplo es Asp.NET Web Services, buscamos una ubicación para guárdalo con el botón Browse... y damos clic en el botón Ok.

New Web Service Visual Studio

Ya creado el proyecto, el explorador de soluciones nos muestra la siguiente estructura de archivos.

Solution Explorer

Código fuente C#

En el código de .Net, se crea automáticamente una estructura básica que podemos modificar de acuerdo a nuestras necesidades. El atributo [WebMethod] nos indica si el método creado sera expuesto como Web Service, permitiendo que pueda ser consumido por otras aplicaciones,esto lo podemos ver claramente en la siguiente imagen.


Para crear nuestro método Suma reemplazamos el método HelloWorld por el siguiente código:

//Creacion de Metodo Suma que tiene el web Services
    //Los metodos se identifican con 
    [WebMethod]
    public string Suma(string Valor1, string Valor2) {
        int nSuma = 0;
        try
        {
            nSuma = Convert.ToInt32(Valor1) + Convert.ToInt32(Valor2);
        }
        catch
        {
            return "Uno de los valores digitados es incorrecto, por favor verifique.";
        }
        return nSuma.ToString();
    }

Explicando un poco el código anterior, el método Suma recibe dos parámetros (para este ejemplo son string pero podrían ser enteros - int) y la suma de ellos es retornado como un string, si ocurre una excepción ésta es controlada a través de try...catch.
Cuando ejecutamos el código anterior la respuesta en el explorador de Internet aparece nuestro método Suma, luego al dar clic en él, nos solicita los dos parámetros que le declaramos.



Finalmente luego de digitar los valores y dar clic sobre el botón Invocar, el método retorna la siguiente respuesta en formato Xml.


Hasta aquí finalizamos la creación del nuestro Web Service. Los invito ha conocer como Consumir Web Service desde C# .Net

"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Conocer el tamaño de las tablas de una Base de Datos Sql

En ocasiones nos vemos en la necesidad de conocer el tamaño de las tablas de una base de datos Sql y saber cuales están ocupando mas espacio en ella, es de vital importancia para una buena administración de los datos y el servidor. Una opción es consultar las propiedades tabla por tabla pero esto puede llegar a hacer ineficiente cuando tenemos muchas tablas. Lo mejor es ejecutar el siguiente script en nuestra base de datos devolviendo ordenadamente que tabla tiene mayor tamaño por el numero de registros e indices que tiene.
Use BaseDatos
Go
SET NOCOUNT ON 

/************OBTENER EL TAMAÑO DE LAS TABLAS DE UNA BASE DE DATOS********/

/**********************************************************
 Corrige las filas, las páginas utilizadas, las páginas 
 reservadas, las páginas hoja y las páginas de datos de 
 cuenta para cada partición en una tabla o índice.
***********************************************************/
DBCC UPDATEUSAGE(0) 


create TABLE #TablesBD 
(
    [name] NVARCHAR(128),
    [rows] CHAR(11),
    reserved VARCHAR(18),
    data VARCHAR(18),
    index_size VARCHAR(18),
    unused VARCHAR(18)
)

INSERT #TablesBD EXEC sp_msForEachTable 'EXEC sp_spaceused ''?''' 

--CONSULTA EL RESULTADO ORDENANDO POR LA TABLA MAS PESADA
SELECT *
FROM   #TablesBD
ORDER BY convert(int, substring(data, 1, len(data)-3)) desc

Los invito a consultar como se calcula la edad en años, meses y días en Sql.

"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Parámetros OUTPUT en procedimientos almacenados

A continuación podemos ver un pequeño ejemplo en Sql Server de como crear un procedimiento almacenado (SP) con la declaración de parámetros entre estos uno de salida (Output), finalmente se muestra la ejecución del SP y retorna el resultado de la variable Output.

--Crear Procedimiento almacenado
create procedure spdeprueba
 @parametro1  int
 ,@parametro2 int
 ,@resultado  int output --variable de salida
As
begin
 set @respuesta = @parametro1 + @parametro2
end
go

--Ejecutar el procedimiento almacenado e imprimir la variable output
Declare @resultado int

Execute spdeprueba 1,2, @resultado output

Select @resultado
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""
Share:

Procedimiento almacenado programado en Job

Buscar en Sql Server un procedimiento almacenado que se encuentre programado en un JOB (dentro de sus pasos de ejecución) muchas veces puede llegar a ser necesario.

En el siguiente código Sql pueden ver como se puede obtener a partir del nombre o las iniciales de procedimiento almacenado el nombre, fecha de creación y modificación, ultima fecha de creación, entre otros.

Select sj.name,sj.description,sj.date_created,sj.date_modified,sjs.command,sjs.last_run_duration,sjs.last_run_date,last_run_time,
  sjsc.next_run_date,next_run_time
From msdb.dbo.sysjobs sj
 Inner join msdb.dbo.sysjobsteps sjs 
On sj.job_id = sjs.job_id
 Inner join msdb.dbo.sysjobschedules sjsc 
On sjs.job_id = sjsc.job_id
where sjs.command Like'%paDCProcesoDiario%'




Share:

Cómo agregar y leer cadena de conexión al archivo Web.config

En este artículo voy a mostrar cómo se agrega una cadena de conexión en el archivo web.config y recuperar la cadena de conexión en el código utilizando C#.

Primero se declara la llave de conexión dentro del tag AppSettings en el web.config, así:
<appSettings>
<add key="ConnectionStringKey" value="Data Source=DB Server IP;Integrated Security=False;Initial Catalog=DataBaseName;User ID=userId;Password=password;">
</appSettings>
Luego ya en el código (.cs) debemos agregar la referencia a System.Configuration, para tener los métodos necesarios para acceder a esta llave creada.

Para leer el valor de la llave o key, se puede realizar de la siguiente forma:
SqlConnection _cnn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionStringKey"].ToString());

Ahora dentro del tag connectionStrings que se encuentra en el archivo Web.config:

<connectionStrings><add name="ConnectionStringKey" connectionString="Data Source=DB ServerIP;Initial Catalog=DataBaseName;Integrated Security=True;User ID=userId;Password=password;" providerName="System.Data.SqlClient" /><connectionStrings/>


Finalmente para acceder al valor de la llave:
SqlConnection _cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringKey"].ToString());

Share:

Desactivar Cortar, Copiar y Pegar en Textbox Usando jQuery, JavaScript en Asp.Net

En este artículo voy a mostrar cómo se puede desactivar cortar, copiar y pegar en control cuadro de texto de asp.net con javascript o jQuery.

Aquí está el código por el cual podemos realizar esta funcionalidad.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Stylingfrorm.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Desactivar Cortar, Copiar y Pegar en Textbox Usando jQuery, JavaScript en Asp.Net</title>  </head>
<body >
    <form id="form1" runat="server">
    <div>
    <h3>Desactivar Cortar, Copiar y Pegar</h3><br />
    <asp:TextBox ID="TextBox1" runat="server" Width="300px"  oncopy="return false;" onpaste="return false;" oncut="return false;"></asp:TextBox>
    </div>
    </form>
</body>
</html>


"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Validar sólo números y letras con Javascript

En un post anterior mostramos la forma de Validar sólo números o letras con Javascript, en éste podemos ver ambas validaciones es acción, es decir como Validar solo números y letras en el mismo campo.

Esto lo podemos lograr a través del siguiente código JavaScript, mostrado a continuación:

Validar sólo números y letras
//Función que permite solo Números
function SoloNumeroLetras() {
    if ((event.keyCode < 48) || (event.keyCode > 57) && (event.keyCode < 65) || (event.keyCode > 90) && (event.keyCode < 97) || (event.keyCode > 122))
        event.returnValue = false;
}

Luego, para llamar la función en nuestra pagina web, solo basta con invocarlo en el evento onkeypress de la caja de texto así:
<input id="txAlfanumerico" name="txAlfanumerico" onkeypress="SoloNumeroLetras()" type="text" />

Si queremos que los códigos anteriores, no estén incluidos dentro de la pagina web, podemos crear un archivo .js llamado Validaciones.js, luego copiamos y pegamos el código anterior en este archivo, guardamos y finalmente agregamos la siguiente línea, arriba del tag </head> , de la pagina donde se desee llamar la función:
Ejemplo: "<script src="../Scripts/Validaciones.js" type="text/javascript"></script>"

También les puede interesar:
Espero los pueda ayudar, cualquier duda me escriben por este post o a mi  correo, hasta pronto.
Share:

Ranking Navegadores Web Mayo 2013

El ranking de los principales navegadores web en mayo destaca entre otras razones porque el producto de Google es la única opción de entre los primeros cinco navegadores, que ha perdido peso en el mercado. Este hecho contrasta con el constante crecimiento que Chrome había experimentado en los cuatro años que siguieron a su lanzamiento inicial.

Microsoft con Internet Explorer es junto a la Fundación Mozilla con Firefox, las opciones con mejor ratio de crecimiento en el último mes. Especialmente intenso parece el trabajo que desde el equipo de Firefox se está llevando a cabo con la intención de recuperar la posición perdida en los últimos tiempos. En este sentido destaca que el equipo de desarrollo de la Fundación Mozilla está trabajando gracias al proyecto Australis en el mayor rediseño de su navegador de los últimos tiempos que además sirva de base para futuros lanzamientos.

Alternativas más discretas en el mercado de escritorio como Safari y Opera también mejoran sus números en mayo aunque todavía muy lejos de IE, Chrome y Firefox.

No obstante lo anterior aunque entre los navegadores móviles, Safari continúa liderando por un amplio margen,  destaca que el navegador de Chrome crece más rápido que la segunda opción más importante de este mercado, el navegador de Android.

Google ha estado “apretando” a la versión móvil de Chrome  para mejorar su posición en los dispositivos con Android pre-instalado. Eso ha dado lugar a un movimiento ascendente constante de la cuota de mercado, con un importante crecimiento en el último mes y que puede suponer a futuro la llegada de una nueva alternativa cpaz de competir con Safari.

Ranking de Navegadores de Escritorio:

1.    Microsoft Internet Explorer: 55.99%
2.    Firefox: 20.63%
3.    Chrome: 15.74%
4.    Safari: 5.46%
5.    Opera: 1.77%

Ranking de Navegadores Móviles:

1.    Safari: 59.98%
2.    Android: 20.73%
3.    Opera Mini: 10.53%
4.    Chrome: 3.2%
5.    Internet Explorer: 1.97%

Ranking por Versiones en Navegadores de Escritorio:

1.    Internet Explorer 8: 22.99%
2.    Internet Explorer 9: 15.39%
3.    Firefox 20: 10.38%
4.    Chrome 26: 9.85%
5.    Internet Explorer 10: 9.262%
6.    Internet Explorer 6: 9.26%
7.    Firefox 21: 4.66%
8.    Chrome 27: 3.66
9.    Safari 6: 3.18%
10.   Internet Explorer 7: 1.78%
Share:

Formulario MDI Child C# en Visual Studio 2012

Los Formularios MDI son aquellos que nos permiten contener otros formularios dentro de ellos. A continuación vamos a trabajar un ejemplo en C# Visual Studio 2012, que cual tendrá un formulario principal - MDIParent , a éste se le debe establecer la propiedad IsMdiContainer en "true".


Luego nos creamos nuestro formulario Mdi, que para este ejercicio se llama Form1 - MdiChildren.




Para llamar nuestro formulario MdiChildren una sola vez, desde el formulario principal, podemos crear el siguiente método y llamarlo en el evento Click del menú, así:
private void CallFormMdi()
    {
        bool encontrado = false;
            foreach (Form form in this.MdiChildren)
            {
                if (form.Name.Equals("Form1"))
                {
                    encontrado = true;
                    form.Activate();
                }
            }

            if (!encontrado)
            {
                Form1 _frmGenerarArchivo = new Form1();
                _frmGenerarArchivo.MdiParent = this;
                _frmGenerarArchivo.Show();
            }
    }
 
private void OpenForm(object sender, EventArgs e)
{
 CallFormMdi();
}
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Parte II: Solo Letras C# - Windows Forms (Consola)

Por solicitud de algunas personas, donde necesitan realizar la validación de solo letras en C# no en un control Textbox sino que exista un método o función que reciba el parámetro del texto y retorne como resultado si los caracteres son o no letras. A continuación dejo para ustedes, código ejemplo completo realizado en Visual Studio.Net C# con un proyecto de tipo consola.


using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleSoloLetras
{
    class Program
    {
        static void Main(string[] args)
        {
            string sCaracteres = string.Empty;

            //Solicitar el dato
            Console.WriteLine("Escriba un texto a validar");
            sCaracteres = Console.ReadLine();

            //Llamar metodo que evalua los caracteres
            if (IsLetters(sCaracteres))
            {
                Console.WriteLine("Los caracteres son letras.");
            }
            else
            {
                Console.WriteLine("Solo se aceptan letras");
            }
            Console.ReadLine();
        }

        //Metodo que permite identificar si los caracteres son letras o no
        static bool IsLetters(string sCaracteres)
        {
            foreach (char ch in sCaracteres)
            {
                if (!Char.IsLetter(ch) && ch != 32)
                {
                    return false;
                }
            }
            return true;
        }
    }
}
Si tienen dudas o le fue de ayuda este ejemplo, por favor nos leemos en los comentarios, hasta pronto.
Share:

Función IsNumeric .Net C#

La funcion IsNumeric en C# nos permite evaluar si una expresión es numérica o no, esto lo podemos lograr a través del siguiente ejemplo:

public bool IsNumeric(object Expression)
{
      bool isNum;
      double retNum;

      isNum = Double.TryParse(Convert.ToString(Expression), 
System.Globalization.NumberStyles.Any,
System.Globalization.NumberFormatInfo.InvariantInfo, out  retNum);
return isNum;
}
Share:

Adicionar assembly que no existe - The type 'Global' is defined in an assembly that is not referenced


Compilation Error 

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0012: The type 'Global' is defined in an assembly that is not referenced. You must add a reference to assembly 'App_Code.77wcm7ag, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

Source Error:

Line 83:     }
Line 84:     
Line 85:     protected ASP.global_asax ApplicationInstance {
Line 86:         get {
Line 87:             return ((ASP.global_asax)(this.Context.ApplicationInstance));

Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\transaccional\e224545b\e01314f1\App_Web_movilidad.aspx.701f4c92.xzfw98jm.0.cs    Line: 85


Solución

Como nos damos cuenta, el error radica que el sitio hace referencia archivos temporales que se crean cuando se consume el mismo.
Para solucionarlo debemos reiniciar o detener el IIS y luego limpiar los archivos temporales que se encuentran en la ruta.

Me cuentan como les fue, hasta pronto.

Share:

Windows 7: Comando para abrir ODBC 64 bits

Abrir un Origen de datos ODBC para Windows 7 en Sistemas Operativos (SO) de 64 bitsregularmente lo buscamos en Inicio > Panel de Control > Herramientas Administrativas > Opciones de Base de Datos (ODBC). Si lo hacemos de esta forma, estamos accediendo al ODBC de 32 bits en SO de 64 bits, la forma correcta de hacerlo es a través del siguiente comando DOS:

* Utilizando la ventana de Comando DOS (cmd.exe) escribimos:

SystemRoot%\SysWow64\odbcad32.exe

ODBC 64 bits Windows 7

ó

ODBC Windows 7 SO 64 bits

Una vez realizado lo anterior, sugiero cambiar el acceso directo del Orígen de datos ODBC, del 
"Panel de control\Herramientas administrativas”, por la nueva ruta así:


Si tienen alguna duda o ampliar la información me cuentan, hasta pronto.
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

c#: Duplicate items are not supported by the "Resources" parameter

Hoy les presento un error que le sucedió a un amigo (Pedro) a la hora de obtener una copia del diseño y código de un formulario de un proyecto en Visual Studio .Net. Para esto, lo que realizo fue copiar el formulario original y realizarle una copia. Cuando intento abrir la copia del formulario le genero el siguiente error:

"Error 1 The item "obj\Debug\My_Project.NewConsumable.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter. My Project"

Solución:

1. Cerrar el Visual Studio.
2. Ir a la carpeta del proyecto de Visual Studio.
3. Localizar el cs. y Designer.cs que acabo de realizarle copia.
4. Abrir ambos archivos.
5. Buscar y reemplazar las instancias del nombre del formulario original con el nombre del nuevo formulario. Tener presente mantener las convenciones de nombres.
6. Guardar ambos archivos, cerrar el editor.
7. Ir a Visual Studio y abrir el proyecto recién corregido y listo.
Cualquier sugerencia o duda nos leemos en los comentarios.

Hasta pronto.
Share:

Visual Studio .Net: resx Invalido

Para restaurar en Visual Studio .Net un archivo resx invalido debemos seguir los siguientes pasos:

1. Eliminar del explorador de proyecto el archivo resx invalido asociado al formulario que presenta problemas.
2. Haga doble clic para abrir el diseñador del formulario.
3. En el formulario, realizar cualquier cambio por ejemplo: mover un botón, caja de texto o control de posición. 
4. Listo!!! Visual Studio generar automáticamente un nuevo archivo resx.

Espero que los pasos anteriores los pueda ayudar. Si tienen dudas o sugerencias del post, los puedes realizar en los comentarios hasta pronto.
Share:

SQL Integration Services - SSIS: Contenedor de bucles Foreach

El contenedor de bucles Foreach define un flujo de control que se repite en un paquete. Este es un componente definido en el SSIS (SQL Server Integration Services). La ejecución del bucle en el contendor For Each es similar al bucle Foreach de varios lenguajes de programación conocidos.

Existen diferentes tipos de enumeradores disponibles que son:

* Enumerador de archivos para Foreach
El enumerador de archivos enumera los archivos en una carpeta. Por ejemplo, podemos obtener todos los archivos que tienen la extensión *. Txt en una carpeta de Windows y sus subcarpetas.

* Enumerador ADO para Foreach
Permite enumerar las filas de una tabla. Por ejemplo, podemos obtener las filas de los registros ADO.

* Enumerador de conjunto de filas del esquema Foreach de ADO.Net
El enumerador ADO.Net enumera la información del esquema. Por ejemplo, podemos obtener la una lista de tablas de la base de datos.

* Enumerador de elementos para Foreach
Utilizado para enumerar elementos que son colecciones. Por ejemplo, podemos enumerar los nombres de los ejecutables y directorios de trabajo que utiliza una tarea Ejecutar proceso.

* Enumerador de lista de nodos para Foreach
La lista de nodos que permite Enumera el resultado de una expresión XPath.

* Enumerador de variable para Foreach
El enumerador de variable enumera los objetos que contienen variables especificadas. Aquí los objetos enumerador no son más que una matriz o tabla de datos, como por ejemplo un DataSet de ADO.Net

* Enumerador de SMO para Foreach
El enumerador de SMO enumera los objetos de administración de SQL Server (SMO). Por ejemplo, se puede obtener la lista de funciones o vistas de una base de datos SQL Server.

Para este ejemplo utilizaremos el enumerador de archivos Foreach, vamos a copiar los archivos que se encuentran en una carpeta Origen (C:\Origen) a una carpeta Destino (D:\Destino).

Business Intelligence ProjectsPrimero abrimos el Visual Studio y creamos un proyecto Business Intelligence - Integración de
servicios como lo muestra la siguiente imagen.


Después de crear el proyecto de integración de servicios cambiamos el nombre por defecto de la Dtsx package1, para este ejemplo podemos poner ExampleForeach.

Solution Explorer

Seguidamente empezamos agregando una variable a nuestro paquete ExampleForeach, damos clic derecho sobre el modo de diseño y en el menú damos clic sobre Variables.


Luego nos aparece una ventana que nos permite Agregar la variable.



Aquí añadimos como nombre de variable File, tipo de datos String y value o valor default.



Ya configurada nuestra variable, procedemos arrastrar el contenedor de bucles ForEach que se encuentra en la caja de herramientas al formulario.

Quedando el contenedor bucle Foreach en modo diseño de la siguiente forma:


Para configurar nuestro control seguiremos los siguientes pasos:

1. Dar doble clic en el cuadro contenedor de bucle o clic derecho Edit
2. Luego se muestra una ventana para editar el bucle Foreach.
3. En esta ventana en el menu Collection seleccionamos en tipo enumerador, Enumerador de archivos.
4. Establecemos la carpeta Origen en la sección configuración de Enumeración. Para este ejemplo he dejado la ruta D:\Docs 
5. Si lo deseamos, marcamos la casilla de verificación Traverse Subcarpetas.

Si seguimos los pasos anteriores tendremos una configuración como lo muestra la siguiente imagen:


En la misma ventana, seleccionamos del menú izquierdo la opción Variable Mappings aquí seleccionamos la variable que habiamos creado.
Finalmente damos clic en Aceptar. 
En este punto ya tenemos configurado nuestro contenedor de bucles ForEach. Ahora agregamos un control File System Task a nuestro contenedor de bucles Foreach, debe quedar como se muestra en la imagen.

Foreach Loop Container

Para configurar seguimos los siguientes pasos:

1. Dar doble clic en el cuadro File System Task o clic derecho Edit.
2. En la ventana establecer IsDestinationPathVariable en False.
3. Configuramos la conexión destino, en la propiedad DestinationConnection
4. Seleccionamos la opción de nueva conexión.


5. En la ventana que aparece seleccionamos "Carpeta existente" o Existing folder.
6. Seguidamente, seleccionamos la carpeta de destino mediante "Examinar". Para este ejemplo seleccionamos D:\Destino

Dar clic en Ok para continuar la configuración.

7. Luego Seleccionamos la Operación, para este caso es Copiar archivos o Copy file.
8. Cambiamos a True la propiedad IsSourcePathVariable y seleccionamos la opción SourceVariable User::File

Quedando la parametrización para nuestro control de la siguente forma:


En la ventana damos clic en Ok. Ejecutamos nuestro proyecto (F5) y si todo nos sale bien debemos ver una imagen como la siguiente, además de verificar si los archivos fueron copiados de acuerdo a las rutas configuradas como Origen y Destino.


"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""

Share:

Crear Setup o Instalador en Visual Studio .NET 2010

Este post nos permite mostrar paso a paso como se configura un Setup o instalador en Visual Studio .Net 2010.
Para este ejemplo realice un pequeño proyecto con un formulario que nos da la bienvenida así:


Luego de crear la aplicación, agregamos un nuevo proyecto Setup, para esto damos clic derecho sobre la solución y seleccionamos la opción Agregar - Nuevo proyecto, luego nos aparece una ventana como lo muestra la siguiente imagen:














En esta ventana nos ubicamos en el árbol de la izquierda, ingresamos a Otro tipo de proyecto (Other Project Types)  - Instalación e Implementación (Setup and Deployment) y luego seleccionamos Visual studio Installer. En la ventana de la derecha seleccionamos Setup Project, digitamos el nombre del proyecto para este caso SetupEjemplo y clic en el botón OK. Finalmente nos aparece el proyecto agregado a la solución como se ve en la siguiente imagen:


Para asociar nuestra aplicación al Setup, damos clic derecho sobre Application Folder - Add - Project Outout.. o proyecto de salida, como lo muestra la siguiente imagen:


Seguidamente nos aparece esta ventana donde debemos seleccionar Primary output (contiene la Dll o Exe del proyecto) y damos clic sobre el botón OK.

Seleccionar Ejecutable

La siguiente ventana nos indica que hemos asociado correctamente el Setup con nuestra aplicación. Esto lo podemos ver en el Explorador de soluciones en nuestro proyecto de instalación.


Al dar clic sobre el proyecto Setup nos aparecen las propiedades del mismo, aquí podemos configurar el Autor, descripción, nombre del producto, versión, entre otras propiedades.










Si nuestra aplicación, previamente necesita de algún producto Framework, Crystal Reports o Sql Server, se encuentre instalado, lo podemos hacer de la siguiente manera. Damos clic derecho sobre el Setup - Propiedades así:


Nos muestra una ventana de propiedades del Setup. En ésta, existe un botón llamado prerrequisitos o Prerequisites... damos clic en él. Luego nos aparece una ventana que nos permite marcar aquellos componentes que nuestra aplicación necesita para una correcta ejecución.


Luego de lo anterior, tenemos prácticamente configurado nuestro Setup, solo resta configurar un acceso directo de nuestro instalador, ya se en en el escritorio o en Inicio - Todos los programas, lo podemos hacer de la siguiente forma:

* Estando en el instalador, en la parte izquierda aparece una carpeta llamada User's Desktop, aquí damos clic derecho, luego en el submenú seleccionadmos Add - Project Output.. y finalmente en la ventana que aparece seleccionamos Primary output y clic en Aceptar.

En la explicación anterior nuestro acceso directo queda en el escritorio de nuestro PC. Si queremos ponerlo en Inicio - Todos los programas seleccionamos la carpeta User's Programs Menú y seguimos los pasos anteriores.

Finalmente para generar nuestro Setup, solo basta con ubicarnos en el proyecto y compilamos:

Compilar Setup
"" Si tienes dudas o quieras ampliar este artículo, lo puedes hacer dejando tus comentarios. Además, si lo consideras interesante puedes compartirlo con amigos y seguidores a través de los botones sociales que aparecen en esta página.""


Share:

Más de 1000 visitas al Mes en DevCate Programación .Net

El día de hoy me llena de alegría de saber que hemos alcanzado más 1000 visitas al mes en el blog, aunque sé, que debo seguir trabajando para mejorar y crear buen contenido, me deja tranquila que las cosas se están haciendo de la mejor manera, a todos muchas gracias por su apoyo y comentarios, esperen pronto nuevos post, que permita aportar y resolver inquietudes en este mundo mágico de la Programación de software, no quiero despedirme sin antes enviarles un fuerte abrazo desde su Blog DevCate Programación .Net.

Panel de Visitas - clic para ampliar la imagen.

Share: