Quisiera saber como llamar a un Store Procedure de una Base de Datos SQL desde una página ASP. La poca información que leí no me es suficiente y si me pueden ayudar se los agradecería.
Saludos ;)
CABEZOTA
| |||
Usar Strore Procedures de SQL en ASP Quisiera saber como llamar a un Store Procedure de una Base de Datos SQL desde una página ASP. La poca información que leí no me es suficiente y si me pueden ayudar se los agradecería. Saludos ;) CABEZOTA |
| ||||
Re: Usar Strore Procedures de SQL en ASP Muy buenas compañero, aquí aprenderás a usar los SP (Stored Procedures) de SQL, pues me rompí la cabeza con manuales y foros. 1.- MUY IMPORTANTE AGREGAR EL SIGUIENTE ARCHIVO AL PRINCIPIO DE LA PÁGINA ASP: <!-- #include FILE="/RUTA/adovbs.inc" -->, búscalo por tu unidad C: y lo copias en la raiz de tu portal, por ejemplo. 2.- Tienes que crear un objeto comando: Set ObjComando = Server.CreateObject("ADODB.Command") que su función es básicamente pasa usar los SP 3.- Abres la conexion con la Base Datos (BD) ObjConexion.Open "------" 4.- Copiate esto en tu pagina ASP 'esta linia te hace una conexion entre el objecto comando y BD ObjComando.ActiveConnection=ObjConexion ' que tipo de comando usas, en nuestro caso un SP ObjComando.CommandType=adCmdStoredProc ' nombre del SP ObjComando.CommandText="NOMBRE_SP" 'refrescas los parámetros ObjComando.Parameters.Refresh ' escribes los campos de los parámetros, ATENCION: empieza por 1 y no por 0 ObjComando(1) = Ucase(Request.Form("nombre_cliente")) ObjComando(2) = Ucase(Request.Form("apellido1")) ... 5.- Lo ejecutas ObjComando.Execute IMPORTANTE !!!! Para hacer inserts es obligatorio que escribas Set RS = ObjComando.Execute en vez de ObjComando.Execute Al menos yo tengo que hacer. 6.- Cierras y borras de la memoria los objectos Set RS = Nothing ' si lo has usado Set ObjComando = Nothing ObjConexion.Close Set ObjConexion = Nothing Espero haberte sido de ayuda compañero. ;) |
| ||||
Re: Usar Strore Procedures de SQL en ASP aki hay otro ejemplito...ingresa parametros de entrada y te arroja un parametro de salida. <pre> Status="001" Idtrx="105" strConnectionString ="TU_DSN" Set cn = server.createobject("ADODB.Connection") Set cmd = server.createobject("ADODB.Command") cn.ConnectionString = strConnectionString cn.Open With cmd Set .ActiveConnection = cn .CommandText = "Nombre_sp" .CommandType = 4 Set params = .Parameters End With params.Append cmd.CreateParameter("@strStatus", adVarChar, adParamInput, 3) params.Append cmd.CreateParameter("@Idtrx", adVarChar, adParamInput, 4) params.Append cmd.CreateParameter("@strMsgUser", adVarChar, adParamOutput, 255) params("@strStatus") = Status params("@Idtrx") = Idtrx cmd.Execute , , adExecuteNoRecords StrRespuesta = params("@strMsgUser") set cn= nothing set cmd= nothing </pre> Espero te ayude :P |
| |||
Re: Usar Strore Procedures de SQL en ASP Muchas gracias a todos por su ayuda sobre el tema. Si pueden ayudarme nuevamente, querría saber como debo pasar un parametro a un SP si quiero utilizarlo a este como el nombre de una tabla. EJ: CREATE PROCEDURE nombre_SP @parametro_nombre_tabla varchar(30) AS SELECT * FROM [@parametro_nombre_tabla] El problema con lo que yo hago es que no esta tomando el valor del parametro. Si saben como debería hacerlo para que funcione agradecería que me contesten. Desde ya muchas gracias. :( |
| ||||
Re: Usar Strore Procedures de SQL en ASP uuuuuuumm....sabes que nunca he ocupado una variable para preguntar por la tabla..siempre las variables ke utilizo pregunto por el dat que hay en el campo x... algo asi: <pre> CREATE PROCEDURE sp_Consultar @strStatus varchar(3), @IdTrx varchar(4), @strMsgUser varchar(255) OUTPUT as select @strMsgUser = strMsgUser from tbl_error where strIdTrx=@IdTrx and strCodigo = @strStatus GO </pre> como te daras cuenta aki hay 2 variables de entrada y una de salida pero todas estan referenciadas a campos de la tabla y no a la tabla misma.. no se si funcionara esto con tablas. |
| ||||
Re: Usar Strore Procedures de SQL en ASP jaaaaa...pero amigo victor...por ke no lo dijiste antes...el ejemplo ek te mande funciona para sql server y el sp esta hecho en sql server. la definicion en oracle es diferente y ni idea como se hara... sorry |
| ||||
Re: Usar Strore Procedures de SQL en ASP se puede...yo lo unico ke he visto es que el codigo de los sp son diferentes a los de sqlserver... la definicion de parametros de entrada y salida no se declaran de la misma forma pero como los llamara de la pagina... es algo ke nunca he visto...pero de ke se puee...se puee :P |
| |||
Re: Usar Strore Procedures de SQL en ASP Bakanzipp: Justamente eso es lo que yo quiero intentar. El usar un parametro de entrada con que yo pueda hacer referencia a la tabla que pase como parámetro. Eso lo quiero hacer para no repetir distintos SP que hagan practicamente lo mismo, reusando asi el código. Ademas tengo el problema de que necesito utilizar el comando DROP TABLE dentro de un SP y en donde si o si el nombre de la tabla que se borra tengo que pasarla como parámetro al SP. Si alguien sabe como es que se hace esto se lo agradecería porque como yo intento hacerlo me da error. :( |
| |||
Re: Usar Strore Procedures de SQL en ASP YA TENGO LA SOLUCIÓN AL FIN !!! Como siempre pasa era un tontería el problema. Lo que se debe hacer para utilizar un parametro para hacer referencia a una tabla dentro de un Stored Procedure de SQL es utilizar el comando EXEC y concatenar la sentencia SQL que se desee utilizar con el parametro que contiene el nombre de la tabla. Les paso un ejemplo: CREATE PROCEDURE SP_consultar_tabla (@nombre_tabla varchar(30)) AS EXEC('SELECT * FROM [' + @nombre_tabla + ']) Espero que les sirva de algo ! Saludos. CABEZOTA ;) |