Bonjour tout le monde,
Je tourne en rond avec un problème que je n'arrive pas à résoudre.
J'ai une appli qui se connecte à une base de données SQL Server 2008 à l'aide d'un composant TSQLConnection.
J'ai un bout de code qui ressemble à ça:
Lors de l'ouverture de la requête, j'ai une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 var sqlProc:TsqlStoredProc; query:TSQLQuery; begin sqlProc:=TsqlStoredProc.create(nil); sqlProc.SQLConnection:=maConnexion; sqlProc.StoredProcName:=maProcedure; query:=TSQLQuery.create(nil); query.SQLConnection:=maConnexion; sqlProc.Open; while not(sqlproc.eof) do begin query.sql.clear; query.sql.add('select monchamp from matable where autrechamp='+sqlproc.fileds[0].asstring); //maConnexion.closedatasets; //maConnexion.close; query.open; .... sqlproc.next; end
La connexion est occupée avec un le résultat d'une autre commande.
Si je mets l'instruction
J'ai bien maconnexion.activestatementcount=0 mais l'erreur apparait quand même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 maConnexion.closedatasets;
Si je mets l'instruction
ça fonctionne, mais plus loin dans l'appli j'ai une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 maConnexion.close;
Alors que le pilote a bien été initialisé, puisque j'ai fait plusieurs accès à la base de données depuis le lancement de l'appli.Borland.Data.TDBXError: Erreur DBX : Le pilote n'a pas été correctement initialisé. La bibliothèque client est manquante, n'est pas installée correctement, sa version est incorrecte, ou le pilote n'est pas dans le chemin système.
J'ai essayé
pour forcer la réouverture de la connexion mais sans succès
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2maConnexion.keepConnection:=false
Partager