Forums Últimos mensajes - Powered by IBM
 

ASP me duplica los registros

15/11/2004 - 12:49 por Isaias Mercado M | Informe spam
Hola a Todos,

Tengo un problema y es que cada que ves que
inserto desde mi pagina web un registro, en la BD lo
inserta DOS veces

el procedimineto almacenado al que llamo es :

CREATE PROCEDURE sp_adicionar_Pqr_Head
(
@Codigo_PQR int output
,@idCliente int
,@Fecha_ingreso datetime
,@Forma_ingreso int
,@Usuario_ingreso int
,@Motivo int
,@Submotivo int
,@Area int
,@Producto int
,@Localidad int
,@Tipo_PQR int
,@Observaciones varchar(100)
,@Estado_Caso int
,@Text1 varchar(30)
,@Tipo_Cliente int
,@Nombre_Usuario varchar(50)
,@EMail varchar(30)
,@Usuario_Caso int
,@Empresa int
,@Datos varchar(100)
,@Fax varchar(20)
,@Mobile varchar(20)
,@Usuario_Inicial_Caso int
,@TipoIngreso varchar(1)
,@TipoCliente varchar(1)

)
AS
insert into Pqr_Head (
idCliente
,Fecha_ingreso
,Forma_ingreso
,Usuario_ingreso
,Motivo
,Submotivo
,Area
,Producto
,Localidad
,Tipo_PQR
,Observaciones
,Estado_Caso
,Text1
,Tipo_Cliente
,Nombre_Usuario
,EMail
,Usuario_Caso
,Empresa
,Datos
,Fax
,Mobile
,Usuario_Inicial_Caso
,Tipo_Ingreso
,Tipo_Cliente_PQR
)
values(
@idCliente
,@Fecha_ingreso
,@Forma_ingreso
,@Usuario_ingreso
,@Motivo
,@Submotivo
,@Area
,@Producto
,@Localidad
,@Tipo_PQR
,@Observaciones
,@Estado_Caso
,@Text1
,@Tipo_Cliente
,@Nombre_Usuario
,@EMail
,@Usuario_Caso
,@Empresa
,@Datos
,@Fax
,@Mobile
,@Usuario_Inicial_Caso
,@TipoIngreso
,@TipoCliente
)
select @Codigo_PQR = @@identity
GO



las estructura de la tabla es :
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK_Pqr_Dato_Adjunto_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Dato_Adjunto] DROP CONSTRAINT
FK_Pqr_Dato_Adjunto_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK_Pqr_Det_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Det] DROP CONSTRAINT
FK_Pqr_Det_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK_Pqr_Llamada_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Llamada] DROP CONSTRAINT
FK_Pqr_Llamada_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[Pqr_Head]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[Pqr_Head]
GO

CREATE TABLE [dbo].[Pqr_Head] (
[Codigo_PQR] [numeric](18, 0) IDENTITY (0, 1) NOT
NULL ,
[idCliente] [numeric](18, 0) NOT NULL ,
[Fecha_ingreso] [datetime] NOT NULL ,
[Forma_ingreso] [numeric](18, 0) NOT NULL ,
[Usuario_ingreso] [numeric](18, 0) NOT NULL ,
[Motivo] [numeric](18, 0) NOT NULL ,
[Submotivo] [numeric](18, 0) NOT NULL ,
[Area] [numeric](18, 0) NOT NULL ,
[Producto] [numeric](18, 0) NULL ,
[Localidad] [numeric](18, 0) NOT NULL ,
[Tipo_PQR] [numeric](18, 0) NOT NULL ,
[Observaciones] [varchar] (100) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Estado_Caso] [numeric](18, 0) NOT NULL ,
[Text1] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Tipo_Cliente] [numeric](18, 0) NOT NULL ,
[Nombre_Usuario] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[EMail] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Usuario_Caso] [numeric](18, 0) NOT NULL ,
[Empresa] [numeric](18, 0) NOT NULL ,
[Datos] [varchar] (100) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Fax] [varchar] (50) COLLATE Modern_Spanish_CI_AS
NULL ,
[Mobile] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Usuario_Inicial_Caso] [numeric](18, 0) NOT NULL ,
[Tipo_Ingreso] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Tipo_Cliente_PQR] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL
) ON [PRIMARY]
GO



Estoy trabajando en ASP con VBscript e IIS 5.0 el
SO en que esta corriendo es Windows 2000 SErver con
SQL 2000
 

Leer las respuestas

#1 Adrian D. Garcia
15/11/2004 - 13:06 | Informe spam
Hola,
Por lo que he visto en el procedimiento almacenado y en la estructura de la
tabla esta correcto.
La unica forma en que se puede producir una doble insercion es:
a) Se llama al procedimiento almacenado 2 veces desde la pagina ASP.
Verifica el codigo ADO, ve si la pagina se esta llamando 2 veces, analiza si
esta repetido el codigo de invocacion del procedimiento almacenado en varias
partes de la pagina.
b) Verifica si la tabla no tiene un disparador/trigger de insert asociado a
la misma que este insertando los datos nuevamente sobre la misma tabla
(Quizas algun esquema de auditoria mal armado?)

Saludos
Adrian D. Garcia
NDSoft


"Isaias Mercado M" wrote in message
news:09f101c4cb09$330c8820$
Hola a Todos,

Tengo un problema y es que cada que ves que
inserto desde mi pagina web un registro, en la BD lo
inserta DOS veces

el procedimineto almacenado al que llamo es :

CREATE PROCEDURE sp_adicionar_Pqr_Head
(
@Codigo_PQR int output
,@idCliente int
,@Fecha_ingreso datetime
,@Forma_ingreso int
,@Usuario_ingreso int
,@Motivo int
,@Submotivo int
,@Area int
,@Producto int
,@Localidad int
,@Tipo_PQR int
,@Observaciones varchar(100)
,@Estado_Caso int
,@Text1 varchar(30)
,@Tipo_Cliente int
,@Nombre_Usuario varchar(50)
,@EMail varchar(30)
,@Usuario_Caso int
,@Empresa int
,@Datos varchar(100)
,@Fax varchar(20)
,@Mobile varchar(20)
,@Usuario_Inicial_Caso int
,@TipoIngreso varchar(1)
,@TipoCliente varchar(1)

)
AS
insert into Pqr_Head (
idCliente
,Fecha_ingreso
,Forma_ingreso
,Usuario_ingreso
,Motivo
,Submotivo
,Area
,Producto
,Localidad
,Tipo_PQR
,Observaciones
,Estado_Caso
,Text1
,Tipo_Cliente
,Nombre_Usuario
,EMail
,Usuario_Caso
,Empresa
,Datos
,Fax
,Mobile
,Usuario_Inicial_Caso
,Tipo_Ingreso
,Tipo_Cliente_PQR
)
values(
@idCliente
,@Fecha_ingreso
,@Forma_ingreso
,@Usuario_ingreso
,@Motivo
,@Submotivo
,@Area
,@Producto
,@Localidad
,@Tipo_PQR
,@Observaciones
,@Estado_Caso
,@Text1
,@Tipo_Cliente
,@Nombre_Usuario
,@EMail
,@Usuario_Caso
,@Empresa
,@Datos
,@Fax
,@Mobile
,@Usuario_Inicial_Caso
,@TipoIngreso
,@TipoCliente
)
select @Codigo_PQR = @@identity
GO



las estructura de la tabla es :
if exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[FK_Pqr_Dato_Adjunto_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Dato_Adjunto] DROP CONSTRAINT
FK_Pqr_Dato_Adjunto_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[FK_Pqr_Det_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Det] DROP CONSTRAINT
FK_Pqr_Det_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[FK_Pqr_Llamada_Pqr_Head]') and
OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Pqr_Llamada] DROP CONSTRAINT
FK_Pqr_Llamada_Pqr_Head
GO

if exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[Pqr_Head]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[Pqr_Head]
GO

CREATE TABLE [dbo].[Pqr_Head] (
[Codigo_PQR] [numeric](18, 0) IDENTITY (0, 1) NOT
NULL ,
[idCliente] [numeric](18, 0) NOT NULL ,
[Fecha_ingreso] [datetime] NOT NULL ,
[Forma_ingreso] [numeric](18, 0) NOT NULL ,
[Usuario_ingreso] [numeric](18, 0) NOT NULL ,
[Motivo] [numeric](18, 0) NOT NULL ,
[Submotivo] [numeric](18, 0) NOT NULL ,
[Area] [numeric](18, 0) NOT NULL ,
[Producto] [numeric](18, 0) NULL ,
[Localidad] [numeric](18, 0) NOT NULL ,
[Tipo_PQR] [numeric](18, 0) NOT NULL ,
[Observaciones] [varchar] (100) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Estado_Caso] [numeric](18, 0) NOT NULL ,
[Text1] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Tipo_Cliente] [numeric](18, 0) NOT NULL ,
[Nombre_Usuario] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[EMail] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Usuario_Caso] [numeric](18, 0) NOT NULL ,
[Empresa] [numeric](18, 0) NOT NULL ,
[Datos] [varchar] (100) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Fax] [varchar] (50) COLLATE Modern_Spanish_CI_AS
NULL ,
[Mobile] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Usuario_Inicial_Caso] [numeric](18, 0) NOT NULL ,
[Tipo_Ingreso] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL ,
[Tipo_Cliente_PQR] [varchar] (50) COLLATE
Modern_Spanish_CI_AS NOT NULL
) ON [PRIMARY]
GO



Estoy trabajando en ASP con VBscript e IIS 5.0 el
SO en que esta corriendo es Windows 2000 SErver con
SQL 2000




Preguntas similares