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.