Pb de connexion SQL server avec VB6. Connexions implicites
cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 2005
-
23 déc. 2002 à 10:54
cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 2005
-
23 déc. 2002 à 15:22
Bonjour,
J'ai un problême, mon fichier de log sql server est énorme !
L'article suivant explique très bien le problème. Les connexions implicites ne sont pas groupées.
J'ai peur de ne pas très bien comprendre ce qu'il faut faire pour résourdre le probleme. Est ce que je dois créer une connexion pour chaque recordset de la manière suivante (set con = new adodb.connection). Mais dans ce cas, comment faire fonctionner mes transaction lorsque j'ai des recordset ou des ordre SQL imbriqués. Par exemple J'ouvre un recordset, je parcours ce dernier et je lance sur une condition un Update ou un autre ordre de mise à jour. Pour l'instant tout est sur la même connexion.
Comme je l'ai déjà expliqué plus haut, il me créé des connexions pour chaque recordset ouvert et ces connexions apparaissent dans le fichier de log de sql server.
Pour les transactions j'utilise sur ma connexion begintrans et committrans/rollbacktrans.
Merci d'avance, mes logs explosent ceux de windows et ceux de SQL server.
cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 20052 23 déc. 2002 à 14:17
C'est ce que je fais. Et le pb c'est qu'en faisant çà tu as autant de connexion ouverte que de myrecordset.open.
Si tu ouvre un recordset sur une connexion qui supporte déjà un recordset ouvert alors une deuxième connexion est créé. Cette connexion est dite implicite.
Sql server ne permet d'avoir qu'un seul jeu de résultats en suspens par connexion si conn.properties("Multiple connections") = true
cs_grome
Messages postés25Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention 3 mai 20052 23 déc. 2002 à 15:22
Voilà un bout de code qui pose pb. Je viens juste de le tester et suivre les logs en même temps. Histoire d'être sur que je me plantais pas dans mes dires.
Si quelqu'un à une idée ...
Merci d'avance.
grome
Set cnConnex = New ADODB.Connection
cnConnex.ConnectionString = " Provider=SQLOLEDB.1;Password=monpassword;Persist Security Info=True;User ID=monnom;Initial Catalog=Data_v208ss;Data Source=FERMETTE1\JER"
cnConnex.Open
'---
sSql1 = " SELECT EvoNum FROM EVOLUTION; "
Set rsRec1 = New ADODB.Recordset
rsRec1.Open sSql1, cnConnex
While Not rsRec1.EOF
sSql2 " SELECT LidNum FROM LIGNEDEVIS WHERE EvoNum " & rsRec1.Fields(0) & ";"
Set rsRec2 = New ADODB.Recordset
rsRec2.Open sSql2, cnConnex
While Not rsRec2.EOF
j = j + 1
rsRec2.MoveNext
Wend
rsRec2.Close
i = i + 1
rsRec1.MoveNext
Wend
Set rsRec2 = Nothing
rsRec1.Close
Set rsRec1 = Nothing