USE leaseoper
GO
SELECT * FROM leaseoper..t_correccion_estado_pago
/* Para evitar posibles problemas de pérdida de datos, debe revisar este script detalladamente antes de ejecutarlo fuera del contexto del diseñador de base de datos.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_t_correccion_estado_pago
(
periodo int NOT NULL,
fecha_proceso smalldatetime NOT NULL,
operacion numeric(20, 0) NOT NULL,
origen_docto tinyint NULL, --CAMPO NUEVO
id_documento int NOT NULL,
fecha_compra smalldatetime NULL,
factor_rev float(53) NOT NULL,
monto_total_documento float(53) NOT NULL,
mto_reval_ejercicio float(53) NULL,
mto_reval_total float(53) NULL,
fecha_ingreso datetime NULL,
estado tinyint NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_t_correccion_estado_pago SET (LOCK_ESCALATION = TABLE)
GO
GRANT DELETE ON dbo.Tmp_t_correccion_estado_pago TO Usuarios AS dbo
GO
GRANT INSERT ON dbo.Tmp_t_correccion_estado_pago TO Usuarios AS dbo
GO
GRANT SELECT ON dbo.Tmp_t_correccion_estado_pago TO Usuarios AS dbo
GO
GRANT UPDATE ON dbo.Tmp_t_correccion_estado_pago TO Usuarios AS dbo
GO
IF EXISTS(SELECT * FROM dbo.t_correccion_estado_pago)
EXEC('INSERT INTO dbo.Tmp_t_correccion_estado_pago (periodo, fecha_proceso, operacion, id_documento, fecha_compra, factor_rev, monto_total_documento, mto_reval_ejercicio, mto_reval_total, fecha_ingreso, estado)
SELECT periodo, fecha_proceso, operacion, id_documento, fecha_compra, factor_rev, monto_total_documento, mto_reval_ejercicio, mto_reval_total, fecha_ingreso, estado FROM dbo.t_correccion_estado_pago WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.t_correccion_estado_pago
GO
EXECUTE sp_rename N'dbo.Tmp_t_correccion_estado_pago', N't_correccion_estado_pago', 'OBJECT'
GO
ALTER TABLE dbo.t_correccion_estado_pago ADD CONSTRAINT
pk_t_correccion_estado_pago PRIMARY KEY CLUSTERED
(
periodo,
id_documento
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
COMMIT
--Compruebo el cambio
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[t_correccion_estado_pago]') AND type in (N'U'))
SELECT * FROM leaseoper..t_correccion_estado_pago
Mostrando entradas con la etiqueta tabla. Mostrar todas las entradas
Mostrando entradas con la etiqueta tabla. Mostrar todas las entradas
miércoles, 23 de agosto de 2017
jueves, 21 de enero de 2016
SQL - Tabla Type
*Para enviar un DataTable desde el APP a SQL y tratarlo directamente.
/****************************CREA TABLA TYPE******************************/
USE miBD
CREATE TYPE [dbo].CargaMITABLAValidaType AS TABLE(
[periodo] [int] NULL,
[tipo_registro] [int] NULL,
[fecha_proceso] [smalldatetime] NOT NULL
)
/**************************FIN CREA TABLA TYPE******************************/
/*************************SP QUE USA TABLA TYPE*************************/
/****** Object: StoredProcedure [dbo].[pa_lo_valida_edicion_c13] Script Date: 01/20/2016 18:39:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* =============================================
-- Author: JC
-- Create date: 20-01-2016
-- Description: Valida que los campos ingresados en informe
declare @cod_error INT
declare @desc_error varchar(500)
declare @miTabla CargaMITABLAValidaType
insert into @miTabla VALUES (201601,2,'20150102')
--select * FROM @miTabla
exec pa_lo_valida_edicion @miTabla , @cod_error OUTPUT, @desc_error OUTPUT
--select @cod_error, @desc_error
-- =============================================
*/
CREATE PROCEDURE [dbo].[pa_lo_valida_edicion]
@miTabla AS CargaMITABLAValidaType READONLY ,
@cod_error INT OUTPUT ,
@desc_error VARCHAR(500) OUTPUT
AS
BEGIN
--variables de recorido
DECLARE @periodo [int] ,
@tipo_registro [int] ,
@fecha_proceso [smalldatetime]
--tabla de validaciones
CREATE TABLE #validaciones
(
[periodo] [int] NOT NULL ,
[tipo_registro] [int] NOT NULL ,
[fecha_proceso] [smalldatetime] NOT NULL ,
)
--cursor de recorrido - VALIDACIONES
DECLARE c_valida CURSOR LOCAL
FOR
SELECT periodo ,
tipo_registro ,
fecha_proceso ,
FROM @miTabla
OPEN c_valida
FETCH c_valida INTO @periodo, @tipo_registro,@fecha_proceso
--
WHILE ( @@FETCH_STATUS = 0 )
BEGIN -- Inicio Ciclo
-- Seteo varaiables con valores OK
SELECT @cod_error = 0 ,
@desc_error = 'OK'
--Validaciones
IF ( @periodo <> '2016'
)
BEGIN
SELECT @cod_error = 1 ,
@desc_error = 'Mensaje de Error Aquí'
END
-- fin ciclo
INSERT INTO #validaciones
VALUES ( @periodo, @tipo_registro, @fecha_proceso,
@cod_error,
@desc_error )
FETCH c_valida INTO @periodo, @tipo_registro,
@fecha_proceso
END
CLOSE c_valida
DEALLOCATE c_valida
SELECT error,desc_error FROM #validaciones
END
GO
/*************************FIN SP QUE USA TABLA TYPE*************************/
/*************************DAC llamada desde .NET C#*************************/
public DataTable ValidaEdicionC13(DataTable dt)
{
Database db = DatabaseFactory.CreateDatabase("LeaseOper"); //enterprise library 5.0
var ds = new DataSet();
var retorno = false;
var dataTable = new DataTable();
try
{
using (var cnxx = new SqlConnection(db.ConnectionString))
{
SqlCommand cmd = new SqlCommand("pa_lo_valida_edicion", cnxx);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvparam = cmd.Parameters.AddWithValue("@miTabla", dt);
tvparam.SqlDbType = SqlDbType.Structured;
db.AddOutParameter(cmd, "@cod_error", DbType.Int32, int.MaxValue);
db.AddOutParameter(cmd, "@desc_error", DbType.String, int.MaxValue);
cmd.Connection.Open();
SqlDataAdapter theDataAdapter = new SqlDataAdapter(cmd);
//los rescato pero no los estoy usando
var codError = db.GetParameterValue(cmd, "@cod_error");
var desError = db.GetParameterValue(cmd, "@desc_error");
theDataAdapter.Fill(ds);
}
}
catch (Exception ex)
{
throw ex;
}
if (ds.Tables[0].Rows.Count > 0)
return ds.Tables[0];
return dataTable;
}
/*************************.CS llamada desde .NET C# con JQUERY*************************/
[WebMethod]
public static string GeneraCuponera(object rows, string idDoc)
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("operacion", typeof(decimal));
dt.Columns.Add("cod_material", typeof(int));
string json = new JavaScriptSerializer().Serialize(rows);
dynamic selectedRows = JsonConvert.DeserializeObject(json);
foreach (dynamic rowGrid in selectedRows)
{
DataRow rowDt = dt.NewRow();
rowDt["operacion"] = Convert.ToDecimal(rowGrid.operacion);
rowDt["cod_material"] = Convert.ToDecimal(rowGrid.cod_material);
dt.Rows.Add(rowDt);
}
var retorno = new BcCuponeras().GeneraCuponera(dt);
return JsonConvert.SerializeObject(retorno);
}
catch (Exception ex)
{
var err = JsonConvert.SerializeObject(ex.Message);
return err;
}
}
/****************************CREA TABLA TYPE******************************/
USE miBD
CREATE TYPE [dbo].CargaMITABLAValidaType AS TABLE(
[periodo] [int] NULL,
[tipo_registro] [int] NULL,
[fecha_proceso] [smalldatetime] NOT NULL
)
/**************************FIN CREA TABLA TYPE******************************/
/*************************SP QUE USA TABLA TYPE*************************/
/****** Object: StoredProcedure [dbo].[pa_lo_valida_edicion_c13] Script Date: 01/20/2016 18:39:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* =============================================
-- Author: JC
-- Create date: 20-01-2016
-- Description: Valida que los campos ingresados en informe
declare @cod_error INT
declare @desc_error varchar(500)
declare @miTabla CargaMITABLAValidaType
insert into @miTabla VALUES (201601,2,'20150102')
--select * FROM @miTabla
exec pa_lo_valida_edicion @miTabla , @cod_error OUTPUT, @desc_error OUTPUT
--select @cod_error, @desc_error
-- =============================================
*/
CREATE PROCEDURE [dbo].[pa_lo_valida_edicion]
@miTabla AS CargaMITABLAValidaType READONLY ,
@cod_error INT OUTPUT ,
@desc_error VARCHAR(500) OUTPUT
AS
BEGIN
--variables de recorido
DECLARE @periodo [int] ,
@tipo_registro [int] ,
@fecha_proceso [smalldatetime]
--tabla de validaciones
CREATE TABLE #validaciones
(
[periodo] [int] NOT NULL ,
[tipo_registro] [int] NOT NULL ,
[fecha_proceso] [smalldatetime] NOT NULL ,
)
--cursor de recorrido - VALIDACIONES
DECLARE c_valida CURSOR LOCAL
FOR
SELECT periodo ,
tipo_registro ,
fecha_proceso ,
FROM @miTabla
OPEN c_valida
FETCH c_valida INTO @periodo, @tipo_registro,@fecha_proceso
--
WHILE ( @@FETCH_STATUS = 0 )
BEGIN -- Inicio Ciclo
-- Seteo varaiables con valores OK
SELECT @cod_error = 0 ,
@desc_error = 'OK'
--Validaciones
IF ( @periodo <> '2016'
)
BEGIN
SELECT @cod_error = 1 ,
@desc_error = 'Mensaje de Error Aquí'
END
-- fin ciclo
INSERT INTO #validaciones
VALUES ( @periodo, @tipo_registro, @fecha_proceso,
@cod_error,
@desc_error )
FETCH c_valida INTO @periodo, @tipo_registro,
@fecha_proceso
END
CLOSE c_valida
DEALLOCATE c_valida
SELECT error,desc_error FROM #validaciones
END
GO
/*************************FIN SP QUE USA TABLA TYPE*************************/
/*************************DAC llamada desde .NET C#*************************/
{
Database db = DatabaseFactory.CreateDatabase("LeaseOper"); //enterprise library 5.0
var ds = new DataSet();
var retorno = false;
var dataTable = new DataTable();
try
{
using (var cnxx = new SqlConnection(db.ConnectionString))
{
SqlCommand cmd = new SqlCommand("pa_lo_valida_edicion", cnxx);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvparam = cmd.Parameters.AddWithValue("@miTabla", dt);
tvparam.SqlDbType = SqlDbType.Structured;
db.AddOutParameter(cmd, "@cod_error", DbType.Int32, int.MaxValue);
db.AddOutParameter(cmd, "@desc_error", DbType.String, int.MaxValue);
cmd.Connection.Open();
SqlDataAdapter theDataAdapter = new SqlDataAdapter(cmd);
//los rescato pero no los estoy usando
var codError = db.GetParameterValue(cmd, "@cod_error");
var desError = db.GetParameterValue(cmd, "@desc_error");
theDataAdapter.Fill(ds);
}
}
catch (Exception ex)
{
throw ex;
}
if (ds.Tables[0].Rows.Count > 0)
return ds.Tables[0];
return dataTable;
}
/*************************.CS llamada desde .NET C# con JQUERY*************************/
[WebMethod]
public static string GeneraCuponera(object rows, string idDoc)
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("operacion", typeof(decimal));
dt.Columns.Add("cod_material", typeof(int));
string json = new JavaScriptSerializer().Serialize(rows);
dynamic selectedRows = JsonConvert.DeserializeObject(json);
foreach (dynamic rowGrid in selectedRows)
{
DataRow rowDt = dt.NewRow();
rowDt["operacion"] = Convert.ToDecimal(rowGrid.operacion);
rowDt["cod_material"] = Convert.ToDecimal(rowGrid.cod_material);
dt.Rows.Add(rowDt);
}
var retorno = new BcCuponeras().GeneraCuponera(dt);
return JsonConvert.SerializeObject(retorno);
}
catch (Exception ex)
{
var err = JsonConvert.SerializeObject(ex.Message);
return err;
}
}
Etiquetas:
.net,
acceso a datos,
c sharp,
c#,
sql server,
tabla,
tabla tipo,
tabla type,
tipo,
type
Suscribirse a:
Entradas (Atom)