Message "El nombre de objeto '#tblTemp' no es válido."

07/07/2004 - 22:48 por Misael Chuc | Informe spam
Que tal Sres.

Soy nuevo en este asunto de SQL SEVER 2000, tengo el siguiente SP:

CREATE PROCEDURE spIsValidProdSrv
@iPlaceId int,
@iProdSrvid int,
@iNewProdSrvId int,
@iResult int output
AS
declare @iTienePack int,
@iTempProdSrvId int,
@sTempProdSrvType char(1)

/*create table #tblTemp(iTmpProdSrvId int, sTmpProdSrvType
char(1));*/

BEGIN
/* Procedure body */
set @iResult = 0;

create table #tblTemp(iTmpProdSrvId int, sTmpProdSrvType char(1));

if @iProdSrvId = @iNewProdSrvId
set @iResult = 1

if exists (select fkProdSrvId
from tblPlaceProdSrvKit
where fkKitID = @iProdSrvId /* filtra segun id de paquete */
and fkplaceid = @iPlaceId /* filtra segun lugar */
and fkProdSrvId = @iNewProdSrvId)
set @iResult = 1

if @iResult = 0
begin
/* primer inserto a la tabla temporal los prod que ya tiene el
paquete */
insert into #tblTemp
select a.fkProdSrvId,b.ProdSrvType
from tblPlaceProdSrvKit a, tblProdsrv b
where a.fkKitID = @iProdSrvId /* filtra segun id de paquete */
and a.fkplaceid = @iPlaceId /* filtra segun lugar */
and b.pkProdSrvID = a.fkProdSrvID /* para obtener el tipo de cada
item asociado al paquete */

/* despues el prod que se quiere insertar */
insert into #tblTemp
select @iNewProdSrvId, ProdSrvType from tblProdSrv
where pkProdSrvId=@iNewProdSrvId

set @iTienePack = 0

while @iTienePack = 0
begin
if exists (select * from #tblTemp where sTmpProdSrvType='K')
begin
declare CursorTemp cursor READ_ONLY STATIC LOCAL for
select iTmpProdSrvId,sTmpProdSrvType
from #tblTemp
open CursorTemp

WHILE @@FETCH_STATUS = 0
begin
fetch next from CursorTemp into @itempprodsrvid ,
@stempprodsrvtype

if @iTempProdSrvId=@iProdSrvId
begin
set @iResult = 1
set @iTienePack = 1 /* me salgo del otro while */
break
end

if @sTempProdSrvType = 'K' /* descompongo un paquete
*/
begin
insert into #tblTemp
select a.fkProdSrvId,b.ProdSrvType
from tblPlaceProdSrvKit a, tblProdsrv b
where a.fkKitID = @iTempProdSrvId /* filtra segun id
de paquete */
and a.fkplaceid = @iPlaceId /* filtra segun lugar
*/
and b.pkProdSrvID = a.fkProdSrvID /* para obtener el
tipo de cada item asociado al paquete */

delete from #tblTemp where
iTmpProdSrvId=@iTempProdSrvId
break /* me salgo del while */
end
end

Close CursorTemp
Deallocate CursorTemp

end else
set @iTienePack = 1

end
end
drop table #tblTemp
END

GO

Desde el Query Analyzer lo ejecuto de la siguiente forma:

declare @res int exec spIsValidProdSrv 1,12,13, @res output Select @res
Valor

Y me funciona, pero desde mi aplicacion me marca el siguiente error:

"El nombre de objeto '#tblTemp' no es válido."

Aguna idea de que pueda estar haciendo mal.

Saludos

Preguntas similare

Leer las respuestas

#1 MAXI
08/07/2004 - 00:05 | Informe spam
hola, si en en Query funciona es porque no hay problemas de SqlServer!! en
la aplicacion como lo estas haciendo? podes postiarlo?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Misael Chuc" escribió en el mensaje
news:%
Mostrar la cita
*/
Mostrar la cita
id
Mostrar la cita
el
Mostrar la cita
#2 Misael Chuc
08/07/2004 - 00:18 | Informe spam
Que tal Maxi,


Realmente lo estoy llamando desde un WebService y este el codigo :

Public Function GetTheBrowse() As DataSet
Try
Call OpenCn()
If mErrorState <> 0 Then Exit Function
Dim daBrowse As New SqlDataAdapter(msSQLSentence, m_cn)
Dim dsBrowse As New DataSet

Try
daBrowse.FillSchema(dsBrowse, SchemaType.Mapped,
"DataBrowse") > Aqui me marca el Error.
daBrowse.Fill(dsBrowse, "DataBrowse")

Catch ex As Exception
daBrowse.MissingMappingAction = MissingMappingAction.Error
daBrowse.MissingSchemaAction = MissingSchemaAction.Error
dsBrowse = Nothing
msErrorContext = ex.Message
End Try
Call CloseConnection()
Return dsBrowse
Catch ex As Exception
msErrorContext = ex.Message
End Try
End Function

Esta funcion es parte del Web Method pero, en escencia en esta funcion me
marca error.

Al web method le paso los siguientes parametros:

username, password y la sentencia SQL : declare @res int exec
spIsValidProdSrv 1,12,13, @res output Select @res Valor

Esta misma sentencia la ejecuto en el Query y me funciona.

Mostrar la cita
hola, si en en Query funciona es porque no hay problemas de SqlServer!! en
la aplicacion como lo estas haciendo? podes postiarlo?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Misael Chuc" escribió en el mensaje
news:%
Mostrar la cita
*/
Mostrar la cita
id
Mostrar la cita
el
Mostrar la cita
#3 Misael Chuc
09/07/2004 - 15:18 | Informe spam
Gracias, Maxi, hechare una revisada al news de ADO.NET

Saludos desde Cancun, México

Mostrar la cita
hmm ni idea, creo que deberias hacer la consulta en el news de ADO.NET
porque parece ser un problema de esos.

Un abrazo




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Misael Chuc" escribió en el mensaje
news:
Mostrar la cita
en
Mostrar la cita
paquete
Mostrar la cita
cada
Mostrar la cita
sTmpProdSrvType='K')
Mostrar la cita
*/
Mostrar la cita
paquete
Mostrar la cita
segun
Mostrar la cita
lugar
Mostrar la cita
obtener
Mostrar la cita
Ads by Google
Search Busqueda sugerida