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: