OVH Cloud OVH Cloud

états et procédure stockée (ailleurs)

2 réponses
Avatar
Sebho
Bonjour,

j'aurais besoin des lumières des gens éclairés ...

j'ai une base access mdb dans laquelle une fonction ouvre une procédure
stockée dans un serveur sql et affecte le recordset sur un
formulaire.recordset en mode feuille de données :
temps d'execution 12s,
recordset en adUseClient et adForwardOnly
1602 lignes en retour
ca marche bien quoi !

1ere question : je n'arrive pas a créer un état dans mon mdb basé sur une
procédure stockée d'un serveur sql
(le report n'a pas de propriété recordset comme le formulaire, et
recordsource ne va pas), bon...

puis je crée un projet access adp, connecté sur le meme serveur sql et
j'ouvre la meme procédure stockée :
temps d'execution 4 minutes !!!! quand ca veux bien 1 fois sur 5 il me
fait une "erreur réseau"

quelqu'un aurait-il qques conseils ?

merci bcp
Sebho

2 réponses

Avatar
Ilan
Bonjour,

Tu peux tenter d'afffecter le resultat de la procedure distante a une table
(ou une requete stockéé) de maniere a en disposer en tant qu'objet local.
Tu pourras ainsi creer le report.





Bonjour,

j'aurais besoin des lumières des gens éclairés ...

j'ai une base access mdb dans laquelle une fonction ouvre une procédure
stockée dans un serveur sql et affecte le recordset sur un
formulaire.recordset en mode feuille de données :
temps d'execution 12s,
recordset en adUseClient et adForwardOnly
1602 lignes en retour
ca marche bien quoi !

1ere question : je n'arrive pas a créer un état dans mon mdb basé sur une
procédure stockée d'un serveur sql
(le report n'a pas de propriété recordset comme le formulaire, et
recordsource ne va pas), bon...

puis je crée un projet access adp, connecté sur le meme serveur sql et
j'ouvre la meme procédure stockée :
temps d'execution 4 minutes !!!! quand ca veux bien 1 fois sur 5 il me
fait une "erreur réseau"

quelqu'un aurait-il qques conseils ?

merci bcp
Sebho









Avatar
Sebho
comment affecter le résultat dans une table locale (sans faire une boucle,
c'est trop lent), car mon recordset viens d'un serveur sql


Function ouvre() As ADODB.Recordset

Dim c As New ADODB.Connection
Dim rs As New ADODB.Recordset

On Error GoTo eh

c.Open "Provider=SQLOLEDB.1;Password=**;Persist Security Info=True;User
ID=titi;Initial Catalog=myBase;Data Source=mySQLserver"
rs.CursorLocation = adUseClient
rs.CursorType = adOpenForwardOnly
rs.Open "execute sp_CAPays '2004/01/01','2004/31/12'", c
Set ouvre = rs

Exit Function
eh:
MsgBox Err.Description
End Function
-----------------------------
ou alors puis je créer une requête dans access du style ?

insert into t_res select * from [SQLOLEDB.1;suite de ma chaine de
connexion...].[execute sp_CAPays....]

càd insérer la chaine de connexion dans la requete insert ?