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

C++Builder Discussion :

[BCB2007][DAC MySQL] Problème de TQuery


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut [BCB2007][DAC MySQL] Problème de TQuery
    Bonjour,

    Dans mon projet, j'ai une valeur à modifier dans la BDD.
    Cette valeur ne peut être obtenue qu'au moyen d'une requete join assez complexe, impossible à simuler avec les TTable liés (champs MasterSource et MasterField...). J'ai essayé avec un TQuery, mais ce composant ne transmet que des ensembles de données en lecture seule. J'ai également essayé avec une vue mySQL dans mySQLTable, mais au moment de renseigner le MasterField, il me dit ne pas trouver l'index (qui existe dans les tables sous-jacentes). Comment puis-je contourner ce problème svp?
    J'ai lu un certain nombre de choses, mais sans trouver de solution à mon problème.
    Jusqu'alors, je pensais (et je crois avoir expérimenté) pouvoir modifier des données obtenues dans un TQuery (notez que je peux me tromper).

    Merci d'avance pour vos réponses,

    Cordialement,
    MP

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    Si j'ai bien compris, pour modifier ta valeur, tu peux passer par une requête ?

    Pourquoi ne pas exécuter une requête sql via le TQuery ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Re
    Comme d'hab, je m'exprime avec la transparence du fog londonien en automne...

    Bon, j'explique ce que j'ai fait (enfin j'essaye ) :
    - J'ai créé un composant, ayant comme propriétés un certain nombre de TFields (de divers types). Ce composant est chargé d'effectuer un affichage graphique basé sur les valeur des champs. Notez qu'il s'agît de dessiner un parcours, avec des points et des chemins de point à point.
    - Dans le principe, cela signifie que mon composant parcourt le DataSet de certains TFields pour en faire varier la valeur selon l'enregistrement, et l'afficher en bonne place. Son fonctionnement ressemble donc à celui du composant TDBCtrlGrid (je dis bien ressemble) : On parcourt l'ensemble de données, on récupère les valeurs dans le TField et on l'affiche (les coordonnées sont également dans des champs).
    - Un clic ou un arrêt tabulation sur un élément affiché provoque sa recherche dans la base. L'élément courant de l'enregistrement dispose alors d'un contrôle d'édition pour pouvoir modifier sa valeur.
    - J'ai choisi de ne pas transmettre de DataSource associé à des noms de champs pour me permettre d'utiliser plusieurs moyens d'obtenir mes ensembles de données. A la place, je transmets des TField, qui peuvent être des champs persistants d'un TTable (ou dérivé, dans mon cas des TMySQLTable). Au moment de cette conception, je pensais pouvoir utiliser des TTable chainées par les propriétés MasterSource/MasterField...

    A noter : en mode affichage, mon composant fonctionne parfaitement en partant d'un TQuery. L'erreur se produit au moment où je clique sur un champs pour passer en mode modification ("Impossible de modifier un ensemble de données en lecture seule").
    J'ai essayé en partant d'un TMySQLTable dont la table sous-jacente était une vue sql, mais apparement ce composant n'est pas capable de retrouver les index nécessaires pour pouvoir utiliser les propriétés MasterXXX. Du coup, le composant affiche tous les parcours en même temps...
    Je vais essayer en partant d'un TUpdateSQL, mais les requêtes de modification me font un peu peur (5 tables impliquées dans les jointures).
    A noter encore : Je n'ai pas mis de code, car trop volumineux, et pas forcément plus clair que mes explications (surtout qu'une bonne partie se fait en DFM).

    Bravo à ceux qui m'auront lu jusque là et merci d'avance pour les réponses qu'ils voudront bien me faire.

    Cdlt
    MP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Bonjour,

    Voila, j'ai résolu le problème, finalement.
    En fait, j'ai fini par trouver un chemin de liaisons qui m'a permis de chainer les tables dans les propriétés Master*. Cela s'est fait au prix d'une légère modification d'une table. Du coup, ma base n'est plus tout a fait en forme normale, et j'aurai des doubles modifications à réaliser. Cela dit, ca fonctionne comme je veux, et je peux mettre mes ensembles de données en mode Edit maintenant.
    Cependant, la question reste posée : avoir une forme remplie de contrôles de données liés à un TQuery et pouvoir en modifier les valeurs. Je croyais que ca existait.

    Vous remerciant tous de votre attention,
    MP.

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

Discussions similaires

  1. TQuery.ExecSQL avec MySQL -> problème
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/11/2010, 17h50
  2. [MYSQL] Problème ORDER BY sur deux champs
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 14/10/2005, 16h46
  3. [connexion Mysql] problème de connexion avec l'odbc
    Par DarkAngelus dans le forum Administration
    Réponses: 2
    Dernier message: 13/10/2005, 11h24
  4. [requete] Mysql problème de clause where
    Par Raideman dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/07/2005, 18h00
  5. [EJB2.1 Entity] [CMP] [MySQL] Problème avec clé primaire en auto increment
    Par tery dans le forum Java EE
    Réponses: 6
    Dernier message: 16/07/2004, 11h28

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