|
Procédure stockée SQL Server via RPC de PC-Soft |
Started by B. Neve, Nov., 14 2008 11:54 AM - 2 replies |
| |
| | | |
|
| |
Posted on November, 14 2008 - 11:54 AM |
Bonjour,
Nous réalisons un projet sur PDA qui doit alimenter en temps réel une base de données sous SQL Server. Nous avons installé sur un serveur le module RPC de PC-Soft. Nous faisons la connexion et lançons nos requêtes. Nous avons un gros problème de temps de réponse. Qui fait que chaque scan demande à peu près 5 secondes pour que toute les opérations soient effectuées. Pour contourner la problème, nous avons voulu exécuter l'ensemble des procédures dans une procédure stockée SQL.
Le code est le suivant :
sdMaRequete est une Source de Données
sdMaRequete.p1 = 1
sdMaRequete.p2 = 6
sdMaRequete.p3 = 25
sdMaRequete.p4 = 1
sdMaRequete.p5 = 1
sdMaRequete.p6 = 1
LaRequete est une chaîne = "PICK_QTY @p1, @p2, @p3, @p4, @p5, @p6"
SI PAS HExécuteRequêteSQL(sdMaRequete,gcnxMaConnexion,hRequêteSansCorrection,LaRequete) ALORS
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration(sdMaRequete)
Le temps de réponse devient correct MAIS... Nous nous rendons compte que la procédure est exécutée deux fois ! Cette procédure mettant à jour la quantité préparée, nous nous retrouvons avec une double incrémentation...
Avez-vous déjà rencontré ce problème dramatique ? Si oui, avez-vous trouvé une solution ?
Merci d'avance pour vos réponses. |
| |
| |
| | | |
|
| | |
| |
Posted on November, 14 2008 - 12:43 PM |
Bonjour, Pour faire ce genre de chose, je préfère passer par un WebService. De cette façon, je n'ai aucun problème de temps de réponse, de driver ODBC... et je peux mettre pas mal de traitments dans les procédures du WebService, ce qui permet de déporter une partie des traitements sur le serveur. De plus, le langage de Windev permet de faire plus de choses que les procédures stockées.
Frédéric. "B. Neve" <bne@dagico.com> a écrit dans le message de news:491d430b$1@news.pcsoft.fr...
Bonjour,
Nous réalisons un projet sur PDA qui doit alimenter en temps réel une base de données sous SQL Server. Nous avons installé sur un serveur le module RPC de PC-Soft. Nous faisons
la
connexion et lançons nos requêtes. Nous avons un gros problème de temps de réponse. Qui fait que chaque scan demande à peu près 5 secondes pour que toute les opérations soient effectuées. Pour contourner la problème, nous avons voulu exécuter l'ensemble des procédures dans une procédure stockée SQL.
Le code est le suivant :
sdMaRequete est une Source de Données
sdMaRequete.p1 = 1
sdMaRequete.p2 = 6
sdMaRequete.p3 = 25
sdMaRequete.p4 = 1
sdMaRequete.p5 = 1
sdMaRequete.p6 = 1
LaRequete est une chaîne = "PICK_QTY @p1, @p2, @p3, @p4, @p5, @p6"
SI PAS
HExécuteRequêteSQL(sdMaRequete,gcnxMaConnexion,hRequêteSansCorrection,LaRequ ete)
ALORS
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration(sdMaRequete)
Le temps de réponse devient correct MAIS... Nous nous rendons compte que la
procédure est exécutée deux fois ! Cette procédure mettant à jour la quantité préparée, nous nous retrouvons avec une double incrémentation...
Avez-vous déjà rencontré ce problème dramatique ? Si oui, avez-vous trouvé une solution ?
Merci d'avance pour vos réponses.
|
| |
| |
| | | |
|
| | |
| |
Posted on November, 14 2008 - 4:44 PM |
Merci, nous allons étudier cette voie...
B. Neve "Frédéric DEMILLY" <f.demilly@pacificpeche.fr> a écrit dans le message de news:491d55a7$1@news.pcsoft.fr...
Bonjour, Pour faire ce genre de chose, je préfère passer par un WebService. De cette façon, je n'ai aucun problème de temps de réponse, de driver ODBC... et je peux mettre pas mal de traitments dans les procédures du WebService, ce qui permet de déporter une partie des traitements sur le serveur. De plus, le langage de Windev permet de faire plus de choses que les procédures stockées. Frédéric. "B. Neve" <bne@dagico.com> a écrit dans le message de news:491d430b$1@news.pcsoft.fr... Bonjour,
Nous réalisons un projet sur PDA qui doit alimenter en temps réel une base de données sous SQL Server. Nous avons installé sur un serveur le module RPC de PC-Soft. Nous faisons la
connexion et lançons nos requêtes. Nous avons un gros problème de temps de réponse. Qui fait que chaque scan demande à peu près 5 secondes pour que toute les opérations soient effectuées. Pour contourner la problème, nous avons voulu exécuter l'ensemble des procédures dans une procédure stockée SQL.
Le code est le suivant :
sdMaRequete est une Source de Données
sdMaRequete.p1 = 1
sdMaRequete.p2 = 6
sdMaRequete.p3 = 25
sdMaRequete.p4 = 1
sdMaRequete.p5 = 1
sdMaRequete.p6 = 1
LaRequete est une chaîne = "PICK_QTY @p1, @p2, @p3, @p4, @p5, @p6"
SI PAS
HExécuteRequêteSQL(sdMaRequete,gcnxMaConnexion,hRequêteSansCorrection,LaRequ ete) ALORS
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration(sdMaRequete)
Le temps de réponse devient correct MAIS... Nous nous rendons compte que la procédure est exécutée deux fois ! Cette procédure mettant à jour la quantité préparée, nous nous retrouvons avec une double incrémentation...
Avez-vous déjà rencontré ce problème dramatique ? Si oui, avez-vous trouvé une solution ?
Merci d'avance pour vos réponses.
|
| |
| |
| | | |
|
| | | | |
| | |
|