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 :

Soucis avec une BDD paradox...


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par défaut Soucis avec une BDD paradox...
    Boujour à tous...

    J'ai un petit soucis avec une base de données PARADOX...

    Voilà, je souhaiterais modifier le programme que j'avais fait avec une stringgrid concernant l'édition d'une liste de vocabulaire... je préfère désormais gérer ça avec une base de données.

    Lors de l'éxécution de mon programme, j'ai une petite form qui me réclame le nom de ma base de donnée (bein voui, l'utilisateur a peut-être envie de créer plusieurs listes de voca...), puis lorsque je clique sur le boutton Valider ma base de données est créée dans le répertoire d'exécution avec les caractéritiques que je veux.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      FormPrincipale->Table->Active = false;
      FormPrincipale->Table->DatabaseName = "";
      FormPrincipale->Table->TableType = ttParadox;
      FormPrincipale->Table->TableName = NomBase;
      FormPrincipale->Table->FieldDefs->Clear();
     
      if (!FormPrincipale->Table->Exists) // Ne remplace pas une table existante
      {
        FormPrincipale->Table->FieldDefs->Add("Ligne",ftAutoInc,0,false);
        FormPrincipale->Table->FieldDefs->Add("Mot Français",ftString,180,false);
        FormPrincipale->Table->FieldDefs->Add("Mot Anglais",ftString,180,false);
        FormPrincipale->Table->CreateTable();
    Le problème viens lors de l'exécution de la seconde form, la form d'édition de la table ! En effet, il faut que je lui dise d'utiliser la table que j'ai créée précédement mais je ne sais trop comment faire :s

    J'utilise une DBGrid pour voir les modifications de la table en temps réel. Sur ma seconde form j'ai donc mis un composant TTable avec un DataSource mais le pb c'est que je ne sais trop comment dire au composant TTable de pointer sur la table créée précedement et surtout de l'activer pour qu'elle soit prise en compte dans la fenêtre et affiché dans la DBGrid...

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormPrincipale->Table->Active = true;
    mais il me sors une erreur de paramètre...
    Si vous avez une idée... help me please ^^

    D'autre part si vous avez aussi une idée pour fermer une base de données et la recharger ultérieurement dans un DBGird...

    Merci pour vos réponses

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,
    La première chose qui m'interpelle, c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormPrincipale->Table->DatabaseName = "";
    Je vais peut être dire une bêtise mais comment fais tu pour spécifier un chemin illustrant le repertoire ou est stocker la table créée ?
    Perso, j'ai fais des Alias et donc je renseigne cette prppriété mais bon....
    tes soucis ne sont peut être pas forcement de la.

    @ +

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par défaut
    Re Salut

    Euhhh sauf cas contraire, si ce champ n'est pas renseigné, le programme cherche la base de données dans le répertoire en cours d'utilisation... Or là, la base de données créée est dans le répertoire ou mon prog est exécuté...

    sinon comment remplirais tu ce champ ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormPrincipale->Table->DatabaseName= "mapremierebase.db";
    comme ceci ?

    merci...

  4. #4
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Généralement, je renseigne cette propriété a la conception avec l'inspecteur d'objet (mais cela tiens surement a des 'déviances' personnelles ).
    Bon je ne dis pas que cela soit le vrai motif de l'erreur.
    Que dis exactement le message d'erreur ?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par défaut
    Donc si tu veux, la base de données est belle et bien créer puisque le fichier apparait dans le répertoire, j'accède a la form pour l'édition de la base et quand je clique sur nouveau (pour ajouter un enregistrement), j'ai droit a un joli msg d'erreur : Table : Cannot perform this operation on a closed dataset

    l'exécutable a créer une erreur dans EDatabaseError avec le msg ci dessus... voila ce que j'ai :s

    et le code est le meme que celui que j'ai mis plus haut...

    nifnif

  6. #6
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Il y a t il bien un objet TDatabase et TTable - avec respectivement 'connected=true' et 'active=true' - pointant vers cette table ?

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

Discussions similaires

  1. souci avec une comparaison de date
    Par Ludo75 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/02/2006, 15h59
  2. [VB] faire un update avec une bdd en xml
    Par ekmule dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/02/2006, 22h41
  3. [MySQL] Soucis avec une insertion dans une base
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 27/01/2006, 14h03
  4. Dialoguer avec une BDD MySQL en language C
    Par veridik dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2005, 11h58
  5. SOucis avec une reequete imbriquee
    Par Ni4k dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/03/2004, 08h56

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