ri_nepo Postado Setembro 12, 2006 Denunciar Share Postado Setembro 12, 2006 Boa tarde Galera,Criei uma procedure e quando mando executar no asp ele não da erro mas também não executaO código está assim**************************************************set conexao=server.createobject("adodb.connection")conexao.open "Provider=SQLOLEDB.1;SERVER=server;DATABASE=base;UID=usuario;PWD=senha;" varNome = Request.Form("frmNome")varEmail = Request.Form("frmEmail") Set cmdatualiza = Server.CreateObject("ADODB.Command")Set cmdatualiza.ActiveConnection = Conexao cmdatualiza.CommandText = "SP_INSERE_RESERVA" cmdatualiza.CommandType = 4cmdatualiza.ParameteRs.Refreshcmdatualiza.ParameteRs("@nome") = varNomecmdatualiza.ParameteRs("@email") = varEmailcmdatualiza.ExecuteSet cmdatualiza=nothing**************************************************A procedure está assim*****************************************************CREATE PROCEDURE SP_INSERE_RESERVA( @nome varchar(100), @email varchar(100))as IF EXISTS(SELECT EMAIL FROM reserva) BEGIN Print 'Já existe um cadastro com este nome' RETURN END ELSE BEGIN INSERT INTO reserva (nome,email) VALUES (@nome,@email) Print 'Cadastro efetuado com sucesso' ENDGO*******************************************************************Quem puder ajudar eu agradeçoabraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Setembro 12, 2006 Autor Denunciar Share Postado Setembro 12, 2006 Tentei utilizar isso também e não funcionoudados_chamadas="exec SP_INSERE_RESERVA @nome = '"& varNome &"',@email = '"& varEmail &"'"conexao.execute(dados_chamadas) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 12, 2006 Denunciar Share Postado Setembro 12, 2006 o problema acho que está aqui:IF EXISTS(SELECT EMAIL FROM reserva) porque se a tabela tiver pelo menos uma linha, ele sai da procedure. acho que o você quer seria tipo isso: IF EXISTS(SELECT EMAIL FROM reserva Where Nome = @nome) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Setembro 12, 2006 Autor Denunciar Share Postado Setembro 12, 2006 Valeu mano , era isso mesmo , falha minha , valeuComo eu faço na procedure para passar o valor de resposta para páginaNo lugar do print eu printo na propria páginaex: IF EXISTS(SELECT EMAIL FROM reserva where email = @email) BEGIN Print 'Já existe um cadastro com este nome' RETURN END ELSE BEGIN INSERT INTO reserva (nome,email) VALUES (@nome,@email) Print 'Cadastro efetuado com sucesso' END Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Setembro 12, 2006 Denunciar Share Postado Setembro 12, 2006 com ADODB Command não sei, mas com RecordSet, acho que ele retorna a mensagem na propriedade Erros da Connection. pra acessar seria tipo assim:Response.Write(conexao.Errors(0).Description)ai acho que cada vez que você executa ele substitui o indice 0 pelo erro. não manjo muito mas acho que é assim.com o Command talvez seja igual. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Setembro 13, 2006 Autor Denunciar Share Postado Setembro 13, 2006 Não rolou , na realidade seria assima procedure envia uma variavel @MSN****************************************************************CREATE PROCEDURE SP_INSERE_RESERVA( @nome varchar(100), @email varchar(100), @MSN varchar(100) output)as IF EXISTS(SELECT EMAIL FROM reserva where email = @email) BEGIN SET @MSG = 'ER Usuário já existe!!' RETURN END ELSE BEGIN INSERT INTO reserva (nome,email) VALUES (@nome,@email) SET @MSG = 'ER Cadastro efetuado com sucesso!!' ENDGO****************************************************************Só que no asp não está pegando , eu queria alguma dicaabraçosRicardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ri_nepo
Boa tarde Galera,
Criei uma procedure e quando mando executar no asp ele não da erro mas também não executa
O código está assim
**************************************************
set conexao=server.createobject("adodb.connection")conexao.open "Provider=SQLOLEDB.1;SERVER=server;DATABASE=base;UID=usuario;PWD=senha;"
varNome = Request.Form("frmNome")
varEmail = Request.Form("frmEmail")
Set cmdatualiza = Server.CreateObject("ADODB.Command")
Set cmdatualiza.ActiveConnection = Conexao
cmdatualiza.CommandText = "SP_INSERE_RESERVA"
cmdatualiza.CommandType = 4
cmdatualiza.ParameteRs.Refresh
cmdatualiza.ParameteRs("@nome") = varNome
cmdatualiza.ParameteRs("@email") = varEmail
cmdatualiza.Execute
Set cmdatualiza=nothing
**************************************************
A procedure está assim
*****************************************************
CREATE PROCEDURE SP_INSERE_RESERVA
(
@nome varchar(100),
@email varchar(100)
)
as
IF EXISTS(SELECT EMAIL FROM reserva)
BEGIN
Print 'Já existe um cadastro com este nome'
RETURN
END
ELSE
BEGIN
INSERT INTO reserva (nome,email) VALUES (@nome,@email)
Print 'Cadastro efetuado com sucesso'
END
GO
*******************************************************************
Quem puder ajudar eu agradeço
abraços
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.