El post que buscas se encuentra eliminado, pero este también te puede interesar

Store Procedure - Manejo desde SQL Server y VB 6.0

Store Procedure


Ejemplos de Store Procedure


1) Los Store Procedures (o Procedimientos almacenados) la función que cumplen es de guardar una consulta de SQL. Para realizar un store, como primer paso deberán ir al Administrador Corporativo de Sql Server.

Este primer ejemplo demuestra como se actualizan los datos de la tabla "Proveedores" de una base de datos de Sql Server 2000, lo que hace en primera instancia es declarar los parámetros junto con su tipo y tamaño, luego entra por una condición que verifica si el proveedor ingresado existe, si existe, modifica los datos de dicho proveedor ingresado, de lo contrario agrega uno nuevo.

CREATE PROCEDURE sp_ProvActu
@pidProv INT,
@pDes VARCHAR(30),
@pDomicilio VARCHAR(25),
@pCodPos VARCHAR(10),
@pLocalidad VARCHAR(25), <---------------------------- Declaración de Parámetros
@pProvincia VARCHAR(25),
@pCUIT VARCHAR(11),
@pTel1 VARCHAR(15)
AS
IF EXISTS(SELECT idProv FROM Proveedores WHERE idProv=@pidProv)
BEGIN
UPDATE Proveedores SET

idProv=@pidProv,
Des=@pDes,
Domicilio=@pDomicilio,
CodPos=@pCodPos,
Localidad=@pLocalidad, <---------------------------- UPDATE a la tabla "Proveedores" de la base de datos
Provincia=@pProvincia,
CUIT=@pCUIT,
Tel1=@pTel1
WHERE idProv=@pidProv
END
ELSE
BEGIN
INSERT INTO Proveedores

(idProv,Des,Domicilio,CodPos,Localidad,Provincia,CUIT,Tel1,Tel2,EsProductivo)
VALUES (
@pidProv,
@pDes,
@pDomicilio,
@pCodPos, <---------------------------- INSERT a la tabla "Proveedores" de la base de datos
@pLocalidad,
@pProvincia,
@pCUIT,
@pTel1
END

2) Este es otro ejemplo de Store, en el cual se realiza una consulta a la tabla "Proveedores" recibiendo un parámetro desde VB 6.0 como en el ejemplo anterior. En este caso se está buscando por Identificación del Proveedor o Id, si el dato del parámetro recibido es NULL (Nulo) el store traerá directamente todos los campos de esa tabla, de lo contrario solamente va a traer el dato que coincida con algun Id almacenado en la base de datos y el dato ingresado.

CREATE PROCEDURE sp_ProvCons
@pidProv INT=NULL
AS
IF @pidProv=NULL
BEGIN
SELECT
* FROM Proveedores
END
ELSE
BEGIN

SELECT * FROM Proveedores WHERE idProv=@pidProv
END

3) Bueno en este caso se especifica un store para dar de baja (eliminar un proveedor). De esta forma se realizarán bajas FISICAS, no lógicas. Para realizar una baja lógica deberán ingresar un campo mas en la tabla deseada, por ejemplo con el nombre "Estado" y realizar un store solamente para modificar ese dato, como podría ser que si el estado es 1: se encuentra habilitado o activo, 2: Deshabilitado u Bloqueado y luego cuando muestran los datos, que solamente se muestren los datos deseados por estado.

CREATE PROCEDURE sp_ProvElim @pidProv INT
AS
DELETE FROM
Proveedores WHERE idProv=@pidProv
IF @@ERROR<>0
BEGIN
PRINT "Se Produjeron errores al intentar eliminar el registro"
RETURN(99)
END


4) Prueba de un STORE PROCEDURE (Analizador de Consultas o Query Analyzer)


EXEC SP_PROVACTU 111, 'COCA COLA'......


Copia de Seguridad de la B/D: (Administrador Corporativo)

- Botón Derecho sobre la B/D; Todas las Tareas; Copia de Seguridad de la B/D


Cadena de Conexión de Visual Basic a SQL


5) Lo que sigue a continuación sería bueno que lo "transformen" en una función y luego que lo llamen cada vez que lo necesiten, asi no tienen que hacer copy y paste del código.

Dim lCn As ADODB.Connection
Dim liMousePointer As Integer
Dim lsCadConexion As String

Set lCn = New ADODB.Connection

lsCadConexion = ""

If psUserID <> "" Then
lsCadConexion = lsCadConexion & ";User ID=" & psUserID
Else
lsCadConexion = lsCadConexion & ";User ID=sa"
End If
If psPassword <> "" Then
lsCadConexion = lsCadConexion & ";password=" & psPassword
End If

(cadena de conexión de SQL SERVER 2000 Y VB 6.0)
lCn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=WinLab;Data Source=" & psServerName & lsCadConexion

Global goCn As ADODB.Connection <------------ Conexion a Servidor con ADO

lCn.Open

Ejecución de un Store Procedure desde Visual Basic


6) Lo que está a continuación, es el código que iría en el VB 6.0, para cada caso o ejemplo.

Dim lrs as ADODB.RecordSet
Private mCmd As ADODB.Command
Set mCmd = New ADODB.Command

Dim lpar As ADODB.Parameter

Set lpar = mCmd.CreateParameter(psNombreParametro, psTipodeDato, pTipoParametro, piLong, pvValor)
‘Ejemplo "pidProv", CLng(STx_idProv), adInteger, 4
mCmd.Parameters.Append lpar


-------------------- INSERT ---------------------------
With mCmd
Set .ActiveConnection = goCn
.CommandType = adCmdStoredProc
.CommandTimeout = gConstCommandTimeout
.CommandText = SPName
.Execute
End With



-------------------- SELECT ---------------------------
With mCmd
Set .ActiveConnection = goCn
.CommandType = adCmdStoredProc
.CommandTimeout = gConstCommandTimeout
.CommandText = SPName
End With

Set lrs = mCmd.Execute


Chicos si tienen alguna consulta, no duden en preguntar .....

Anuncios

5 comentarios - Store Procedure - Manejo desde SQL Server y VB 6.0

@tauter
Gracias me sirvio bastante lastima que no tenga puntos
@Azzlaer
a ver la info esta muy buena pero mandate unas imagenes asi no queda tan pobre el post pero la info muy buena
@Patocs2
TE DEJO +5 POR PORQUE ESTA BUENO QUE SE SUBAN ESTA CLASE DE COSAS