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

Bases de données Delphi Discussion :

Ajout un champs dans une table Paradox


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Ajout un champs dans une table Paradox
    Bonjour à tous,

    Je cherche à ajouter une champs dans une table paradox (Delphi 6) en mode programmation, le code que je me suis fait est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         MaTable.FieldDefs.Add ('Champs', FtString, 1, False);
         MaTable.CreateTable;
    Ce code bien sûr fonnctionne, le problème, ça efface les données dans la table

    Est il possible d'ajouter un champs sans effacer les données ???

    ----------------------------------------------

    un autre code que j'ai trouvé sur le net mais j'arrive pas à le faire fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         Qry.Sql.Text  := 'ALTER TABLE "C:\MaTable.Db" Add "Champs" Char(1)';
         Qry.ExecSql;
    Merci à vous !!!

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 061
    Points : 41 021
    Points
    41 021
    Billets dans le blog
    62
    Par défaut
    Bonjour
    La deuxième solution (SQL) est, de loin , la plus efficace !

    mais j'arrive pas à le faire fonctionner
    Quelle erreur ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Architecte matériel
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour
    La deuxième solution (SQL) est, de loin , la plus efficace !


    Quelle erreur ?

    Le message d'erreur :

    Le projet XXXX.Exe a provoqué une classe d'exception EAccess Violation avec le message "Violation d'acceès à l'adresse XXXXX dans le module XXXX.Exe, lecture de l'adresse 00000248", pocessus stopé


    Merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    Qry pointe sur un objet TQuery instancié ?

    le SQL est effectivement la solution à la plus facile !

    Pour utiliser FieldDefs+IndexDefs :
    - il faut faire d'abord un RenameTable
    - Faire un CreateTable
    - Faire un BatchMove sur la table renommé vers la table vide

    Enfin, les fonctions BDE comme DbiDoRestructure
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 061
    Points : 41 021
    Points
    41 021
    Billets dans le blog
    62
    Par défaut
    Qry pointe sur un objet TQuery instancié ?
    +1

    un truc qui devrait fonctionner :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    begin
    ..
    with TQuery.Create(self);
    try
      DataBaseName:=monTDataBase;
      Sql.Text  := 'ALTER TABLE "MaTable.Db" Add "Champs" Char(1)';
      ExecSql;
    finally
     Free;
    end;
    ...
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    petite correction de syntaxe
    Pas non plus besoin de Onwer, InsertComponent est une opération un peu lente et pas très utile avec le finally qui provoquera un RemoveComponent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    with TQuery.Create(nil) do
    try
    ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    hors sujet; il y a encore des gens qui utilise Paradox??
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 061
    Points : 41 021
    Points
    41 021
    Billets dans le blog
    62
    Par défaut
    @Shailetroll : TQuery.Create(nil) , exact une mauvaise habitude que j'ai à perdre

    @Edam : Il semblerait que oui , au vu des questions souvent posées sur le forum et ce pas seulement par des débutants , paradox semble même être utilisé en exploitation
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    petite correction de syntaxe
    Pas non plus besoin de Onwer, InsertComponent est une opération un peu lente et pas très utile avec le finally qui provoquera un RemoveComponent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    with TQuery.Create(nil) do
    try
    ...
    j'utilise souvent cette méthode avec les IBX, mais j'ai une mauvaise souvenir avec TClientDataset, et les composant ado, avec nil sa plante, mais dés que j'ai mis un owner, sa marche très bien, !!!???????
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    Surement le même problème du Onwer du TXMLDocument, la durée de vie des interfaces est plus longue avec un objet avec Owner !
    Je n'ai jamais bien compris pourquoi les développeurs de la VCL ont fait un tel choix !
    ADO et CDS utilisant tous les deux des Interfaces, ce n'est surprenant que cela puisse poser problème, dommage !

    J'ai beaucoup utilisé cette syntaxe avec MyDAC de Devart-CoreLab, je n'ai jamais eu de soucis !
    Je pense l'avoir aussi fait avec le TClientDataSet, je n'ai pas souvenir de problème mais j'incluais MidasLib ce qui dispensait du déploiement de Midas.DLL

    Vous noterez que nous avons perdu a.shaka !


    Citation Envoyé par edam Voir le message
    hors sujet; il y a encore des gens qui utilise Paradox??
    Quasiment à chaque Code Way Tour, Thierry Laborde essaye d'apporter la lumière des "Embarcadero evangelists" pour la conversion à DBExpress mais c'est une foule aux yeux morts qui le regarde sans écouter

    Personnellement, j'ai un projet installé en mars 2003, qu'il a je crois tourner jusqu'en 2006, avec une cadence assez soutenu tout en étant robuste car pilotait un robot, évidemment lors du changement de robot, le client a changé de logiciel ! J'ai pas eu le chance de m'en occuper

    la DB du projet : Paradox sur BDE, mono-poste et près de 150 000 opérations DB par heure, quand je parle d'opération, c'est les plus couteux comme Locate ou Query.ExecSQL
    Le BDE plantait quasiment systématiquement au bout de 25 heures que cela soit 25 heures continues ou 3 séries de 8h (en 3 jours), une belle EDBEngineError ou un Ecran Bleu de Win2K
    Du coup, on avait imposé le reboot journalier, j'avais même proposé de le coder et l'automatiser, le client n'a pas voulu, dommage, un jour, le 4eme, tout a pété

    Quand je pense que j'ai eu des serveurs MySQL 4.1 sur Win2K pouvant rester ouvert pendant plus de 400 jours sans broncher !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. supprimer le contenu d'un champ dans une table paradox
    Par ouldfella dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/04/2006, 13h24
  2. Ajout de champ dans une table
    Par captainamerica75 dans le forum Access
    Réponses: 9
    Dernier message: 09/02/2006, 13h47
  3. ajouter un champ dans une table existant
    Par zidenne dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/10/2005, 21h27
  4. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39
  5. Ajouter un champs dans une table (Access 2000)
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/10/2004, 13h02

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