Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je souhaiterai échanger une expérience avec des personnes utilisant :
- Windows 7 SP1
- Embarcadero C++ XE3
- PostrgreSQL 9.1
- Les drivers Devart 3.3
L'idée est que dans un projet C++, il est tout à fait possible de se connecter à une base Postgres avec Embarcadero, mais j'ai constaté que l'écriture dans la base posait un problème :
1/ Au niveau de l'EDI, l'explorateur de données autorise les modifications, mais en fait seule la 1ere est bien enregistrée. Les autre modifications ne sont pas transmises au moteur Postgres. Tout se passe comme si la 2ème modif restait dans le cache.
Question : Est-il posible de vérifier que l'EDI a envoyé une requete dans Postgres ?
Autre formulation : Comment voir si un appel à Postrgres a été effectué ? Mise en trace de Postgres ?
2/ Au niveau d'un projet en C++.
Si on suit la cinématique : TSQLConnection1 => TSimpleDataSet1 => DataSource1 => TSQLGrid1
Le projet compile parfaitement, la consultation fonctionne, les données d'une tables sont affichées dans la grille, mais les modifications ne sont pas envoyées à Postgres, ou du moins, je ne les vois pas.
Est-ce qu'une personne aurait une idée ?
Cordialement
Carmichael_fr
Hors ligne
Ne connaissant pas embarcadero, je ne répondrais pas ce qui concerne ce framework. Je ne vais répondre qu'à cette question (qui est à ma portée ) :
Question : Est-il posible de vérifier que l'EDI a envoyé une requete dans Postgres ?
Autre formulation : Comment voir si un appel à Postrgres a été effectué ? Mise en trace de Postgres ?
Le plus simple est de tracer toutes les requêtes exécutées par PostgreSQL. Pour cela, il vous suffit de configurer le paramètre log_min_duration_statement à 0 dans le fichier postgresql.conf.
Guillaume.
Hors ligne
Pour la partie embarcadero, avez-vous vérifié qu'il ne faille pas forcer l'écriture, avec un DataSet.post (de mémoire) pour appliquer les modifications ?
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour,
Alors d'abord merci de répondre aux attentes des utilisateurs même le dimanche !
Je vais potasser un peu la doc sur la mise en trace, car je ne suis pas DBA, mais je pense que ça devrait aller, la doc est claire.
Pour ce qui est de la 2ème intervention, ce n'est plus DataSet.post, mais :
SimpleDataSetPostgres->ApplyUpdates(0);
et l'objet SimpleDataSetPostgres effectue l'ordre d'envoi. Merci tout de même pour la suggestion.
Cordialement
Carmichael_fr
Hors ligne
Pages : 1