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 :

base de donnée avec PARADOX et C++Builder6


Sujet :

C++Builder

  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut base de donnée avec PARADOX et C++Builder6
    Bonjour,

    Aprés avoir réalisé un application BCB utilisant access pour sa base de donnée et ses états d'impression, j'essaie de refaire pareil en 100% BCB avec des tables paradox.

    en suivant ce tuto
    http://lberne.developpez.com/bcb/paradox/
    j'ai pu créer mes quelques tables et ajouter supprimer des éléments dedans.

    J'ai quelques gros soucis pour aller plus loin, à priori différents :

    1) Avec paradox je ne crée que des tables (1 fichier par table), je souhaite créer un Tquery mais je n'arrive pas à executer une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT * FROM Person ");
    Query1->ExecSQL();
    Person.DB est un des fichiers paradox. Avec ca ca ne plante pas mais le Tdatasource qui prend ses infos dans le Tquery reste desespérément vide...

    J'ai essayé en utilisant le non de la Ttable qui pointe vers person.DB mais là ce me met des erreurs comme quoi la table n'hexiste pas.

    La Tquery semble demander à quelle base on se connecte mais je n'ai pas de base moi, que des tables il doit y avoir une notion que je n'ai pas bien compris dans l'histoire.

    2) Quand on ajoute un élement dans une table et que un champ ne respecte pas les formats définis à la création de la table on a une exception qui se déclenche, OK mais comment doit on faire pour empécher ca ? Il faut tester chaque data à entrer avant de valider l'enregistrement dans la table ?

    3)Comment fait on pour lier des tables entre elles ?

    Merci par avance pour vos lumières

  2. #2
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    je reprends depuis le début car j'ai bien l'impression d'être largé complètement

    Ce qui fonctionne :

    -Je crée à l'aide de "outils=>Module Base de données" une table paradox (Person.db) entregistrée dans le même repertoire que l'executable de mon projet.
    -J'ai un projet dans lequel j'ai créé une Ttable (Table1) qui a la proprité databasename vide et TableName = Person.db. et active =true (toutes les autres inchangées)
    -J'ai un Tdatasource (DataSource) avec comme propriété DataSet = Table1
    -J'ai un DBGrid qui a la propriété Datasource = DataSource

    Cela me permet de voir le contenu de la table et grace a des boutons définis comme dans le tuto dont je parle le post avant je peux modifier ou ajouter des lignes.

    Les trucs qui marchent mais qui sont etranges :
    -Dans l'arborescence du projet j'ai un point d'interrogation rouge sur fond jaune en face de <alias> et de Person.db{Table1}

    Les trucs qui ne fonctionnent pas
    Si je crée un Tquery (Query1) je n'arrive pas a en faire quelquechose et j'ai un autre point d'interrogation rouge sur fond jaune à coté de Query1 qui se trouve au mêm niveau de l'arborescence du projet que Person.db

    Si quelqu'un pouvait m'expliquer l'origine de ce point d'interrogation rouge que je pense à la source de tous les problèmes.
    L'explication me permettra surement de comprendre pourquoi je ne comprends rien à rien sur ce que je fais depuis ce matin...

    Merci par avance

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut ExecSQL()
    don't forget : F1 est ton ami !!

    ExecSQL() ;

    Description

    La méthode ExecSQL exécute l'instruction SQL affectée à la propriété SQL. ExecSQL est également utilisée pour exécuter les requêtes ne renvoyant pas de curseur aux données (telles que INSERT, UPDATE, DELETE et CREATE TABLE).
    Remarque : Pour les instructions SELECT, utilisez Open à la place de la méthode ExecSQL.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut signification point d'interrogation rouge
    Les trucs qui marchent mais qui sont etranges :
    -Dans l'arborescence du projet j'ai un point d'interrogation rouge sur fond jaune en face de <alias>
    normal, si le DatabaseName du Query n'est pas renseigné en conception

    et de Person.db{Table1}
    le TableName du TTable1 n'est pas renseigné en conception

  5. #5
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Bonjour

    j'ai réussi à executer ma requete en ajoutant Open() aprés la mise à jour de la propiété SQL du Tquery

    Est ce grave de ne pas avoir renseigné la propriété DatabaseName du Tquery ?
    Je n'arrive pas à trouver d'explication sur la notion de alias. De ce que je vois c'est propre à Borland et à BDE mais je n'en qui pas sur.
    Les tutos que je trouve parle du gestionnaire de windows ODBC pour définir un alias mais je ne vois pas le rapport.
    En fait dans mon esprit j'aurait envie de definir quelquepart l'adresse du repertoire dans lequel je range les table paradox (aujourd'hui je ne sais pas placer les tables ailleur que à la racine du projet) et aprés on aurait juste à choisir la table concernée dans la propriété DataBaseName du Ttable...Apparement c'est plus compliqué que ca

    Merci pour votre aide

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut alias BDE
    En fait dans mon esprit j'aurait envie de definir quelquepart
    l'adresse du repertoire dans lequel je range les table paradox
    c'est justement un alias BDE (borland database engine)

    Pour definir un nouveau alias BDE, il suffit de le lancer le bde (on le trouve dans le panneau de configuration windows ) bdeadmin.exe

    on ajoute ensuite l'alias de type paradox en specifiant le "path" qui est le chemin
    ou l'on doit trouver les tables, ainsi qu'un nom par exemple "myapp"
    Ensuite en mode conception, pour les datasets (TTable,TQuery,....) on valorise
    le databasename par "myapp"

    Avantage : on ne code pas en dur dans son application le chemin d'acces
    inconvenient : il faut distribuer le bde sur les postes client

  7. #7
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Citation Envoyé par sch14
    inconvenient : il faut distribuer le bde sur les postes client
    Si on ne defini pas d'alias comme je fais pour le moment (fichier à la racine du projet) on a moins de choses à déployer avec l'application ?

    L'alias se défini dans windows si je comprends bien...cela veut dire qu'il faut défini le chemin de l'allias à la main sur tous les ordinateurs où on install le logiciel ?


    Merci

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut alias (suite)
    Si on ne defini pas d'alias comme je fais pour le moment (fichier à la racine du projet) on a moins de choses à déployer avec l'application ?
    non, du moment que l'appli utilise des TTable,TQuery on doit installer le bde
    sur le poste client
    remarque: installshield express fournit un module de deploiement du bde

    L'alias se défini dans windows si je comprends bien...cela veut dire qu'il faut défini le chemin de l'allias à la main sur tous les ordinateurs où on install le logiciel ?
    eh oui !!

    ah j'oublie si la databasename du tquery,ttable n'est pas renseigné alors
    on considere que les tables paradox sont dans le repertoire courant de l'application

    Bon courage.

  9. #9
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    yess ! je vais reussir à me coucher un peu moins idiot !

    Pour aller un peu plus loin pour mieux comprendre :
    Ma base de donnée sert à gérer des renseignements à rentrer dans une carte electronique.
    Si je veux sauvegarder mes données , les mettre de coté et repartir sur une nouvelle base pour une autre carte comment dois je faire ?
    Je crée un nouveau repertoire des nouvelles tables et un nouvel alias à la main ? ou y a t-il une manière de faire plus conventionelle et pratique surtout ?

    Comment procède t-on pour faire des sauvegardes de base de donnée paradox ? peut on exporter et importer des fichiers uniques ? (un peu comme le fichier .sql que l'on a avec un export mySQL)...Exporter un repertoire et X fichiers n'est pas trés pratique à priori

    Y a t-il moyen de faire paramétrer l'alias par le système d'installation ou l'application ?

    Merci encore

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut paradox suite
    Bonjour,

    Cela depend, on peut avoir une table "carte_electonique" (rq evite de mettre des espaces dans les noms des tables) avec une cle primaire id_carte integer,etc et ensuite d'utiliser cette clé pour faire des references,etc
    je te renvoie vers un cours de conception de bases de données.
    et dans ce cas pas besoin d'avoir un repertoire par base.

    En fait il faut voir l'alias (ie le repertoire) comme une base de donnée Access,
    Paradox est MultiFichier, a l'opposé d'Access ou on a un seul fichier contenant toutes les tables

    Comment procède t-on pour faire des sauvegardes
    Pour la sauvegarde d'une base, je fais un zip du repertoire tout simplement mais il faut faire attention car l'acces doit etre exclusif
    si il y a une appli de lancer avec des Tdatasets d'ouvert il peut y avoir des problemes de zip endommagé

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 11h49
  2. Modélisation base de données avec visio
    Par BIDA dans le forum Visio
    Réponses: 3
    Dernier message: 07/08/2007, 13h31
  3. Récupérer ma base de donnée avec des tables en .frm uniqueme
    Par Michas dans le forum Administration
    Réponses: 5
    Dernier message: 31/08/2005, 13h57
  4. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 18h50
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

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