ayuda de memoria
Publicado por Pablo Palacios (31 intervenciones) el 16/03/2009 23:27:47
Hola mi nombre es Pablo soy de Chile y estoy muy desactualizado con SQL lo estudié en la Universidad y ya ha pasado mucho tiempo además nunca lo utilicé ya que me dedique a otra área… ahora estoy en problemas ya que no recuerdo bien las instrucciones he puesto un procedimiento donde explico -según yo- lo que entiendo de cada instrucción lo hago con ...(bla bla) ó ...(?) si no entendí nada
por favor solo díganme si estoy errado en lo que he puesto. Para mí basta con un si o no bueno y si pueden me tiran alguna ayudita mejor, el problema es que no tengo mucho tiempo para estudiar debo aplicar now...de ante mano muchas gracias...
set ANSI_NULLS ON ...(?)
set QUOTED_IDENTIFIER ON...(?)
go ...(?)
ALTER PROCEDURE [dbo].[CARGA_DATOS_VF_CHILE] ...(Nombre del procedimiento)
(
@NOMINA CHAR(25) ...(Variable externa caracter pasada por parámetro de largo 25...?)
)
AS ...(?)
SET NOCOUNT ON ...(?)
DECLARE @N_COBRANZA INT ...(Declaración de variable local)
DECLARE @N_CARGA INT ...(Declaración de variable local)
DECLARE @RUT_CLIENTE INT ...(Declaración de variable local)
DECLARE @DV_CLIENTE CHAR(1) ...(Declaración de variable local)
DECLARE @RUT_CLIENTE2 INT ...(Declaración de variable local)
DECLARE @DV_CLIENTE2 CHAR(1) ...(Declaración de variable local)
DECLARE @CLIENTE_2_RS CHAR(60) ...(Declaración de variable local)
DECLARE @RUT_DEUDOR INT ...(Declaración de variable local)
DECLARE @DV_DEUDOR CHAR(1) ...(Declaración de variable local)
DECLARE @NOMBRE_DEUDOR CHAR(80) ...(Declaración de variable local)
DECLARE @DIRECCION_DEUDOR CHAR(50) ...(Declaración de variable local)
DECLARE @COMUNA_DEUDOR CHAR(30) ...(Declaración de variable local)
DECLARE @CIUDAD_DEUDOR CHAR(30) ...(Declaración de variable local)
DECLARE @FONO_DEUDOR CHAR(10) ...(Declaración de variable local)
DECLARE @TIPO_DOCUMENTO CHAR(4) ...(Declaración de variable local)
DECLARE @NUM_DOCUMENTO INT ...(Declaración de variable local)
DECLARE @MOTIVO CHAR(4) ...(Declaración de variable local)
DECLARE @FECHA_RECEPCION CHAR(10) ...(Declaración de variable local)
DECLARE @MONTO_DOCUMENTO MONEY ...(Declaración de variable local)
DECLARE @TIPO_MONEDA CHAR(4) ...(Declaración de variable local)
DECLARE @FECHA_DOCUMENTO CHAR(10) ...(Declaración de variable local)
DECLARE @BANCO INT ...(Declaración de variable local)
DECLARE @CTA_CTE CHAR(20) ...(Declaración de variable local)
DECLARE @FECHA_PROTESTO CHAR(10) ...(Declaración de variable local)
DECLARE @RUT_DEUDOR_LAST INT ...(Declaración de variable local)
DECLARE @VER BIT ...(Declaración de variable local)
DECLARE @VER2 BIT ...(Declaración de variable local)
DECLARE @VER22 INT ...(Declaración de variable local)
DECLARE @RUT_ACRREDOR2_LAST INT ...(Declaración de variable local)
DECLARE @ARCHIVO_CARGA CHAR(25) ...(Declaración de variable local)
DECLARE X_CURSOR CURSOR FOR ...(declaración de variable (x_cursor) para archivo ...?)
...(Aquí seleciona los campos del archivo SOINCO_REC y se relaciona o asiga con la variable o puntero X_Cursor ...? por eso se define cursor...?)
SELECT RUT_CLIENTE,DIG_CLIENTE,RUT_CLIENTE2,DIG_VER2,RAZ_SOC,RUT_DEUDOR,DIGDEUDOR,DIR_DEUDOR,RTRIM(LTRIM(NOM_DEUDOR)) + ' ' + RTRIM(LTRIM(APE_DEUDOR)),COMUNA_DEUDOR,CIUDAD_DEUDOR,SUBSTRING(RTRIM(LTRIM(FON_DEUDOR)),1,10),
TIP_DOCUME,NUM_DOCUME,DESC_CORTA,FEC_RECEPC,CAST(VAL_DOCUME AS MONEY) AS VAL_DOCUME,COD_MONEDA,FEC_DOCUME,COD_BANCO,NUM_CTACTE,FEC_PRO,NUM_FORM
FROM SOINCO_REC WHERE NUM_FORM = @NOMINA ORDER BY RUT_CLIENTE2,RUT_DEUDOR ASC
OPEN X_CURSOR ...(Apertura del archivo seleccionado)
FETCH NEXT FROM X_CURSOR ...(?)
...(Insertar los datos en el mismo orden según archivo seleccionado ...? lo voy a llamar "XX" para una pregunta posterior...)
INTO @RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@NOMBRE_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,@FECHA_RECEPCION,@MONTO_DOCUMENTO,@TIPO_MONEDA,@FECHA_DOCUMENTO,@BANCO,@CTA_CTE,@FECHA_PROTESTO,@ARCHIVO_CARGA
SELECT @N_CARGA=NUMERO_CARGA FROM _NUM_COBRANZA ...(?)
SELECT @N_COBRANZA=NUMERO FROM _NUM_COBRANZA ...(?)
SET @N_COBRANZA=@N_COBRANZA - 1 ...(modifica la variable @N_COBRANZA en -1 ...?)
SET @RUT_DEUDOR_LAST=0 ...(deja la variable @RUT_DEUDOR_LAST en 0 ...?)
WHILE @@FETCH_STATUS = 0 ...(Comienzo de bucle con variable @@FETCH_STATUS = 0 que segun creo es ponerla en el principio del archivo... como un "not eoF")
BEGIN
IF @RUT_DEUDOR<>@RUT_DEUDOR_LAST
BEGIN
UPDATE _NUM_COBRANZA SET NUMERO=@N_COBRANZA + 1 ...(actualizo _NUM_COBRANZA con el valor de NUMERO)
SELECT @N_COBRANZA=NUMERO FROM _NUM_COBRANZA ...(no entiendo la lógica)
...(Inserta un registro en el archivo _DOCUMENTOS con los valores de las variables cuyos valores ya han sido asignados anteriormente en "XX" )
INSERT INTO _DOCUMENTOS(NRO_COBRANZA,RUT_CLIENTE,DV_CLIENTE,RUT_CLIENTE2,DV_CLIENTE2,RUT_DEUDOR,DV_DEUDOR,DIRECCION,COMUNA,CIUDAD,
TELEFONO,TIP_DOCUME,NUM_DOCUME,MOTIVO,FECHA_RECEPCION,MONTO_DOCUMENTO,MONEDA,FECHA_DCMTO,BANCO,CUENTA_CORRIENTE,FECHA_PROTESTO,ESTADO_COBRANZA,FECHA_ESTADO,ARCHIVO_CARGA)
VALUES(@N_COBRANZA,@RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,GETDATE(),@MONTO_DOCUMENTO,@TIPO_MONEDA,CONVERT(DATETIME,@FECHA_DOCUMENTO,105),@BANCO,@CTA_CTE,CONVERT(DATETIME,@FECHA_PROTESTO,105),'VIGSC',GETDATE(),@ARCHIVO_CARGA)
...(llaman a un procedimiento que ya esta creado y le pasan parámetros...?)
EXECUTE sp_INSERTA_DEUDOR_APP @RUT_DEUDOR,@DV_DEUDOR,@NOMBRE_DEUDOR,@FONO_DEUDOR,'','','','',@VER2
EXECUTE PROC_GRABA_DATOS_DEUDOR_APP @N_COBRANZA,@RUT_DEUDOR,@DIRECCION_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,'','',1,'',@VER
END
ELSE
BEGIN
...(si no existe el cliente lo inserta en la tabla de clientes2)
IF NOT EXISTS(SELECT RUT_CLIENTE FROM _CLIENTES2 WHERE RUT_CLIENTE=@RUT_CLIENTE2)
INSERT INTO _CLIENTES2(RUT_CLIENTE,DIG_VER,RAZON_SOCIAL) VALUES (@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS)
END
SET @RUT_DEUDOR_LAST=@RUT_DEUDOR ...(asigna el valor de @RUT_DEUDOR a @RUT_DEUDOR_LAST son variables locales no de archivo...)
...(aquí no entiendo la lógica..)
FETCH NEXT FROM X_CURSOR
INTO @RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@NOMBRE_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,@FECHA_RECEPCION,@MONTO_DOCUMENTO,@TIPO_MONEDA,@FECHA_DOCUMENTO,@BANCO,@CTA_CTE,@FECHA_PROTESTO,@ARCHIVO_CARGA
END
UPDATE _NUM_COBRANZA SET NUMERO=@N_COBRANZA + 1 ...(Actualizo campo _NUM_COBRANZA de archivo SOINCO_REC)
CLOSE X_CURSOR ...(esto es como cerrar el archivo SOINCO_REC ?...)
DEALLOCATE X_CURSOR ...(libera la variable ??)
Muchas gracias por su tiempo...
por favor solo díganme si estoy errado en lo que he puesto. Para mí basta con un si o no bueno y si pueden me tiran alguna ayudita mejor, el problema es que no tengo mucho tiempo para estudiar debo aplicar now...de ante mano muchas gracias...
set ANSI_NULLS ON ...(?)
set QUOTED_IDENTIFIER ON...(?)
go ...(?)
ALTER PROCEDURE [dbo].[CARGA_DATOS_VF_CHILE] ...(Nombre del procedimiento)
(
@NOMINA CHAR(25) ...(Variable externa caracter pasada por parámetro de largo 25...?)
)
AS ...(?)
SET NOCOUNT ON ...(?)
DECLARE @N_COBRANZA INT ...(Declaración de variable local)
DECLARE @N_CARGA INT ...(Declaración de variable local)
DECLARE @RUT_CLIENTE INT ...(Declaración de variable local)
DECLARE @DV_CLIENTE CHAR(1) ...(Declaración de variable local)
DECLARE @RUT_CLIENTE2 INT ...(Declaración de variable local)
DECLARE @DV_CLIENTE2 CHAR(1) ...(Declaración de variable local)
DECLARE @CLIENTE_2_RS CHAR(60) ...(Declaración de variable local)
DECLARE @RUT_DEUDOR INT ...(Declaración de variable local)
DECLARE @DV_DEUDOR CHAR(1) ...(Declaración de variable local)
DECLARE @NOMBRE_DEUDOR CHAR(80) ...(Declaración de variable local)
DECLARE @DIRECCION_DEUDOR CHAR(50) ...(Declaración de variable local)
DECLARE @COMUNA_DEUDOR CHAR(30) ...(Declaración de variable local)
DECLARE @CIUDAD_DEUDOR CHAR(30) ...(Declaración de variable local)
DECLARE @FONO_DEUDOR CHAR(10) ...(Declaración de variable local)
DECLARE @TIPO_DOCUMENTO CHAR(4) ...(Declaración de variable local)
DECLARE @NUM_DOCUMENTO INT ...(Declaración de variable local)
DECLARE @MOTIVO CHAR(4) ...(Declaración de variable local)
DECLARE @FECHA_RECEPCION CHAR(10) ...(Declaración de variable local)
DECLARE @MONTO_DOCUMENTO MONEY ...(Declaración de variable local)
DECLARE @TIPO_MONEDA CHAR(4) ...(Declaración de variable local)
DECLARE @FECHA_DOCUMENTO CHAR(10) ...(Declaración de variable local)
DECLARE @BANCO INT ...(Declaración de variable local)
DECLARE @CTA_CTE CHAR(20) ...(Declaración de variable local)
DECLARE @FECHA_PROTESTO CHAR(10) ...(Declaración de variable local)
DECLARE @RUT_DEUDOR_LAST INT ...(Declaración de variable local)
DECLARE @VER BIT ...(Declaración de variable local)
DECLARE @VER2 BIT ...(Declaración de variable local)
DECLARE @VER22 INT ...(Declaración de variable local)
DECLARE @RUT_ACRREDOR2_LAST INT ...(Declaración de variable local)
DECLARE @ARCHIVO_CARGA CHAR(25) ...(Declaración de variable local)
DECLARE X_CURSOR CURSOR FOR ...(declaración de variable (x_cursor) para archivo ...?)
...(Aquí seleciona los campos del archivo SOINCO_REC y se relaciona o asiga con la variable o puntero X_Cursor ...? por eso se define cursor...?)
SELECT RUT_CLIENTE,DIG_CLIENTE,RUT_CLIENTE2,DIG_VER2,RAZ_SOC,RUT_DEUDOR,DIGDEUDOR,DIR_DEUDOR,RTRIM(LTRIM(NOM_DEUDOR)) + ' ' + RTRIM(LTRIM(APE_DEUDOR)),COMUNA_DEUDOR,CIUDAD_DEUDOR,SUBSTRING(RTRIM(LTRIM(FON_DEUDOR)),1,10),
TIP_DOCUME,NUM_DOCUME,DESC_CORTA,FEC_RECEPC,CAST(VAL_DOCUME AS MONEY) AS VAL_DOCUME,COD_MONEDA,FEC_DOCUME,COD_BANCO,NUM_CTACTE,FEC_PRO,NUM_FORM
FROM SOINCO_REC WHERE NUM_FORM = @NOMINA ORDER BY RUT_CLIENTE2,RUT_DEUDOR ASC
OPEN X_CURSOR ...(Apertura del archivo seleccionado)
FETCH NEXT FROM X_CURSOR ...(?)
...(Insertar los datos en el mismo orden según archivo seleccionado ...? lo voy a llamar "XX" para una pregunta posterior...)
INTO @RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@NOMBRE_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,@FECHA_RECEPCION,@MONTO_DOCUMENTO,@TIPO_MONEDA,@FECHA_DOCUMENTO,@BANCO,@CTA_CTE,@FECHA_PROTESTO,@ARCHIVO_CARGA
SELECT @N_CARGA=NUMERO_CARGA FROM _NUM_COBRANZA ...(?)
SELECT @N_COBRANZA=NUMERO FROM _NUM_COBRANZA ...(?)
SET @N_COBRANZA=@N_COBRANZA - 1 ...(modifica la variable @N_COBRANZA en -1 ...?)
SET @RUT_DEUDOR_LAST=0 ...(deja la variable @RUT_DEUDOR_LAST en 0 ...?)
WHILE @@FETCH_STATUS = 0 ...(Comienzo de bucle con variable @@FETCH_STATUS = 0 que segun creo es ponerla en el principio del archivo... como un "not eoF")
BEGIN
IF @RUT_DEUDOR<>@RUT_DEUDOR_LAST
BEGIN
UPDATE _NUM_COBRANZA SET NUMERO=@N_COBRANZA + 1 ...(actualizo _NUM_COBRANZA con el valor de NUMERO)
SELECT @N_COBRANZA=NUMERO FROM _NUM_COBRANZA ...(no entiendo la lógica)
...(Inserta un registro en el archivo _DOCUMENTOS con los valores de las variables cuyos valores ya han sido asignados anteriormente en "XX" )
INSERT INTO _DOCUMENTOS(NRO_COBRANZA,RUT_CLIENTE,DV_CLIENTE,RUT_CLIENTE2,DV_CLIENTE2,RUT_DEUDOR,DV_DEUDOR,DIRECCION,COMUNA,CIUDAD,
TELEFONO,TIP_DOCUME,NUM_DOCUME,MOTIVO,FECHA_RECEPCION,MONTO_DOCUMENTO,MONEDA,FECHA_DCMTO,BANCO,CUENTA_CORRIENTE,FECHA_PROTESTO,ESTADO_COBRANZA,FECHA_ESTADO,ARCHIVO_CARGA)
VALUES(@N_COBRANZA,@RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,GETDATE(),@MONTO_DOCUMENTO,@TIPO_MONEDA,CONVERT(DATETIME,@FECHA_DOCUMENTO,105),@BANCO,@CTA_CTE,CONVERT(DATETIME,@FECHA_PROTESTO,105),'VIGSC',GETDATE(),@ARCHIVO_CARGA)
...(llaman a un procedimiento que ya esta creado y le pasan parámetros...?)
EXECUTE sp_INSERTA_DEUDOR_APP @RUT_DEUDOR,@DV_DEUDOR,@NOMBRE_DEUDOR,@FONO_DEUDOR,'','','','',@VER2
EXECUTE PROC_GRABA_DATOS_DEUDOR_APP @N_COBRANZA,@RUT_DEUDOR,@DIRECCION_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,'','',1,'',@VER
END
ELSE
BEGIN
...(si no existe el cliente lo inserta en la tabla de clientes2)
IF NOT EXISTS(SELECT RUT_CLIENTE FROM _CLIENTES2 WHERE RUT_CLIENTE=@RUT_CLIENTE2)
INSERT INTO _CLIENTES2(RUT_CLIENTE,DIG_VER,RAZON_SOCIAL) VALUES (@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS)
END
SET @RUT_DEUDOR_LAST=@RUT_DEUDOR ...(asigna el valor de @RUT_DEUDOR a @RUT_DEUDOR_LAST son variables locales no de archivo...)
...(aquí no entiendo la lógica..)
FETCH NEXT FROM X_CURSOR
INTO @RUT_CLIENTE,@DV_CLIENTE,@RUT_CLIENTE2,@DV_CLIENTE2,@CLIENTE_2_RS,@RUT_DEUDOR,@DV_DEUDOR,@DIRECCION_DEUDOR,@NOMBRE_DEUDOR,@COMUNA_DEUDOR,@CIUDAD_DEUDOR,@FONO_DEUDOR,@TIPO_DOCUMENTO,
@NUM_DOCUMENTO,@MOTIVO,@FECHA_RECEPCION,@MONTO_DOCUMENTO,@TIPO_MONEDA,@FECHA_DOCUMENTO,@BANCO,@CTA_CTE,@FECHA_PROTESTO,@ARCHIVO_CARGA
END
UPDATE _NUM_COBRANZA SET NUMERO=@N_COBRANZA + 1 ...(Actualizo campo _NUM_COBRANZA de archivo SOINCO_REC)
CLOSE X_CURSOR ...(esto es como cerrar el archivo SOINCO_REC ?...)
DEALLOCATE X_CURSOR ...(libera la variable ??)
Muchas gracias por su tiempo...
Valora esta pregunta


0