Cómo ejecutar un procedimiento almacenado en SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 114787 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Mediante SQLExec () función Visual FoxPro o función del Kit de FoxPro 2.x conectividad DBExec (), puede ejecutar un procedimiento almacenado de SQL Server.

Más información

Los pasos siguientes describen cómo crear un procedimiento almacenado en Microsoft SQL Server; esta información se presenta como una cuestión de comodidad y no es compatible con soporte técnico de FoxPro. Para preguntas relativos a la creación, la sintaxis o la funcionalidad de los procedimientos almacenados, consulte el comando CREATE PROCEDURE en la "Referencia del lenguaje" de SQL Server o póngase en contacto con el servicio de soporte técnico de SQL Server. También se pueden ejecutar los comandos para crear el procedimiento almacenado con la función SQLExec desde Visual FoxPro o la función de () DBExec de FoxPro 2.x. Los pasos configurar un procedimiento almacenado en SQL Server y, a continuación, explican cómo ejecutar el procedimiento almacenado desde dentro de Visual FoxPro o de FoxPro 2.x con el Kit de conectividad.

Configuración de un procedimiento almacenado en SQL Server 7.0

  1. En el menú programas seleccione Microsoft SQL Server 7.0 y, a continuación, elija Analizador de consultas .
  2. Conectarse al servidor.
  3. Elija los desplegable de la base de datos en la base de datos de pubs.
  4. Tipo en el siguiente procedimiento:
    create procedure showsales @parm1 char(4)
    as
    select * from sales where stor_id=@parm1
    					
  5. En el menú archivo , elija Guardar como y guarde el procedimiento como STOR_PRC.SQL.
    • Haga clic en el botón Ejecutar .

Configuración de FoxPro para ejecutar un procedimiento almacenado

Ejecutar uno de los programas siguientes, dependiendo de la versión de FoxPro.

Código de FoxPro 2.x:

   *****SET THE LIBRARY AND INITIALIZE VARS
   IF _DOS
      SET LIBRARY TO SYS(2004)+"fpsql.plb"
   ELSE
      SET LIBRARY TO SYS(2004)+"fpsql.fll"
   ENDIF
   PUBLIC errval
   PUBLIC errmsg
   PUBLIC handle
   errval=0
   errmsg=' '
   sourcename= 'test'
   user= 'sa'
   passwd=''

   ********CONNECT

   handle=DBConnect(sourcename,user,passwd)
   IF handle > 0
      WAIT WINDOW 'Successfully Connected' NOWAIT
   ELSE
      error=DBError(0,@errmsg,@errval)
      WAIT WINDOW STR(error)+' '+STR(errval)+' '+errmsg
   ENDIF

   =DBSetOpt(handle,'Asynchronous',0)
   =DBSetOpt(handle,'BatchMode',1)
   =DBSetOpt(handle,'ConnTimeout',0)
   =DBSetOpt(handle,'Transact',1)
   =DBSetOpt(handle,'UseTable',0)

   err=DBExec(handle,'use pubs')
   DO errhand WITH err,'USE PUBS'

   **********THIS PROGRAM DEMOs HOW TO IMPLEMENT SQL WITH
   **********THE DBExec() FUNCTION

   sqlcomm= "execute showsales '7066'"
   err=DBExec(handle,sqlcomm)
   DO errhand WITH err,"DBExec(handle,"+sqlcomm+")"
   IF err > 0
      BROWSE
   ENDIF

   **********DISCONNECT
   err=DBDisconn(handle)
   DO errhand WITH err,"DBDisconn()"
   SET LIBRARY TO
   CLOSE ALL

   **********Error Handler Program
   PROCEDURE errhand
   PARAMETERS err,command
   IF err > 0
     WAIT WINDOW ALLTRIM(UPPER(command))+"Completed Successfully";
     NOWAIT
   ELSE
     WAIT WINDOW UPPER(command)+"NOT Completed Successfully"
     error=DBError(handle,@errmsg,@errval)
     WAIT WINDOW STR(error)+" "+STR(errval)+" "+errmsg
   ENDIF
   RETURN
				
Observe que el programa devuelve los dos registros 7066 como el stor_id.

Código de Visual FoxPro:

   PUBLIC errval
   PUBLIC errmsg
   PUBLIC handle
   errval=0
   errmsg=' '
   sourcename= 'test'
   user= 'sa'
   passwd=''

   ********CONNECT

   * Turning on error display for connections
    =SQLSetProp(0,"DispWarning",.t.)

   handle=SQLConnect(sourcename,user,passwd)
   IF handle > 0
      WAIT WINDOW 'Successfully Connected' NOWAIT
   ENDIF

   ********Set some defaults
   =SQLSetProp(handle,'Asynchronous',.f.)
   =SQLSetProp(handle,'BatchMode',.t.)
   =SQLSetProp(handle,'ConnectTimeOut',0)
   =SQLSetProp(handle,'Transactions',1)


   err=SQLExec(handle,'use pubs')
   DO errhand WITH err,'USE PUBS'

   **********THIS PROGRAM DEMOs HOW TO IMPLEMENT SQL WITH
   **********THE SQLExec() FUNCTION

   sqlcomm= "execute showsales '7066'"
   err=SQLExec(handle,sqlcomm)
   DO errhand WITH err,"SQLExec(handle,"+sqlcomm+")"
   IF err > 0
      BROWSE
   ENDIF

   **********DISCONNECT
   err=SQLDisconnect(handle)
   DO errhand WITH err,"SQLDisconnect()"
   CLOSE ALL

   **********Error Handler Program
   PROCEDURE errhand
   PARAMETERS err,command
   IF err > 0
     WAIT WINDOW ALLTRIM(UPPER(command))+"Completed Successfully";
     NOWAIT
   ELSE
     WAIT WINDOW UPPER(command)+"NOT Completed Successfully"
   ENDIF
   RETURN
				
Observe que el programa devuelve los dos registros 7066 como el stor_id.

Propiedades

Id. de artículo: 114787 - Última revisión: martes, 22 de febrero de 2005 - Versión: 2.4
La información de este artículo se refiere a:
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 6.0 Professional Edition
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.6 Standard Edition
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.6 para MS-DOS
Palabras clave: 
kbmt kbcode kbhowto kbinterop KB114787 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 114787

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com