bonjour,
J'ai une base SQL Serveur contenant plusieurs dizaines de milliers d'enregistrements. Suivant les requêtes j'obtient une erreur "Expiration du délai".
J'ai vu qu'en mettant le paramètre CommandTimeOut =0 à la connexion cela devait résoudre mon problème.
Or, Ma connexion n'est pas 'ouverte' en permanence, et je ne sait pas où placer le paramètre CommandTimeOut !! (Dans la chaine de connexion ???)
Ci joint un exemple de ma méthode :
Dans un module1 :Public requete As String 'contient la requete à éxécuter
Public chaines As String 'contient les paramètres de la connexion
Public rsql(1 To 15) As New ADODB.Recordset 'recordset contenant le résultat (jusqu'à 15 recordsets ouverts simultanément !)
Dans le code :chaine = "Provider=sqloledb;Data Source=gtc-dev;Initial Catalog=alarmes;User Id=sa;Password=sa"
requete = "SELECT * FROM histo ORDER BY date DESC"
rsql(nr(3)).Open requete, chaine, adOpenDynamic, , adCmdText
J'effectue mon traitement : par exemple : derniere_date=rsql(nr(3))!date
rsql(nr(3)).Close
Donc où intégrer le paramètre de Timeout ?
Merci à tous, ma base ne cesse d'augmenter, et il devient urgent de résoudre ce problème, car les utilisateurs commencent à se plaindre, ce qui est normal...
Franck