|
SQL SERVER - Procédure stockée avec SELECT |
Started by Dominique MOUNIER-PO, Sep., 05 2013 10:25 AM - 8 replies |
| |
| | | |
|
| |
Registered member 15 messages |
|
Posted on September, 05 2013 - 10:25 AM |
Bonjour, Je dois exécuter une procédure stockée sur un serveur SQL sans utiliser l'accès Natif et qui retourne un résultat en forme de liste (SELECT). Je n'ai pas accès à la base, uniquement à l'exécution de la procédure stockée. Quelqu'un peut-il m'aider ??? je suis dans une impasse.
-- Dominique |
| |
| |
| | | |
|
| | |
| |
Registered member 25 messages Popularité : +1 (1 vote) |
|
Posted on September, 05 2013 - 11:36 AM |
Bonjour,
j'avais déjà essayé de récupérer les paramètres de sorties sur une proc stockée SQL server. Malheureusement sans accès natif, je crois bien que ce n'est pas possible.
Je te donne tout de même une piste avec les fonctions SQLPremier et SQLCOL que tu peux utiliser. Voici un bout de code pour exemple si ça peut te mettre sur la bonne voie :
TexteReq="DECLARE @return_value int, @lotTraites int, @cmdTraites int, @dateSortie date "+RC+" EXEC@return_value =PREPARATION_COMMANDES "+RC+" @date = '"+FEN_principale.gsDateCourante+"', @lotTraites = @lotTraites OUTPUT,@cmdTraites = @cmdTraites OUTPUT, @dateSortie = @dateSortie OUTPUT "+RC+" SELECT@lotTraites as N'@lotTraites',@cmdTraites as N'@cmdTraites', @dateSortie as N'dateSortie' "+RC+"SELECT'Return Value' = @return_value"
SQLConnecte("server","user","password","database","OLEDB",hOledbSQLServer) SI SQLExec(TexteReq,"test") ALORS SQLPremier("test") Trace(SQLCol("test",1))
SINON Info(HErreurInfo()) RENVOYER(Faux) FIN Bonne journée, |
| |
| |
| | | |
|
| | |
| |
Registered member 15 messages |
|
Posted on September, 05 2013 - 1:17 PM |
Merci beaucoup pour ta réponse. J'ai trouvé la solution entre temps en utilisant un code proche du tien mais en utilisant la fonction SQLTABLE.
Exemple de code:
TableSupprimeTout(TABLE_ResRequete)
// Connexion SQL SERVER nNumConnexion = SQLConnecte(sServer,sUser,sPassword,sDataBase,"OLEDB",hOledbSQLServer) SI nNumConnexion <> 0 ALORS
sSQLRequete est une chaîne = "MaProcedureStockee '"+ParametreProcedure+"'" SI SQLExec(sSQLRequete,"REQ1") ALORS SQLTable("REQ1",TABLE_ResRequete) SINON SQLInfoGene("REQ1") Info("Erreur SQL : " + SQL.MesErreur) FIN SQLFerme("REQ1") SINON // La connexion a échoué : affichage d'un message explicatif SQLInfoGene() Erreur("La connexion à la source de données" + sDataBase + ... "a échoué."+ RC +... "Code erreur : " + SQL.Erreur + RC + SQL.MesErreur) FIN
SQLDéconnecte()
-- Dominique |
| |
| |
| | | |
|
| | |
| |
Registered member 25 messages Popularité : +1 (1 vote) |
|
Posted on September, 05 2013 - 1:24 PM |
c'est cool !
Merci de ton partage, cela me servira très probablement dans mes futurs projets. |
| |
| |
| | | |
|
| | |
| |
Registered member 6 messages |
|
Posted on April, 19 2019 - 5:57 PM |
Bonjour Dominique, J'utilise la même méthode que vous pour exécuter une procédure stockée sur SQL Server mais je ne parviens pas à récupérer les résultats... Je sèche depuis 2 jours...Auriez-vous une idée ? |
| |
| |
| | | |
|
| | |
| |
Posted on August, 21 2019 - 10:29 PM |
Dominique MOUNIER-PO avez-vous trouvez une solution ? Je sèche dessus depuis un moment. J'aurai voulu pouvoir lire ligne par ligne le résultat sans afficher dans une table. Un peu comme avec Hlitpremier et Hlitsuivant |
| |
| |
| | | |
|
| | |
| |
Posted on August, 21 2019 - 11:26 PM |
//i est un entier = 0 //SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1") //// Récupérer la requête ligne à ligne //TANTQUE SQLAvance("REQ1") = 0 // Il y a encore une ligne à lire // i++ // // Récupérer les données // NOM[i] = SQLLitCol("REQ1", 1) // PRENOM[i] = SQLLitCol("REQ1", 2) // POSTE[i] = SQLLitCol("REQ1", 3) //FIN //SQLFerme("REQ1") |
| |
| |
| | | |
|
| | |
| |
Registered member 14 messages |
|
Posted on August, 21 2019 - 11:30 PM |
Jean-Luc P. Je pense avoir trouver la solution pour ton problème
//i est un entier = 0 //SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1") //// Récupérer la requête ligne à ligne //TANTQUE SQLAvance("REQ1") = 0 // Il y a encore une ligne à lire // i++ // // Récupérer les données // NOM[i] = SQLLitCol("REQ1", 1) // PRENOM[i] = SQLLitCol("REQ1", 2) // POSTE[i] = SQLLitCol("REQ1", 3) //FIN //SQLFerme("REQ1")
-- AFRICA SERVICE |
| |
| |
| | | |
|
| | |
| |
Registered member 65 messages |
|
Posted on March, 15 2021 - 4:15 PM |
DMP a écrit :
Merci beaucoup pour ta réponse. J'ai trouvé la solution entre temps en utilisant un code proche du tien mais en utilisant la fonction SQLTABLE.
Exemple de code:
TableSupprimeTout(TABLE_ResRequete)
// Connexion SQL SERVER nNumConnexion = SQLConnecte(sServer,sUser,sPassword,sDataBase,"OLEDB",hOledbSQLServer) SI nNumConnexion <> 0 ALORS
sSQLRequete est une chaîne = "MaProcedureStockee '"+ParametreProcedure+"'" SI SQLExec(sSQLRequete,"REQ1") ALORS SQLTable("REQ1",TABLE_ResRequete) SINON SQLInfoGene("REQ1") Info("Erreur SQL : " + SQL.MesErreur) FIN SQLFerme("REQ1")
SINON // La connexion a échoué : affichage d'un message explicatif SQLInfoGene() Erreur("La connexion à la source de données" + sDataBase + ... "a échoué."+ RC +... "Code erreur : " + SQL.Erreur + RC + SQL.MesErreur) FIN
SQLDéconnecte()
-- Dominique
Merci pour ce partage car je galère en ce moment sur ce sujet
Au niveau de ta Variable (MaProcedureStockee ) c'est le nom de ta procédure sur SQL SERVER ?
Quelle syntaxe pour le passage des paramètres dans ta variable (ParametreProcedure), en effet si il y en a plusieurs, je ne vois pas trop comment faire.
D'avance merci
-- Aurélien MACHABERT Développeur Chez GAUTHIER Menuiserie |
| |
| |
| | | |
|
| | | | |
| | |
|