
Error datetime SP
Publicado por Be7or (5 intervenciones) el 25/11/2008 18:54:46
Hola buenas,
Tengo un problemita k me esta atorando demasiado el termino de un proyecto y es que tengo un SP que debe ingresar dos registros a una tabla dependiendo el modulo, uno de los parametros k paso es la fecha actual, lo hago desde asp para evitar que me tome los miliseguindos, el problema esta en k me arroja un error al konvertir datos.
Espero y puedan ayudarme y si es necesario mas informacion diganme.
-----------------------------------------------[stored procedure]-----------------------------------------------
ALTER PROCEDURE [dbo].[closeDetail]
@problem int,
@gpo nvarchar(20),
@seqGpo int,
@modulo nvarchar(20),
@spdate nvarchar(20)
AS
Declare @maxSeq int
Declare @seqStaff int
Declare @pdate datetime
select @spdate = REPLACE(@spdate,'.','')
select @pdate = CONVERT(DATETIME,@spdate)
IF @modulo = 'Inc'
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._TELMASTE_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._TELDETAI_
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,41,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,4,@gpo,'Close Call # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_TELDETAI_'
END
ELSE
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._WORKORD_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._WORKDET_
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,42,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,15,@gpo,'Closed WO # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_WORKDET_'
END
--------------------------------------------[codigo k ejekuta el sp]--------------------------------------------
Dbconn.Execute "EXEC closeDetail " & strSEQ & ",'" & strGPO & "'," & seqGPO & ",'" & strMod & "','" & Now & "'"
----------------------------------------------[error k me muestra]----------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e57'
[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type datetime.
------------------------------------------------------------------------------------------------------------------------
Saludos!
Tengo un problemita k me esta atorando demasiado el termino de un proyecto y es que tengo un SP que debe ingresar dos registros a una tabla dependiendo el modulo, uno de los parametros k paso es la fecha actual, lo hago desde asp para evitar que me tome los miliseguindos, el problema esta en k me arroja un error al konvertir datos.
Espero y puedan ayudarme y si es necesario mas informacion diganme.
-----------------------------------------------[stored procedure]-----------------------------------------------
ALTER PROCEDURE [dbo].[closeDetail]
@problem int,
@gpo nvarchar(20),
@seqGpo int,
@modulo nvarchar(20),
@spdate nvarchar(20)
AS
Declare @maxSeq int
Declare @seqStaff int
Declare @pdate datetime
select @spdate = REPLACE(@spdate,'.','')
select @pdate = CONVERT(DATETIME,@spdate)
IF @modulo = 'Inc'
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._TELMASTE_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._TELDETAI_
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,41,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,4,@gpo,'Close Call # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_TELDETAI_'
END
ELSE
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._WORKORD_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._WORKDET_
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,42,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,15,@gpo,'Closed WO # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_WORKDET_'
END
--------------------------------------------[codigo k ejekuta el sp]--------------------------------------------
Dbconn.Execute "EXEC closeDetail " & strSEQ & ",'" & strGPO & "'," & seqGPO & ",'" & strMod & "','" & Now & "'"
----------------------------------------------[error k me muestra]----------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e57'
[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type datetime.
------------------------------------------------------------------------------------------------------------------------
Saludos!
Valora esta pregunta


0