Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con sqlcode y sqlstate

Estas en el tema de Ayuda con sqlcode y sqlstate en el foro de SQL Server en Foros del Web. Hola a todos! Estoy aprendiendo a usar los store procedures de SQLServer 2000... estoy migrando unos SP de Oracle a SQLServer 2000, pero me tope ...
  #1 (permalink)  
Antiguo 16/12/2008, 13:07
 
Fecha de Ingreso: diciembre-2002
Ubicación: Puebla, Pue. Mex
Mensajes: 54
Antigüedad: 22 años
Puntos: 0
Ayuda con sqlcode y sqlstate

Hola a todos!

Estoy aprendiendo a usar los store procedures de SQLServer 2000... estoy migrando unos SP de Oracle a SQLServer 2000, pero me tope con el problema de SQLCODE ... me marca error y la verdad no tengo idea de porque... no se en donde se debe declarar como variables o que hay que hacer... pego el código de mi SP a ver si me pueden decr que es lo que me falta para que no me marque que no reconoce la variable...

CREATE PROCEDURE CARGAANEXO5I
@idfuncionario integer
AS

DECLARE @Descripcion VARCHAR(50);
DECLARE @Marca VARCHAR(20);
DECLARE @Color VARCHAR(20);
DECLARE @Matplaca VARCHAR(20);
DECLARE @Noserie VARCHAR(20);
DECLARE @Edofisico VARCHAR(20);
DECLARE @Nocheque VARCHAR(20);
DECLARE @Nofactura VARCHAR(15);
DECLARE @Proveedor VARCHAR(50);
DECLARE @Costo VARCHAR(20);
DECLARE @IME VARCHAR(35);
DECLARE @Observaciones VARCHAR(100);
DECLARE @DescripcionError VARCHAR(1);
DECLARE @RegACargar NUMERIC(6);
DECLARE @RegError NUMERIC(6);
DECLARE @nValor NUMERIC(22,2);


DECLARE Carga CURSOR FOR
SELECT
Descripcion,
Marca,
Color,
Matplaca,
Noserie,
Edofisico,
Nocheque,
Nofactura,
Proveedor,
Costo,
IME,
Observaciones
FROM PasoAnexo5I
WHERE IdFuncionario = @IdFuncionario;

Begin

UPDATE ANEXO5I
SET UltimaCarga = 0
WHERE UltimaCarga = 1 AND IdFuncionario = @IdFuncionario;

SET @RegACargar = 0;
SET @RegError = 0;

DELETE FROM ErrAnexo5I
WHERE IdFuncionario = @IdFuncionario;

OPEN Carga;
FETCH Next From Carga INTO
@Descripcion,
@Marca,
@Color,
@Matplaca,
@Noserie,
@Edofisico,
@Nocheque,
@Nofactura,
@Proveedor,
@Costo,
@IME,
@Observaciones;

WHILE @@FETCH_STATUS = 0
BEGIN
set @RegACargar = @RegACargar + 1
IF LTRIM(@Costo) IS NULL
begin
set @Costo = '0';
END
SET @Costo = REPLACE(@Costo, ',', '');
SET @Costo = REPLACE(@Costo, '$', ' ');

IF (ISNUMERIC(@Costo)=1)
begin
-- nValor := CAST(Valor AS NUMERIC);
-- Valor := SUBSTR(LTRIM(CAST(nValor AS VARCHAR2)), 1, 20);
INSERT INTO Anexo5I
(IdFuncionario ,
Descripcion ,
Marca ,
Color ,
Matplaca ,
Noserie ,
Edofisico ,
Nocheque ,
Nofactura ,
Proveedor ,
Costo ,
IME ,
Observaciones ,
UltimaCarga)
VALUES
( @IdFuncionario ,
LTRIM(RTRIM(@Descripcion)) ,
LTRIM(RTRIM(@Marca)) ,
LTRIM(RTRIM(@Color)) ,
LTRIM(RTRIM(@Matplaca)) ,
LTRIM(RTRIM(@Noserie)) ,
LTRIM(RTRIM(@Edofisico)) ,
LTRIM(RTRIM(@Nocheque)) ,
LTRIM(RTRIM(@Nofactura)) ,
LTRIM(RTRIM(@Proveedor)) ,
@Costo ,
LTRIM(RTRIM(@IME)) ,
LTRIM(RTRIM(@Observaciones)) ,
1
);
IF (SQLCODE <> 0)
BEGIN
Set @RegError = @RegError + 1;
Set @DescripcionError = SUBSTRING(SQLERRM,1,100);

INSERT INTO ErrAnexo5I
( IdFuncionario ,
Descripcion ,
Marca ,
Color ,
Matplaca ,
Noserie ,
Edofisico ,
Nocheque ,
Nofactura ,
Proveedor ,
Costo ,
IME ,
Observaciones ,
DescripcionError
)
VALUES
(@IdFuncionario ,
@Descripcion ,
@Marca ,
@Color ,
@Matplaca ,
@Noserie ,
@Edofisico ,
@Nocheque ,
@Nofactura ,
@Proveedor ,
@Costo ,
@IME ,
@Observaciones ,
@DescripcionError);
END;
END;
ELSE
BEGIN
Set @RegError = @RegError + 1;
INSERT INTO ErrAnexo5I
( IdFuncionario ,
Descripcion ,
Marca ,
Color ,
Matplaca ,
Noserie ,
Edofisico ,
Nocheque ,
Nofactura ,
Proveedor ,
Costo ,
IME ,
Observaciones ,
DescripcionError )
VALUES
( @IdFuncionario ,
@Descripcion ,
@Marca ,
@Color ,
@Matplaca ,
@Noserie ,
@Edofisico ,
@Nocheque ,
@Nofactura ,
@Proveedor ,
@Costo ,
@IME ,
@Observaciones ,
'Costo debe de ser Numérico' );
END;
FETCH Next From Carga
END
INSERT INTO ANEXO5I (IDFUNCIONARIO, DESCRIPCION, MARCA, COLOR,ULTIMACARGA) VALUES (@idfuncionario,'TEXTO DE PRUEBA','COMPU','VERDE',1)
end
GO

puse en negrita y en grande la ubicacion en donde quiero hacer referencia a la variable SQLCODE... ojalá me puedan ayudar...

Gracias
__________________
Gustavo
  #2 (permalink)  
Antiguo 16/12/2008, 13:31
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Ayuda con sqlcode y sqlstate

si se trata de la variable que indica si ocurrio un error en la operacion anterior, en sql 2000 puedes utilizar la variable @@Error

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:14.