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

stored procedure con ASP

Estas en el tema de stored procedure con ASP en el foro de ASP Clásico en Foros del Web. A ver si me podeis ayudar, estoy trabajando en una pagina web es en ASP y base de datos SQL SERVER 2000, para cada una ...
  #1 (permalink)  
Antiguo 24/06/2003, 14:27
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
Mensaje stored procedure con ASP


A ver si me podeis ayudar, estoy trabajando en una pagina web es en ASP y base de datos SQL SERVER 2000, para cada una de mis tablas de la BBDD utilizo 4 stored procedure:

Estas son las 4 tipos de SP que hago

UPDATE ==> le paso como variables todos los campos de la tabla
DELETE ==> le paso solamente los campos que son claves
INSERTE ==> le paso solamente los campos que son claves
SELECT ==> no paso parámetros pero lo que haces una simple select de la tabla

Me gustaria encontrar información o ayuda, algo de codigo para ASP que pueda realizar estas SP en ASP

Gracias para aquellas personas que me ayuden
Jaime
  #2 (permalink)  
Antiguo 24/06/2003, 15:37
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
Como accedes a la BDD, directamente desde el IIS o utilizas una capa de negocios?

Si es directamente es sencillisimo, habiendo declarado tu objeto conexion seria tal que asina

Código:
procedimiento= "ap_procedimiento_ejemplo " & parametro1numerico & " ,'" & parametro2text & "'"
Conexion.Execute(procedimiento)
Y si esperas un recordset pues igualas el objeto recordset al execute

Código:
procedimiento= "ap_procedimiento_ejemplo " & parametro1numerico & " ,'" & parametro2text & "'"
Mirecordset= Conexion.Execute(procedimiento)
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #3 (permalink)  
Antiguo 25/06/2003, 12:51
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
Perdona que sea un poco cortillo, pero gracias por la ayuda, sería mas facil obtener un poco mas de informacion o de codigo para que cada uno de los casos que planteo.

Muchas gracias
Jaime
  #4 (permalink)  
Antiguo 25/06/2003, 14:58
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
Cita:
Mensaje Original por eurojames
Perdona que sea un poco cortillo, pero gracias por la ayuda, sería mas facil obtener un poco mas de informacion o de codigo para que cada uno de los casos que planteo.

Muchas gracias
Jaime
Claro no problemo...

la cuestion es tienes los procedimientos hechos? Es que me parece que mestoy liando y en vez de procedimientos tienes solo las sentencias sql?.. Si pones un par de ejemplos de lo que quieres hacer exactamente, nosotros te indicamos como ejecutarlo desde ASP
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #5 (permalink)  
Antiguo 25/06/2003, 15:08
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
HOLA DE NUEVO LO QUE TENGO SON 4 STORED PROCEDURE EN UNA BASE DE DATOS DE SQL SERVER 2000, TE PASO UN EJEMPLO DE CADA TIPO:

PARA INSERT:

Create Procedure sp_InsertCustomer(
@first_name varchar(50),@middle_name varchar(50) = NULL,
@last_name varchar(50),@city varchar(50),@state varchar(50),
@country varchar(50), @customer_id int OUTPUT)
AS
BEGIN
INSERT INTO customer(first_name, middle_name, last_name, city, state,country)
VALUES(@first_name, @middle_name, @last_name,@city, @state, @country)
SELECT @customer_id = @@IDENTITY
END


PARA UPDATE:

Create Procedure sp_UpdateCustomer(@customer_id int,
@first_name varchar(50),@middle_name varchar(50) = NULL,
@last_name varchar(50),@city varchar(50), @state varchar(50),
@country varchar(50))
AS
BEGIN
UPDATE customer(set first_name = @first_name, set middle_name = @middle_name, set last_name = @last_name,
set city = @city, set state = @state, set country = @country)
WHERE customer_id = @customer_id
END


PARA DELETE:
Create Procedure sp_DeleteCustomer(
@customer_id int)
AS
BEGIN
DELETE FROM customer WHERE customer_id = @customer_id)
END



PARA SELECT :

Create Procedure sp_GetCustomer(
@customer_id int)
AS
BEGIN
SELECT * FROM customer WHERE customer_id = @customer_id)
END



ESTOS SON LOS CUATROS TIPOS DE SP QUE QUIERO USAR EN ASP, ESPERO QUE PUEDA SER DE AYUDA

GRACIAS
  #6 (permalink)  
Antiguo 25/06/2003, 15:53
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
vale.. pues una vez que los tengas creados en el SQL ya te puedes olvidar de ellos y para llamarlos seria:

por ejemplo el de update con estos valores:

customer id=355
first name=Federico
middle name lo dejamos a nulo
last name= Garcia Lorca
city= Granada
state=Granada
country=España

Código:
customer_id="355"
first_name="Federico"
middle_name=""
last_name="Garcia Lorca"
city="Granada"
state="Granada"
country="España"

prcUpdate="sp_UpdateCustomer " & customer_id & ",'" & first_name & "','" & middle_name & "','" & last_name & "','" & city & "','" & state & "','" & Country & "'"
conexion.Execute(prcUpdate)
fijate en el detalle de que si es varchar el tipo de campo le tienes que poner una comilla simple delante, es en realidad " ' , ' "

Y para el caso de select lo mismo, teniendo en cuenta que esperars datos tendras que igualr un objeto recordset a eso

Código:
customer_id
prcSelect= "spGetCustomer  " & customer_id
rsSelect=conexion.execute(prcSelect)
rsSelect es tu objetillo recordset

Un apunte te aconsejaria no poner a los procedimientos nombre que empiecen pro sp_ si no, ap_ u otra cosa..para no confundirlos con los system Procedures que vienen con el msSQL
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #7 (permalink)  
Antiguo 25/06/2003, 16:02
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
OK LO PROBARÉ Y YA LO IRE PROBANDO SI TENGO UN PROBLEMA TE DEJO UN MENSAJE EN EL FORO, POR CIERTO SI LA CONSULTA DEL TIPO SELECT DEVUELVE UNA SERIE DE REGISTROS COMO LOS PUEDOS MOSTRAR UNA VEZ EJECUTADA LA CONSULTA DE STORED PROCEDURE DE SELECT.

POR CASUALIDAD SABES DE UNA PAGINA QUE HABLE DE ESTOS TEMAS

SALUDOS
JAIME
  #8 (permalink)  
Antiguo 27/06/2003, 13:17
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
ALGUIEN PUEDE INFORMARME MAS SOBRE EL TEMA DE LAS STORED PROCEDURE DEL SQL SERVER, OTRA PREGUNTA SI LAS CONSULTAS SE HACEN CON EL ACCESS LAS LLAMADAS SE HACEN IGUAL QUE EN EL SQL SERVER

GRACIAS
JAIME
  #9 (permalink)  
Antiguo 27/06/2003, 17:37
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 3 meses
Puntos: 2
Cuando el SP te devuelve la consulta (el SELECT) lo manipulas como cualquier recordset. No hay historia.

Sigamos con el mismo ejemplo....

en este caso:
Código:
customer_id
prcSelect= "spGetCustomer  " & customer_id
rsSelect=conexion.execute(prcSelect)
Seria asi:

Código:
If not rsSelect.eof then
       '''Muestro
         Do while not rsSelect.eof
                  response.write(rsSelect("nombreCampo"))
                  rsSelect.movenext
         loop         
 
else
         response.write("no hay registros para mostrar")
end if
Para reducir los stored procedure... puedes hacer las 4 operaciones de SQL en un solo stored... luego... cada ves que quieras realizar una de las consultas le pasas un parametro que te tu crees... para que dependiendo de este haga una u otra consulta.

En access no existen los stored procedures.
__________________
tech-nico.com
  #10 (permalink)  
Antiguo 28/06/2003, 01:47
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
ME QUIERES DECIR QUE EN UNA MISMA SP PUEDO INCLUIR A LS CUATRO Y A PARTE DE PASARLE LOS PARAMETROS QUE NECESITOS QUE SON LOS CAMPOS, UNO QUE SEA POR EJEMPLO TIPO Y LE PASO I SI QUIERO INSERT, S SI ES SELEC, U SI ES UPDATE Y D SI ES DELETE
  #11 (permalink)  
Antiguo 28/06/2003, 10:59
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 3 meses
Puntos: 2
Asi es amigo!... o le puedes pasar uno que se llame propiamente... "Param=1" para Insert, "Param=2", para Delete, y asi con los que tu quieras.

luego en el stored....

Cuando declaras todos los paramentros que vienen de ASP... declaras...
Declare @Param Integer

Luego...

IF @Param = 1 BEGIN
--hago Insert
END

IF @Param = 2 BEGIN
--hago Delete
END

GO

Bueno... es una idea general.....
__________________
tech-nico.com
  #12 (permalink)  
Antiguo 28/06/2003, 13:07
 
Fecha de Ingreso: diciembre-2001
Mensajes: 76
Antigüedad: 22 años, 5 meses
Puntos: 0
ES UNA IDEA MUY BUENA O TAMBIEN PARA NO TENER UNA CONSULTA CON MUCHO CODIGO SE PUEDE SEGUIR TU IDEA, Y CUANDO EL PARAM SEA 1 QUE LLAMA A LA SP CREADA , ES DECIR , IR LLAMANDO A SP

SERÍA OTRO IDEA.

TENGO OTRO PROBLEMA A VER SI ME PUEDES AYUDAR, ES ESTE:

TENGO EL SQL SERVER Y SI LO TENGO EN MARCHA ME HACE COLGAR EL ROUTER Y PERDIO LA CONEXION Y TENGO QUE ESPERAR QUE SE ENFRIE EL ROUTER Y VOLVER CONECTAR EL PC, PERO TENGO QUE APAGAR EL SQL SERVER PARA PODER CONECTARME A INTERNET.

TENGO COMO SISTIMA OPERATIVO EL WIN2000 PROFESIONAL Y EL SQL SERVER 2000 SIN NINGUN SP TENGO POR INSTALAR EL SP3 PERO ANTES DE HACERLO ME QUIERO ENTERAR SI ESTO SOLUCIONA MI PROBLEMA Y COMO CAPACIDAD DE DISCO TENGO SUFICIENTE Y DE MEMORIA RAM 256 NO SE SI TE HACE FALTA MAS DATOS.

A VER SI SABES ALGO

SALUDOS
JAIME
  #13 (permalink)  
Antiguo 29/06/2003, 17:53
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 3 meses
Puntos: 2
Hola jaime... te comento... de routers lo unico que se es un pequeño concepto teorico... nunca he trabajado con ellos.


Saludos!
Nico
__________________
tech-nico.com
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 14:07.