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 :

copier une table d'une BDD dans une table d'une autre BDD


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Points : 93
    Points
    93
    Par défaut copier une table d'une BDD dans une table d'une autre BDD
    Salut

    J'ai deux base de données sous access depuis c++ builder6 via ADO.
    J'ai utilisée 2 ADOConnections pour les 2 bases données.
    je veut copier les données d'une table1 de BDD1 dans une autre table2 de BDD2

    pour cela j'ai utilisée ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    table1->First();
    while(!table1->Eof)
    {
     
    table2->Append();
    table2->Edit();
    table2->FieldByName("champ1")->AsString=
    table1->FieldByName("champ1")->AsString;
     
    table1->Post();
     
    table1->Next();
    }
    mais ce code prend beaucoup de temps pour remplir la table, comment je peut copier la table avec INSERT INTO
    merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 745
    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 745
    Points : 25 671
    Points
    25 671
    Par défaut
    ACCESS ! hum ! j'ignore ses capacités SQL

    tu peux écrire ce genre de SQL sans faire de boucle : II-E. Insertion multiple à base de sous requête SELECT
    comme dans SQL Server : Ajout de lignes à l'aide d'INSERT et SELECT

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Cible (ChampCible1, ChampCible2, ..., ChampCibleN)
    SELECT ChampSrc1, ChampSrc2, ..., ChampSrcN
    FROM Source
    WHERE critere sur Source

    Sinon voir ce code boucle sur Fields[].Value

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Points : 93
    Points
    93
    Par défaut
    salut
    merci ShaiLeTroll pour ta réponse
    j'ai utilisée ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TableCible->Close();
    AnsiString a;
     
     a= "INSERT INTO BDD1.TableCible  SELECT* FROM BDD2.TableSource";
    Query->SQL->Clear();
    Query->SQL->Add(a);
    Query->ExecSQL();
    TableCible->Open();
    ce code fonctionne dans le cas ou les 02 BDD existent dans le répertoire de l'application, dans mon cas les 2 BDD n'éxistent pas dans ce répertoire est ce qu'il est a un moyen pour saisir le chemin de 02 BDD
    Merci d'avance

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/11/2011, 00h42
  2. Réponses: 13
    Dernier message: 11/09/2009, 14h02
  3. [AC-2003] Suppression dans la table de base lors de la suppression d'une association ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/06/2009, 23h12
  4. [MySQL] test si une valeur est déjà présente dans la table ou non
    Par yohan0262 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/06/2007, 14h42
  5. Réponses: 17
    Dernier message: 02/03/2006, 11h53

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