IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

pgSQL, FetchRow, ZConnection et PQConnection [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut pgSQL, FetchRow, ZConnection et PQConnection
    Bonjour,

    j'ai quelques "incompréhensions" avec les connecteurs sur une base PostgreSQL. Mon serveur est hébergé (Debian Squeeze amd64 + PostgreSQL 9.1.5) et j'ai son double à domicile.

    Avec Lazarus 1.1-37902 fpc-2.6.1-20120709, j'ai constaté ceci :
    Zeos 7 SVN d'hier :
    • parcours d'une table de 10000 lignes presqu'une fois plus lent qu'avec les connecteurs natifs.
    • le libraryLocation est une plaisanterie douteuse : signalée comme bug -et j'en suis sûr- et retoquée dans le forum officiel par des "chez moi cela marche". Cela ressemble à un autre forum tout aussi officiel . Evidemment si sur Windows on installe un pgSQL qui modifie le path d'environnement de la station ou si le client pgSQL est installé sur le poste Linux, cela fonctionne ... mais pas grâce à la libraryLocation. Enfin bref, le bug subsiste et reste facilement contournable pour ceux qui ont travaillé avec la Zeos 6.6 qui ne disposait pas de cette option ou ceux qui utilisent les connecteurs natifs. Mais ce n'est pas très "sérieux" d'où ma qualification de plaisanterie.
    • le FetchRow des ZQuery a un comportement incompréhensible... comme s'il ne servait à rien.


    En natif :
    Beaucoup de bonnes surprises. Linux, Windows : RAS
    • Donc une fois plus rapide même à l'ouverture de la connexion.
    • L'équivalent de ZQuery.FetchRow semble être SQLquery.PacketRecords... Je n'arrive pas à les utiliser. Et le doute s'installe : je ne suis pas sûr que cela serve à cela. En tous cas, je n'ai pas réussi à les mettre en oeuvre pour obtenir le résultat escompté.


    Donc, peut-être le FetchRow ne sert-il pas à ce que je crois ? Il me semblait qu'il fonctionnait ainsi : supposons-le réglé à 100 sur un total de 1000 lignes à charger. Le DataSet charge les 100 premières lignes en tenant compte des conditions (order by, ...), charge le DataSource et continue (par paquets de 100) ce qui fait que le DBgrid est actualisé la première fois au bout des 100 premières lignes et non à la fin du chargement des 1000 lignes. Est-ce cela ?

    J'ai l'habitude de libmySQL.dll... qui justement ne permet pas cette opération de FetchRow . J'ai donc développé pour mySQL, une méthode threadée sans DataSource : j'utilise une chaîne Connection -> Dataset (2 lectures dont une threadée) -> dbStringGrid perso dont j'aimerais me débarrasser avec pgSQL car à priori, libpq le permet... La méthode que j'ai développée pour mySQL (que je quitte) fonctionne avec pgSQL mais si le code "natif" le permet, j'aimerais tout autant l'utiliser... et me rapprocher d'une programmation plus classique.

    Donc... je cherche de la doc et une méthode aussi bien pour PQconnection que ZConnection... sachant que je n'estime pas exactement où est le problème, s'il y a problème. Peut-être vient-il du DataSource et dans ce cas, le couple Connecteur-DataSet fait il correctement son travail... si le travail est prévu comme je l'ai décrit. Mais avant d'explorer plus avant, est-ce le cas ?

    Cordialement. Gilles
    Dernière modification par Invité ; 08/09/2012 à 15h09. Motif: Relecture - Simplification

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour, le problème est résolu avec PostgreSQL 9.1.5. Aussi bien en Zeos 7 qu'en composant natif, le Zquery.FetchRow et le SQLquery.PacketRecords fonctionnent.

    Pour l'instant, par précaution , je travaille sur les 2 en parallèle : les connecteurs natifs de Lazarus fonctionnent correctement sous Win et Nux et paraît-il sous Mac OS X [je l'ai vérifié pour MySQL]... mais évidemment ils ne sont pas compatibles Delphi. Par contre, Zeos fonctionne avec Delphi -qui ne gère pas Nux-... et il n'est pas question que j'utilise dbExpress ! La question est : est-ce que Zeos fonctionne sous Mac avec Lazarus et XE3 ?
    Avec Lazarus, je n'ai jamais pu installer Zeos sur le Mac que j'avais épisodiquement à ma disposition. Mais aucune certitude : je ne l'ai pas eu assez longtemps et je me considère comme un débutant sous Mac comme sous XE d'ailleurs... en attendant l'arrivée prochaine d'une machine et de ma version XE3 et en espérant que Zeos soit supporté par FM2 : je n'ai pas trouvé cette précision.

    Finalement pour le problème de FetchRow, la difficulté a été de trouver les bonnes librairies "client" de pgSQL.

    Cordialement. Gilles
    Dernière modification par Invité ; 16/09/2012 à 12h29.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Install TOra avec PgSQL
    Par ange dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 12h09
  2. pb avec le pl/pgsql
    Par shingo dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 14/01/2004, 12h06
  3. installation php avec option --with-pgsql: marche pô.
    Par phil25 dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/01/2004, 15h59
  4. [pl/pgSQL 7.2] Returns Opaque?
    Par Gruik dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/10/2003, 16h50
  5. Pgsql : erreur de connexion 'too many clients ...'
    Par petitmoosse dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/08/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo