Comment faire pour exécuter une procédure stockée sur SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 114787 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

À l'aide SQLExec () fonction de Visual FoxPro ou DBExec () fonction du Kit de connectivité de 2.x FoxPro, vous pouvez exécuter une procédure stockée SQL Server.

Plus d'informations

Les étapes suivantes décrivent comment créer une procédure stockée sur Microsoft SQL Server ; ces informations a été présentées sous la forme d'une question de commodité et ne sont pas pris en charge par les services de support technique de FoxPro. Si vous avez des questions concernant la création, la syntaxe ou la fonctionnalité de procédures stockées, reportez-vous à la commande CREATE PROCEDURE dans le «Référence» de SQL Server ou contactez le support technique de SQL Server. Les commandes pour créer la procédure stockée peuvent également être exécutées avec la fonction SQLExec à partir de Visual FoxPro ou la fonction () DBExec à partir de FoxPro 2.x. La procédure définie une procédure stockée sur SQL Server et expliquez comment vous exécutez la procédure stockée à partir de dans Visual FoxPro ou à partir de FoxPro 2.x à l'aide du Kit de connectivité.

Configuration d'une procédure stockée sur SQL Server 7.0

  1. Dans le menu programmes sélectionnez Microsoft SQL Server 7.0, puis cliquez sur Analyseur de requêtes.
  2. Se connecter à votre serveur.
  3. Choisissez les base de données dans la base de données de liste déroulante de pubs.
  4. Type dans la procédure suivante :
    create procedure showsales @parm1 char(4)
    as
    select * from sales where stor_id=@parm1
    					
  5. Dans le menu fichier, choisissez Enregistrer sous et enregistrez la procédure en tant que STOR_PRC.SQL.
    • Cliquez sur le bouton exécuter.

Définition de FoxPro pour exécuter une procédure stockée

Exécuter un des programmes suivants, selon votre version de FoxPro.

FoxPro 2.x code :

   *****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
				
Notez que le programme renvoie les enregistrements de deux ont le stor_id 7066.

Code 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
				
Notez que le programme renvoie les enregistrements de deux ont le stor_id 7066.

Propriétés

Numéro d'article: 114787 - Dernière mise à jour: mardi 22 février 2005 - Version: 2.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual FoxPro 3.0 Édition Standard
  • Microsoft Visual FoxPro 5.0 Édition standard
  • Microsoft Visual FoxPro 6.0 Édition Professionnelle
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.6 Édition standard
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.6 pour MS-DOS
Mots-clés : 
kbmt kbcode kbhowto kbinterop KB114787 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 114787
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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