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

Delphi Discussion :

Problème avec "Locate".. Avez vous une suggestion à me faire?


Sujet :

Delphi

  1. #21
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par Pascal Jankowski

    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
     
      with TADOQuery.Create(Self) do
      try
        ConnectionString := PJConnexion.connexionSTR
        SQL.Text := 'select * from '+tableName+' where '+filtreFieldName+'='+quotedStr(filtreValue);
        try
          Open;
          Edit
          fieldByName(fieldName).Value := Value;
          Post;
        except
          //raise; exception silencieuse
          Result := false;
        end;
      finally
        free;
      end;
    Woah! On peut faire des Edit/Post sur des TADOQuery !

    Merci Pascal!
    -Slimjoe

  2. #22
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par slimjoe
    Woah! On peut faire des Edit/Post sur des TADOQuery !

    Merci Pascal!
    Effectivement, on peut utiliser Post avec des Query. Cependant, il existe une limitation, comme je l'ai expliqué plus haut, cela fonctionne très bien dans le cas de requêtes simples. Par contre les requêtes utilisant par exemples des jointures ne renvoient que des ensembles de résultats en lecture seule ie dans ce cas le post ne fonctionne pas.
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  3. #23
    Membre averti
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Points : 400
    Points
    400
    Par défaut
    Bon,
    Finalement, j'ai laissé tomber les TDatamodules... C'est un peu ennuyeux pour ma modularité mais pas dramatique. En ce qui concerne les composant d'accès aux données, j'ai découvert les Tadoquery, hier toute la journée.
    Leur principal avantage, à mes yeux, reste également leur principal inconvénient:
    A l'inverse d'une Tadotable, l'ensemble de données n'est pas présent en mémoire. La notion de "travail sur un ensemble vif" devient plus relative. Ce qui, certes, ménage les ressources machines mais pénalise, quelques fois, la rapidité de réponse d'autant qu'un grand nombre de données sont cryptées. Différents cryptages sont utilisés en fonction de la provenance et de la sensibilité de l'information et cryptage en double passe de la bases de données - y'a des paranos sur cette planéte! - Bref, c'est pas si simple et je m'oriente vers un compromis mal taillé entre les deux composants TAdotquery et TAdotable en fonction de mon besoin en terme de vivacité de réponse.
    Je vous remercie de toute l'aide et des précieux conseils que vous m'avez apporté.
    Je souhaite quand même trouvé une explication au probléme des Tdatamodule qui ne fonctionnent pas dans les Dll. J'aime pas abandonner un code simplement parce que j'y arrive pas!
    Cordialement,
    Hauwke

  4. #24
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Une solution consisterait à utiliser non plus les TADOQuery mais les TClientDataSet. Midas/Datasnap peut être une solution à ton problème.

    Passer par un serveur d'application et faire cette fois-ci du 3-tiers.
    En utilisant cette fois-ci COM/DCOM, TCP/IP ou WEB pour la communication entre ton serveur d'application et ton client, cela te permettrait l'économie de certaines de tes dll, je pense, car tu pourrais y ajouter les méthodes que tu désires distribuer. Cela simplifie encore le contrôle de l'existance des dll par tes clients mais encore simplifie la gestion du versioning de ces dll.

    Donc un serveur d'application fournit à la fois les données que tu récupères dans un TClientDataSet mais également des méthodes.

    Côté client, cela nécessiterait moins de ressources. Seul, le serveur s'occupe de charger les tables en mémoire et de les décrypter puis de fournir les données à chaque client.
    Inversement ton client fournit les données voire la requête. Charge donc au serveur de se débrouiller.

    Dès que ton serveur d'application est enregistré grâce à un regserv sur la station du réseau qui l'accueille, plus besoin de s'occuper de lui. Ce n'est même pas la peine de le lancer. Dès qu'un client tente de solliciter le serveur (le client connaît l'ip ou l'url (si monté dérrière IIS) du serveur qu'il interroge) le serveur se lance immédiatement puis il fournit au client les informations désirées. Dès que tous les clients se sont refermés alors automatiquement le serveur d'application termine sa tâche. Son processus est automatiquement arrété.

    J'ai éprouvé plusieurs fois cette solution, elle n'est pas très compliquée à mettre en place et en général c'est assez solide.
    Le deployement et l'entretient est par contre un peu plus lourd que pour du 2-tiers.

    Ensuite, il n'y a qu'un pas pour écrire la petite dll qui convient et la passer sur IIS par exemple et permettre à tes clients de se connecter de façon distante voir ajouter une solution client léger avec ASP par la suite.

    Si tu désires plus d'infos n'hésite surtout pas.

    Pascal
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  5. #25
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par slimjoe
    Quand est-ce que tu dis que ça plante au juste ? Ça plante (exception) ou ça donne un résultat non valide ?
    La curiosié est un vilain défaut !

    ==> Ca plante sur une histoire de Variant invalide (j'ai pas l'erreur exacte sous les yeux, mais je t'envois ça Lundi).

    Bref une conversion de Variant qui coince. Ca doit dépendre de la façon dont le Locate est implémenté (où les fonctions/procédures auquel il fait appel) dans le descendant du TDataSet je pense.

    C'est un peu comme l'histoire de RecordCount ce genre de chose...
    Bidouilleuse Delphi

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44

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