puedo hacer que un procedimiento almacenado me devuelva un valor a una aplicacion corriendo en VBA ???

03/12/2004 - 09:30 por .·:m·a·r·l·a:·. | Informe spam
hola a todos

tengo creado un procedimiento almacenado que me da de alta los clientes,
este, entre otras formas, es llamado desde una aplicaicion VBA en excell
para automatizar el proceso cuando recibo clientes por hojas de excel

actualmente cada vez que el procedimiento es llamado, creo el cliente y ya
esta, mi intencion es que este a su vez devolviera el numero de cliente que
ha generado (este se genera segun determinadas reglas), por ejemplo para
mostrarlo en la aplicacion

el procedimiento es tal que (un pequeño resumen):

CREATE PROCEDURE dbo.EntityNEW @Name as char(40),
...
@Country
as char(50),
@Town as
char(30),
@Street
as char(30),
...
@Format
as char(40),
...
AS

DECLARE @MISid as char(15) // variable donde voy generando el id

... //busqueda de codigos, generacion del identificador, bla bla bla

SET @MISid = @Country_forMISid + @BA_forMISid + @Type_forMISid +
@Format_forMISid + @MISid_last5

... //inserciones en tablas del SQL-server el cliente y otros valores

GO



y la funcion con la que lo llamo tal que:

QueryString = "dbo.EntityNEW " + "'" + var_Name + + var_Country +
"','" + var_Town + "','" + var_Street + ... + var_Format + ... + "'"
If var_execute_insertion Then objConnSQLMIS.Execute (QueryString)



puede acerse esto, y en tal caso, que he de modificar en el procedimiento
alamacenado y como cojo el valor en la funcion VBA ??
he intentado buscar en la ayuda y en los BOL pero no he encontrado nada que
me oriente

gracias por adelantado

Preguntas similare

Leer las respuestas

#6 Maxi
03/12/2004 - 13:59 | Informe spam
ops, lei mal entonces :( mil disculpas

pd: se nota que es viernes la pucha jeje




Salu2
Maxi


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
Mostrar la cita
#7 .·:m·a·r·l·a:·.
03/12/2004 - 14:04 | Informe spam
a ambos, el problema no es el id, este lo genero segun determinadas reglas
(por que si, politica de empresa que no quieren simples numeros para el
identificador), mi problema es como saco de nuevo ese numero a la aplicacion
que llamo al procedimiento

buscando he encontrado que puedo hacer el procedimiento tal que: (añadiendo
una variable y marcandola como OUTPUT)

CREATE PROCEDURE dbo.EntityNEW @Name as char(40),
...
@Country
as char(50),
@Town as
char(30),
@Street
as char(30),
...
@Format
as char(40),
...

@Var_salida as char(15) OUTPUT
AS

DECLARE @MISid as char(15) // variable donde voy generando el id

... //busqueda de codigos, generacion del identificador, bla bla bla

SET @MISid = @Country_forMISid + @BA_forMISid + @Type_forMISid +
@Format_forMISid + @MISid_last5

... //inserciones en tablas del SQL-server el cliente y otros valores

SET @Var_salida = 'lo_que_quiera'

GO



mi duda es pues, como debo modificar la funcion (en excel, VBA) que llama a
este procedimiento ??


QueryString = "dbo.EntityNEW " + "'" + var_Name + + var_Country +
"','" + var_Town + "','" + var_Street + ... + var_Format + ... + "'"
If var_execute_insertion Then objConnSQLMIS.Execute (QueryString)


gracias a ambos



"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> wrote in message
news:%
Mostrar la cita
te
Mostrar la cita
http://www.microsoft.com/spanish/ms...art187.asp
Mostrar la cita
clientes,
Mostrar la cita
excell
Mostrar la cita
y
Mostrar la cita
cliente
Mostrar la cita
para
Mostrar la cita
@Town
Mostrar la cita
...
Mostrar la cita
var_Country
Mostrar la cita
+
Mostrar la cita
nada
Mostrar la cita
#8 Carlos Sacristán
03/12/2004 - 14:55 | Informe spam
Esto sería un ejemplo de cómo ejecutar un procedimiento almacenado con
un parámetro de salida desde código VB. Modificándolo un poco lo puedes
adaptar a lo que necesitas

****************************************************************************
****

Sub mostrarParametroSalida()
Dim adoConn As ADODB.Connection
Dim adoCmd As ADODB.Command
Dim adoPar1 As ADODB.Parameter
Dim adoParS As ADODB.Parameter

Set adoConn = New ADODB.Connection

adoConn.Provider = "SQLOLEDB"

adoConn.Open
"Server=nombreServer;UID=usuario;PWD=contraseña;Database=baseDeDatos;"

Dim i As Integer, t As Variant



Set adoCmd = New ADODB.Command
adoCmd.CommandType = adCmdStoredProc

adoCmd.CommandText = "nombreDelProcedimiento"

Set adoCmd.ActiveConnection = adoConn

Set adoPar1 = adoCmd.CreateParameter("@param1", adInteger,
adParamInput)
...
...
Set adoParS = adoCmd.CreateParameter("@m", adVarchar,adParamOutput)

adoCmd.Parameters.Append adoPar1
adoCmd.Parameters.Append adoParM

adoPar1.Value = valorParametro1
adoCmd.Execute , , adExecuteNoRecords

Debug.Print "Valor parámetro de salida", adoParS.Value


Set adoPar1 = Nothing
Set adoParS = Nothing
Set adoCmd = Nothing


adoConn.Close
Set adoConn = Nothing
End Sub

****************************************************************************
****

Espero te sirva



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

".·:m·a·r·l·a:·." escribió en el mensaje
news:
Mostrar la cita
aplicacion
Mostrar la cita
(añadiendo
Mostrar la cita
@Country
Mostrar la cita
as
Mostrar la cita
@Street
Mostrar la cita
@Format
Mostrar la cita
a
Mostrar la cita
"'"
Mostrar la cita
excel
Mostrar la cita
cliente
Mostrar la cita
...
Mostrar la cita
...
Mostrar la cita
valores
Mostrar la cita
#9 .·:m·a·r·l·a:·.
03/12/2004 - 15:04 | Informe spam
muchas gracias, a esto es lo que me referia

aunque es un poco mas complejo de lo que creia

me pondre en un rato a implementarlo

gracias de nuevo


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> wrote in message
news:OIMfc$
Mostrar la cita
****************************************************************************
Mostrar la cita
adVarchar,adParamOutput)
Mostrar la cita
****************************************************************************
Mostrar la cita
reglas
Mostrar la cita
@Town
Mostrar la cita
llama
Mostrar la cita
+
Mostrar la cita
cual
Mostrar la cita
estas
Mostrar la cita
http://www.microsoft.com/spanish/ms...art187.asp
Mostrar la cita
ejemplo
Mostrar la cita
id
Mostrar la cita
bla
Mostrar la cita
...
Mostrar la cita
Ads by Google
Search Busqueda sugerida