Foros del Web » Programando para Internet » ASP Clásico »

Stored Procedure

Estas en el tema de Stored Procedure en el foro de ASP Clásico en Foros del Web. Alguien me puede decir donde está el fallo: <% 'Eliminamos las posibles comillas de la entrada para evitar la introducción de sentencias SQL. usuario = ...
  #1 (permalink)  
Antiguo 17/08/2002, 04:13
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 23 años, 4 meses
Puntos: 0
Stored Procedure

Alguien me puede decir donde está el fallo:

<%
'Eliminamos las posibles comillas de la entrada para evitar la introducción de sentencias SQL.

usuario = replace(request.form("usuario"),"'& quot;,"")
password = replace(request.form("password"),"' ","")
nombre = replace(request.form("nombre"),"'&q uot;,"")
apellidos = replace(request.form("apellidos")," '","")
poblacion = replace(request.form("poblacion")," '","")
provincia = replace(request.form("provincia")," '","")
email = replace(request.form("email"),"'&qu ot;,"")
comentario = replace(request.form("comentario"),&quot ;'","")

'Conexion SQl server
set conexion = Server.CreateObject("ADODB.Connection")
Set adocmd = Server.CreateObject("ADODB.Command")

conexion.Open "Provider=SQLOLEDB;Data Source=S5K9S5;Initial Catalog=CONTROL;User Id=sa;Password=eurojames;OLE DB Services=-2"

set adocmd.ActiveConnection = conexion
adocmd.CommandType = adCmStoredProc
adocmd.CommandText = "sp_VC_USUARIOS_I"

adocmd.Parameters.Append adocmd.CreateParameter("usuario", adVarChar, adParamInput, 25,usuario)
adocmd.Parameters.Append adocmd.CreateParameter("password", adVarChar, adParamInput, 25,password)
adocmd.Parameters.Append adocmd.CreateParameter("nombre", adVarChar, adParamInput, 30,nombre)
adocmd.Parameters.Append adocmd.CreateParameter("apellidos", adVarChar, adParamInput, 50,apellidos)
adocmd.Parameters.Append adocmd.CreateParameter("poblacion", adVarChar, adParamInput, 25,poblacion)
adocmd.Parameters.Append adocmd.CreateParameter("provincia", adVarChar, adParamInput, 25,provincia)
adocmd.Parameters.Append adocmd.CreateParameter("email", adVarChar, adParamInput, 50,email)
adocmd.Parameters.Append adocmd.CreateParameter("comentario", adVarChar, adParamInput, 200,comentario)
adocmd.Execute

set adocmd = nothing
conexion.Close
set conexion = nothing
%>

El error que me da es este :
Tipo de error:
ADODB.Command (0x800A0BB9)
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.
  #2 (permalink)  
Antiguo 17/08/2002, 05:11
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Stored Procedure

El anterior error lo tengo ya solucionado, le falta poner esto al principio:
<%@ LANGUAGE="VBScript" %>
<% 'Option Explicit %>
<!-- #include virtual ="Control/include/adovbs.inc" -->

Pero el error que tengo ahora es este otro :

Tipo de error:
Microsoft OLE DB Provider for SQL Server (0x80040E37)
El nombre de objeto 'usuario' no es válido.
/control/formulario.asp, line 115

La linea 115 dice esto :
adocmd.Execute

La consulta que llamo es esta :

CREATE Procedure sp_VC_USUARIOS_I
@usuario varchar(25),
@password varchar(25),
@nombre varchar(30),
@apellidos varchar(50),
@poblacion varchar(25),
@provincia varchar(25),
@email varchar(50),
@comentario text
as
insert usuario
(usuario,password,nombre,apellidos,poblacion,provi ncia,email,comentario, tipo)
values
(@usuario,@password,@nombre,@apellidos,@poblacion, @provincia,@email,@comentario, 'N' )
return
GO

ALguien me puede decir por donde falla la cosa, gracias
  #3 (permalink)  
Antiguo 17/08/2002, 05:41
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Stored Procedure

Jejej, poco a poco van saliendo los problemos, ya esta arreglado el fallo era porque el nombre de la tabla es USUARIOS y no USUARIO, solo me faltaba la S, dejo todo el codigo por si alguien lo necesita, garantizadoq ue funciona.

Pero ahora bien, alguien me puede decir como hacer que antes de insertar comprueba que el usuario y el password no este en la tabla, y que le salga un mensaje de error que le informe que ya esta en uso que y que no grave, y si no existe pues que grave el registro, gracias.
  #4 (permalink)  
Antiguo 17/08/2002, 07:27
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Stored Procedure

Sobre lo que quiero hacer, explicado con anterioridad, en la consulta seria poner esto :

if exists (select * from usuarios where usuario=@usuario and password=@password)
begin
raiserror('El usuario %s con el password %s ya existe, vuelva a intentarlo.', 18,1,@usuario,@password)
return
end

Antes de hacer el insert,

y poner esto :

<p align="justify"><%= err.description %></p>

Para que salga en el formulario, pero me sale la tipica página que no se encuentra, alguien se le ocurre algo?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.