Problème AdoQuery [Résolu]

vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention - 10 nov. 2017 à 12:04 - Dernière réponse : vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention
- 13 févr. 2018 à 13:46
Bonjour,

J'ai un petit soucis dans mon code, et je ne trouve pas de solution.

Nom_Serveur := Fichier_Ini.ReadString('Variables_globales','Nom_Serveur','');
Password := Fichier_Ini.ReadString('Variables_globales','Password','');
User_ID := Fichier_Ini.ReadString('Variables_globales','User_ID','');
Nom_TableEvent := Fichier_Ini.ReadString('Variables_globales','Nom','');
CatalogEvent := Fichier_Ini.ReadString('Variables_globales','Catalog','');
CommandeSQL := 'Provider=SQLOLEDB.1;Password=' + Password + ';Persist Security Info=True;User ID=' + User_ID + ';Initial Catalog=' + CatalogEvent + ';Data Source=' + Nom_Serveur + ';';
Consoletrace('test1',debugglevel1);
with AdoConnectionEvent do Begin
Close;
loginPrompt:=False;
ConnectionString:=CommandeSQL;
End;
Consoletrace('test2',debugglevel1);
AdoConnectionEvent.Open();
Consoletrace('test3',debugglevel1);
AdoQueryEvent.Connection:=AdoConnectionEvent;
Consoletrace('test4',debugglevel1);


Lorsque mon serveur SQL est joignable, aucun problème. Lorsqu'il n'est pas joignable pour x raison, je reste planté au niveau de mon AdoConnectionEvent.Open();.
J'ai également essayé avec des try/except sans résultat et également ceci :
try
ADOConn.Connected := True;
except
on e: EADOError do
begin
MessageDlg('Error while connecting', mtError,
[mbOK], 0);

Exit;
end;
end;

sans résultat également. Même plantage, toujours avec le open et si utilisation d'un try, dans le try.

Je vous remercie par avance pour l'aide apportée.
Cordialement.
Afficher la suite 

5 réponses

Répondre au sujet
vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention - 22 nov. 2017 à 15:43
0
Utile
Bonjour,

Je suis toujours bloqué sur le point précédent.
J'ai multiplié les tests sans succes.
J'ai également ajouté un Connectiontimeout à mon adoconnection sans effet non plus. J'ai vraiment besoin d'aide.

Help !! Cordialement.
Commenter la réponse de vico8000
korgis 411 Messages postés samedi 17 mai 2003Date d'inscription 16 mars 2018 Dernière intervention - 24 nov. 2017 à 23:38
0
Utile
Salut,

une solution semble être de détruire puis de recréer ADOConnection en cas d'erreur dans le bloc try...except.
Vu ici :
https://www.developpez.net/forums/d1761142/environnements-developpement/delphi/bases-donnees/probleme-adoconnection-postgresql/
Commenter la réponse de korgis
vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention - Modifié par vico8000 le 4/12/2017 à 11:56
0
Utile
Bonjour,

Cela ne répondra malheureusement pas à mon problème puisque je n'arrive même pas à tester la condition false.

J'ai trouvé une solution à mon problème pour le open, le fait de passer en type de connexion asynchrone permet de passer à l'étape suivante.

Le problème c'est que j'ai le même plantage mais sur la condition suivante :
if not AdoConnectionEvent.Connected then

Des avis ?

Cordialement.
Commenter la réponse de vico8000
vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention - 6 déc. 2017 à 08:29
0
Utile
Bonjour,

Je viens aux nouvelles suite à de nouveaux tests.
J'ai essayé de remplacer mes composants ADOConnection et AdoQuery par les composants SQLConnection et SQLQuery.
Cela n'a réglé en aucun cas mon problème, je suis exactement au même cas de figure que sur les tests précédents.

Si un sauveur pouvait enlever son masque, ...

Cordialement.
Commenter la réponse de vico8000
vico8000 291 Messages postés lundi 18 janvier 2016Date d'inscription 14 février 2018 Dernière intervention - 13 févr. 2018 à 13:46
0
Utile
Pour ceux qui auraient le même problème, effectuez des essais avec FireDAC, cela a réglé mon problème. (Mode AmAsync - Non bloquant)
Commenter la réponse de vico8000

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.