lunes, 5 de octubre de 2015

C# - Atributos de una Clase echa a mano

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;      

namespace Test.Be.Garra
{
    public class Garae004Be
    {

        public string Usuario { get; set; }
        public int Terminal { get; set; }
        public Single Canal { get; set; }


    }
}

domingo, 27 de septiembre de 2015

SQL - Trigger Update

/*Tanto para INSERT y UPDATE la tabla usada en los TRIGGER es INSERTED. para los delete es DELETED*/
USE [Gestion]
GO
/****** Object:  Trigger [dbo].[upd_requerimientos]    Script Date: 27/09/2015 12:02:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Create Trigger (New Menu).SQL
  ALTER TRIGGER [dbo].[upd_requerimientos] ON [dbo].[REQUERIMIENTO]
 AFTER UPDATE
 AS
 BEGIN


  DECLARE @id_requerimiento INT
         ,@id_archivo INT

  SELECT @id_requerimiento = ID_REQUERIMIENTO
        ,@id_archivo = ID_ARCHIVO
  FROM inserted

  UPDATE Gestion..REL_REQUERIMIENTO_ARCHIVO
  SET ID_ARCHIVO = @id_archivo
  WHERE ID_REQUERIMIENTO = @id_requerimiento

 END




/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]



CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

SQL - Trigger Insert

USE [Gestion]
GO
/****** Object:  Trigger [dbo].[ins_requerimientos]    Script Date: 27/09/2015 11:56:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Create Trigger (New Menu).SQL
 ALTER TRIGGER [dbo].[ins_requerimientos]
  on [dbo].[REQUERIMIENTO]
  for  INSERT  --DECLARO QUE ES CUANDO OCURRA UNA INSERCION EN LA TABLA REQUERIMIENTOS
 as
 
  DECLARE @id_requerimiento INT
         ,@id_archivo INT
 
  SELECT @id_requerimiento = ID_REQUERIMIENTO --OBTENGO VALORES DE ENTRADA DESDE LA TABLA INSERTED
        ,@id_archivo = ID_ARCHIVO
  FROM inserted
 
  --Y LOS USO PARA INSERTAR SOBRE UNA SEGUNDA TABLA
  INSERT INTO Gestion..REL_REQUERIMIENTO_ARCHIVO
          ( ID_REQUERIMIENTO, ID_ARCHIVO )
  VALUES  ( @id_requerimiento, -- ID_REQUERIMIENTO - int
            @id_archivo  -- ID_ARCHIVO - int
            )    



/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]



CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
 CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

/************************************************************************/

lunes, 7 de septiembre de 2015

SQL - Saber últimas consultas hechas sobre BD y quién.

SELECT s.host_name ,
s.program_name ,
c.session_id ,
c.most_recent_session_id ,
c.connect_time ,
c.net_transport ,
c.protocol_type ,
c.protocol_version ,
c.endpoint_id ,
c.encrypt_option ,
c.auth_scheme ,
c.node_affinity ,
c.num_reads ,
c.num_writes ,
c.last_read ,
c.last_write ,
c.net_packet_size ,
c.client_net_address ,
c.client_tcp_port ,
c.local_net_address ,
c.local_tcp_port ,
c.connection_id ,
c.parent_connection_id ,
c.most_recent_sql_handle ,
s.session_id ,
s.login_time ,
s.host_name ,
s.program_name ,
s.host_process_id ,
s.client_version ,
s.client_interface_name ,
s.security_id ,
s.login_name ,
s.nt_domain ,
s.nt_user_name ,
s.status ,
s.context_info ,
s.cpu_time ,
s.memory_usage ,
s.total_scheduled_time ,
s.total_elapsed_time ,
s.endpoint_id ,
s.last_request_start_time ,
s.last_request_end_time ,
s.reads ,
s.writes ,
s.logical_reads ,
s.is_user_process ,
s.text_size ,
s.language ,
s.date_format ,
s.date_first ,
s.quoted_identifier ,
s.arithabort ,
s.ansi_null_dflt_on ,
s.ansi_defaults ,
s.ansi_warnings ,
s.ansi_padding ,
s.ansi_nulls ,
s.concat_null_yields_null ,
s.transaction_isolation_level ,
s.lock_timeout ,
s.deadlock_priority ,
s.row_count ,
s.prev_error ,
s.original_security_id ,
s.original_login_name ,
s.last_successful_logon ,
s.last_unsuccessful_logon ,
s.unsuccessful_logons ,
s.group_id ,
st.dbid ,
st.objectid ,
st.number ,
st.encrypted ,
st.text
FROM sys.dm_exec_connections c
INNER JOIN sys.dm_exec_sessions s ON c.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS st
ORDER BY c.session_id



SELECT deqs.last_execution_time AS [Time] ,
dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC

C# - Operador Condicional Ternario ( ? : )

IF clásico

IF(Valor != null)
   Valor = item.valor;
ELSE
  Valor = 0.0;


En reemplazo de un IF "Operador Condicional Ternario"

Valor = item.valor != null ? (float)item.valor: (float)0.0;












martes, 4 de agosto de 2015

C# - Solo números con control textbox asp y javascript

1.Crear un archivo Javascript (o dentro de las etiquetas correspondientes dentro de la misma página, no recomendado). en la estructura del sitio web.


2.Dentro del archivo crear la function (función para el ingreso de solo números).

 /*Función solo Números*/
function SoloNumeros(evt) {

    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        status = "Este campo solo acepta números!";
        return false;
    }
}

3. Indicar referencia en la página al archivo .js creado. (escribiéndolo, o arrastrándolo)





4. Agregar la function como atributo en el control requerido en evento Page_Init() de la página.





    protected void Page_Init(object sender, EventArgs e)
    {
        this.txtRut.Attributes.Add("OnKeyPress", "return SoloNumeros(event)");
    }






lunes, 13 de julio de 2015

C# - Editar control (combo) asp dentro de una grilla Devexpress

Se ubica el método:


  • miGrilla_HtmlEditFormCreated(object sender, ASPxGridViewEditFormEventArgs e)


de la grilla, en este método se pinta el formulario que se va a editar (campos de la grilla.) Aquí adentro puedo realizar validaciones  o manipulación de los controles. Por ejemplo:

  private void miGrilla_HtmlEditFormCreated(object sender, ASPxGridViewEditFormEventArgs e)
  {
 ASPxGridView control = (ASPxGridView) sender;
            int indice = gvValorSeguro.EditingRowVisibleIndex;

            if (!control.IsNewRowEditing)
            {  
                if (Convert.ToInt32(Session["valor"]) == 5) //ejemplo de alguna condición que se necesite
                {
//para el ejemplo se usa un combo asp normal, pero puede ser cualquier tipo de control.
                    DropDownList miCombo = (gvValorSeguro.FindEditFormTemplateControl("miCombo") as DropDownList);
                    if (miCombo != null)
                        miCombo.Enabled = true;
                }
           
            }
 }

martes, 7 de julio de 2015

SQL - Ver ejecuciones de un determinado JOB

use master
go
CREATE PROCEDURE [dbo].[sp_ViewJobListing]
(
    @JobName VARCHAR(255)=NULL
)

--exec master..sp_ViewJobListing 'Nombre de mi Job'
AS
BEGIN
    IF OBJECT_ID('tempdb..#Results')>0
        DROP TABLE #Results
    CREATE TABLE #Results
    (
        job_id UNIQUEIDENTIFIER NOT NULL,
        last_run_date INT              NOT NULL,
        last_run_time INT              NOT NULL,
        next_run_date INT              NOT NULL,
        next_run_time INT              NOT NULL,
        next_run_schedule_id INT              NOT NULL,
        requested_to_run INT              NOT NULL,
        request_source INT              NOT NULL,
        request_source_id SYSNAME   COLLATE DATABASE_DEFAULT NULL,
        running  INT              NOT NULL,
        current_step INT              NOT NULL,
        current_retry_attempt  INT              NOT NULL,
        job_state  INT              NOT NULL
    )
    DECLARE @JobID VARCHAR(100)
    SELECT TOP 1 @JobID = job_ID FROM msdb.dbo.sysjobs
    INSERT INTO #Results
    EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, @JobID
    SELECT
        s.Name,
        CASE WHEN s.enabled = 0 THEN 'No' ELSE 'Yes' END AS Enabled,
        CASE WHEN next_run_date > 0 THEN 'Yes' ELSE 'No' END AS Scheduled,
        sc.name AS Category,
        current_step AS CurrentExecutionStep,
        last_run_date,
        next_run_date,
        CASE WHEN xp.running = 0 THEN 'Not Running' ELSE 'Executing...' END AS Status,
        ISNULL((
            SELECT CASE WHEN run_status = 1 THEN 'Succeeded' WHEN run_status = 3 THEN 'Cancelled' WHEN run_status = 0 THEN 'Failed' WHEN run_status IS NULL THEN 'Unknown' END AS LastRunStatus
            FROM
                msdb..sysjobhistory sho
            WHERE
                sho.job_id = xp.job_id AND
                sho.instance_id =
                (
                    SELECT MAX(instance_id)
                    FROM msdb..sysjobhistory sj (NOLOCK)
                    WHERE sj.job_id = sho.job_id
                )
        ) ,'Unknown') AS LastRunStatus
    FROM     #Results xp
        INNER JOIN msdb..sysjobs s on xp.job_id = s.job_id
        INNER JOIN msdb..syscategories sc on s.category_id = sc.category_id
    WHERE
        s.Name = ISNULL(@JobName, s.Name)
    ORDER BY s.Name
    IF @JobName IS NOT NULL
    BEGIN
        CREATE TABLE #JobHistory
        (
            StepID INT,
            StepName SYSNAME,
            Message NVARCHAR(4000),
            RunStatus INT,
            RunDate INT,
            RunTime INT,
            RunDuration INT,
            operator_emailed NVARCHAR(100),
            operator_netsent NVARCHAR(100),
            operator_paged NVARCHAR(100)
        )
        INSERT INTO #JobHistory
        SELECT
            sjh.step_id,
            sjh.step_name,
            sjh.message,
            sjh.run_status,
            sjh.run_date,
            sjh.run_time,
            sjh.run_duration,
            operator_emailed = so1.name,
            operator_netsent = so2.name,
            operator_paged = so3.name
        FROM
            msdb.dbo.sysjobhistory sjh
            JOIN msdb.dbo.sysjobs sjj ON sjh.job_id = sjj.job_id
            LEFT OUTER JOIN msdb.dbo.sysoperators so1  ON (sjh.operator_id_emailed = so1.id)
            LEFT OUTER JOIN msdb.dbo.sysoperators so2  ON (sjh.operator_id_netsent = so2.id)
            LEFT OUTER JOIN msdb.dbo.sysoperators so3  ON (sjh.operator_id_paged = so3.id),
            msdb.dbo.sysjobs                 sj
        WHERE
        sjj.Name = @JobName and
        (sj.job_id = sjh.job_id)
        SELECT
            StepID, StepName, Message, RunDate AS LastRunTime,
            CASE RunStatus
                WHEN 0 THEN 'Failed'
                WHEN 1 THEN 'Succeeded'
                WHEN 2 THEN 'Retry (step only)'
                WHEN 3 THEN 'Canceled'
                WHEN 4 THEN 'In-progress message'
                WHEN 5 THEN 'Unknown'
            END AS RunStatus
        FROM #JobHistory
        ORDER BY LastRunTime DESC, StepID ASC
    END
END
GO
EXECUTE sp_ms_marksystemobject 'sp_ViewJobListing'

lunes, 6 de julio de 2015

SQL - Delay para la ejecución de una instrucción.

WAITFOR DELAY '02:00' --Dos Horas
WAITFOR DELAY '00:02' --Dos Minutos
WAITFOR DELAY '00:00:02' --Dos Segundos
WAITFOR DELAY '00:00:00.200' --Dos décimas de segundo


Ejemplo:

EXEC msdb.dbo.sp_start_job 'DTS_ParidadRC'
--espera la ejecución del JOB
WAITFOR DELAY '00:00:05'
       -- y luego de 5 segundos consulta
       SELECT * FROM t_paridades
   

     

Power Designer - Agregar Origen de Datos (Ej. SQL SERVER 2012)


Paso 1: Agregar un Origen de Datos.

Paso 2: Elegir Versión.
Paso 3: Rellenar campos.


Paso 4 : Agregar credenciales
Paso 5: Elegir BD predeterminada.

 Paso 6: Creación.
 Paso 7 : Ya estará creado el origen.

 Paso 8: En Power Designer.

Paso 9: Al hacer Ingeniería Inversa se selecciona la BD más alta que aparezca.


Paso 10: Elegir la BD

Paso 11: poner credenciales.

Paso 12: Ya se puede pasar la BD a Power Designer.