Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AndréMiranda

Página ASP dando erro com Stored Procedure

Recommended Posts

Olá pessoal!!

 

Criei essa SP no SQL 2005 que estou tentando puxar numa página em ASP:

 

USE [WebContent]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [temp].[Atualiza_User_Ree]
	@nome varchar(150),
	@cidade varchar(150),
	@cargo varchar(150),
	@ultima_atualizacao varchar(50),
				@idFunc int
	
AS
BEGIN

	UPDATE dbo.tb_loginree 
	SET nome = @nome,
		cidade = @cidade,
		cargo = @cargo,
		ultima_atualizacao = @ultima_atualizacao
	WHERE @idFunc = idFunc
END

Só que no Dreamweaver dá erro na linha do idFunc:

 

set Atualiza_User = Server.CreateObject("ADODB.Command")
Atualiza_User.ActiveConnection = MM_conexaoDataBase_STRING
Atualiza_User.CommandText = "temp.Atualiza_User_Ree"
Atualiza_User.CommandType = 4
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@RETURN_VALUE", 3, 4)
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@nome", 200, 1,150,Atualiza_User__nome)
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@cidade", 200, 1,150,Atualiza_User__cidade)
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@cargo", 200, 1,150,Atualiza_User__cargo)
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@ultima_atualizacao", 200, 1,50,Atualiza_User__ultima_atualizacao)
Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@idFunc", 3, 1,-1,Atualiza_User__idFunc)
Atualiza_User.Execute()

Qdo você configura a SP, o Dreamweaver diz que " você precisa digitar um valor para o campo @idFunc"... só que não sei como fazer isso já que ele é do tipo int na minha tabela... É uma página em ASP.

 

Dá erro nessa linha:

Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@idFunc", 3, 1,-1,Atualiza_User__idFunc)

Alguém sabe como resolver isso?? Coloquei "-1" no valor dele, mas não sei o que colocar... tentei escrever "int" tmb mas dá erro...

 

Abs!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Ted!

Mas, como eu configuraria isso corretamente? É erro na minha SP?

Atualiza_User.Parameters.Append Atualiza_User.CreateParameter("@idFunc", 3, 1,-1,Atualiza_User__idFunc)
Pesquisando eu descobri duas coisas:

01- Que esses números "3,1,-1" dizem o tipo de campo (3), o "1" eu não sei o que quer dizer e -1 seria o tamanho do campo...

02- Que o DW tem um bug com Stored Procedures... :-S

 

Abs...

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abaixo segue uma lista de resumo destes códigos, você pode tanto representar eles através de números, como você fez, ou simplesmente escrever o item.

 

Para poder usar a referência através de número, você primeiro referenciar estes códigos no inicio da página ou através de uma página include.

 

Eu particularmente prefiro sempre me referir ao texto, assim não preciso ficar pesquisando o que o código se refere, então faço assim:

 

Exemplo

<%
Set objCmd  = Server.CreateObject("ADODB.Command")
	Set objCn = Server.CreateObject("ADODB.Connection")
	Set objRs  = Server.CreateObject("ADODB.Recordset")
	strSQL = "USP_TB_FUNCAO_S006"

	objCn.Open "File Name=C:\CempUDL\CempADM.udl"
	With objCmd
		.Commandtext = strSQL
		.Commandtype = adCmdStoredProc
		Set .ActiveConnection = objCn

		.Parameters.Append .CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0)
	End With
	With objRs
		.CursorLocation = adUseClient
		.Open objCmd, , adOpenDynamic, adLockReadOnly
		Set .ActiveConnection = Nothing
	End With
%>

Abaixo os código que você está utilizando e o que significa cada um deles

 

Const ForReading = 1

Const ForWriting = 2

Const ForAppending = 8

Const TristateTrue = -1

Const TristateFalse = 0

Const TristateUseDefault = -2

Const TristateMixed = -2

Const adCmdStoredProc = 4

Const adUseClient = 3

Const adOpenForwardOnly = 0

Const adLockReadOnly = 1

Const adInteger = 3

Const adParamReturnValue = 4

Const adParamInput = 1

Const adVarChar = 200

Const adDBTimeStamp = 135

Const adParamInputOutput = 3

Const adSingle = 4

Const adExecuteNoRecords = 128

Const adBoolean = 11

Const adDouble = 5

 

Espero ter ajudado

 

Abraços

 

Jorge

www.probuilding.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew

 

Olha as SPs elas são meio chatas em questao de parametros

você SEMPRE...SEMPRE deve passar todos eles não importa se eles vao ser nulos ou não

sempre devem ser passador se não não funciona...

 

Elas são diferentes do JS que quando você passa 2 e tem 3 a terceira fica undefined com as SPs não funciona

 

espero ter ajudado a intendelas

 

Vlw ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.