Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
514 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB/VBA] Comment exécuter des procédures stockées SQL Server

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB/VBA] Comment exécuter des procédures stockées SQL Server

n°546101
Yoyo@
Posté le 21-10-2003 à 14:07:07  profilanswer
 

Salut!
 
Je souhaite migrer d'une appli Accessn sur Base de Données Access en la même appli Access, mais attaquant une base de données SQL Server!
 
Au début, je me suis contenté d'utiliser des tables liées Access->SQL Server(via ODBC). Ca marche, mais c'est vraiment lent!
 
Je veux donc utiliser une vraie techno Client/Server
 
Pour exécuter des requetes (genre Update) sur le server, j'ai constaté que de les envoyer via ODBCDirect reste le plus rapide :
 

Code :
  1. Dim wrkODBC As Workspace
  2. Dim myDb As Database
  3.  
  4. Set wrkODBC = CreateWorkspace("ODBCWorkspace", "sa", "", dbUseODBC)
  5. Workspaces.Append wrkODBC
  6. Set myDb = wrkODBC.OpenDatabase("", False, False, "ODBC;Driver={SQL Server};Server=(local);Database=TestDB" )
  7.   myDb.Execute "UPDATE ..."


 
Par contre, j'aimerais aussi pouvoir exécuter des Procédures Stokées SQLServer, avec des paramètres en sortie et une valeur de retour... Comment je pourrais faire?
 
Je suis un peu perdu dans toutes les technos disponibles (ADO? DAO? OLE DB, etc...), j'en ai essayé quelques unes pour exécuter des requêtes envoyées au serveur, mais j'aimerais en trouver une qui marche pour tous mes besoins et qui soit rapide! Est ce que la solution est ADO? Ou alors, j'ai intéret à mixer Les technologies?
 
Merci pour votre aide

mood
Publicité
Posté le 21-10-2003 à 14:07:07  profilanswer
 

n°546334
drasche
Posté le 21-10-2003 à 17:13:26  profilanswer
 

ADO. Jette un oeil sur l'objet Command, je pense que c'est ce que tu cherches.

n°546359
skyw4lkr
Posté le 21-10-2003 à 17:57:54  profilanswer
 

   Dim lcmd             As New ADODB.Command
   Dim lrs              As New ADODB.Recordset
 
    ' Récupération des informations :
    With lcmd
        Set .ActiveConnection = mTechnique.U.bddConnection
        .CommandType = adCmdStoredProc
        .CommandText = "MA_PROCEDURE_STOCKEE"
        .Parameters.Append .CreateParameter("@PARAMETRE1", _
                                                adInteger, _
                                                adParamInput, _
                                                , _
                                                VALEURPARAMETRE1)
        .Parameters.Append .CreateParameter("@PARAMETRE2", _
                                                adInteger, _
                                                adParamInput, _
                                                , _
                                                VALEURPARAMETRE2)
        ' ...
        .Parameters.Append .CreateParameter("@PARAMETREN", _
                                                adInteger, _
                                                adParamInput, _
                                                , _
                                                VALEURPARAMETREN)
       ' Executer simplement :
       .Execute
 
       ' ou
       ' Mettre dans un recordset :
       Set lrs = .Execute
 
    End With
    Set lcmd = Nothing

n°546767
tegu
Posté le 22-10-2003 à 09:22:36  profilanswer
 

De mémoire tu dois pouvoir créer une requete Access de type SQL Direct.
La syntaxe de cette requete contient juste le nom de la procédure stockée SQL Serveur et ses paramètres.
Une propriété de cette requete permet de dire si celle ci est sensée renvoyer des enregistrements.
 
J'avais fait ça avec Access 97, je ne sais pas quelles modifications/améliorations ont pu être apportées depuis
 
a+

n°549908
Yoyo@
Posté le 24-10-2003 à 17:50:28  profilanswer
 

Merci!
 
J4ai pas mal fait le tour de ADO, et c'est ce qu'il me faut : très rapide (meme plus rapide que ODBCDirect) et très flexible (possibilité de passer des paramètres In et Out, possibilité de récupérer la aleur de retour d'un procédure stockée)
 
Voilà!
 
Pour continuer de convertir mon appli en utilisant SQLServer comme source donnée (avec ADO donc), j'ai besoin de remplir des ListBox à partir de requêtes sur mes tables SQLServer!
 
Comment est ce que je pourrais m'y prendre? Je n'ai pas réussi à trouver de réponse sur le Web, et toutes les syntaxes que j'ai pu essayer ne marchent pas.
 
Merci :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB/VBA] Comment exécuter des procédures stockées SQL Server

 

Sujets relatifs
[VBA-OLE]Pb pour changer l'imprimante active de WordProbleme de recordset en ASP/SQL [Rezolu]
Probleme avec une requete SQL: je ne sais pas comment faire...!SQL besoin d'un coup de main sur une requete svp (och).
[Sql] Buffer overflowJ'ai un soucis de PHP ou de SQL avec mon site
[ASP.NET] Ma commande SQL INSERT INTO ne fonctionne pas !Ma commande SQL INSERT INTO ne fonctionne pas !
[SQL] Opération sur des masques binairessous VBA comment répondre "non" à la confirmation d'enregistrement ?
Plus de sujets relatifs à : [VB/VBA] Comment exécuter des procédures stockées SQL Server


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR