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 :

Creer une table2 d'une table1 en utilisant SQL


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut Creer une table2 d'une table1 en utilisant SQL
    Helloww

    Bin, ma question est dans le titre :

    J'ai une base de donné immensement grande que je dois consulter frequement.
    Mais pour certaines actions independantes (Se trouvant sur different PageControl), il serait plus judicieux de créer d'autres tables (une pour chaque PageControl) qui serait deja filtré pour travailler dessus avec un net gain de temps.

    En gros, ce que je veux faire, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select donne1, donne2, donne3 from Table1 where ...
    Et envoyer le resultat vers une table2

    Moyen... pas moyen!

  2. #2
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut,

    Voici une requête pour copier des données d'une table vers une autre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO tblClients2 ( NumCli, NomCli, PreCli )
    SELECT [Numéro Client], [Nom Client], [Prénom Client]
    FROM tblClients;
    Cependant je ne suis pas sûr de l'utiliter de la création d'une nouvelle table, puisque les composants ADO, par exemple, te permettent de créer ce genre de "tables triées", les données de ton Dataset étant remplies par requête.
    Mais si tu es vraiment obligé de recréer des tables, je te conseil de passer par des vues, si possible, cela évitera la redondance de stockage physique (si tu as déjà beaucoup de tables, c'est un point à ne pas négliger)

    A+.

  3. #3
    Membre éclairé Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Par défaut Filtres
    Salut,
    Voici une autre solution qui consiste à utiliser une table, et comme vous utilisez PageControl, il vous reste à activer un filtre pour chaque page.
    Bon courage

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut
    Citation Envoyé par PadawanDuDelphi
    Mais si tu es vraiment obligé de recréer des tables, je te conseil de passer par des vues, si possible
    Effectivement je n'y avais pas pensé, je commence à chercher comment faire pour les creations de vues

    Cependant :

    Citation Envoyé par liazidf
    comme vous utilisez PageControl, il vous reste à activer un filtre pour chaque page.
    1- Dabord et avant tout : N'hesites pas à me tutoyé
    2- Moi pas tres bien comprendre ce que tu me raconte là
    Comment faire pour activer un filtre different sur la meme base pour chaque PageControl??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PageControl1.filtre:= ????
    Thanks in advance

  5. #5
    Membre éclairé Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Par défaut PageControl
    Salut,
    Voila un exemple de code pour effectuer tous les filtres que vous voulez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    procedure TForm1.PageControl1Change(Sender: TObject);
    begin
    case  PageControl1.ActivePageIndex of
     0:begin
        Table1.Filter:='First_Name ='+QuotedStr('A*');
        Table1.Filtered:=true;
       end;
     1:begin
        Table1.Filter:='First_Name ='+QuotedStr('B*');
        Table1.Filtered:=true;
       end;
     2:begin
        Table1.Filter:='First_Name ='+QuotedStr('C*');
        Table1.Filtered:=true;
       end;
    end;
    end;

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut
    Bien vu liazidf, ça marche nikel.

    Maintenant, rien que pour ma petite curiosité personnlle, j'ai une petite question sur cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.Filter:='First_Name ='+QuotedStr('A*');
    Cela veut dire qu'on affecte ue valeur à la table1 mais pourquoi ça ne fonctionne pas avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table1.Filter:= " First_Name= 'A*' "
    Thxs in advance

  7. #7
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    c'est la syntaxe des filtres rien faire. pour les filtres il est vivement conseillé d'utiliser les requetes, en plus avec les requetes on peux afficher les colonnes que je veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    procedure TForm1.PageControl1Change(Sender: TObject);
    begin
    Query1.SQL.Add('SELECT * FROM VotreTable WHERE First_Name LIKE :Param');
     
    case  PageControl1.ActivePageIndex of
     0:begin
         Query1.Close; 
         Query1.ParamByName('Param').Value := ValeurText1+'%'; 
         Query1.Open;
       end;
     1:begin
         Query1.Close; 
         Query1.ParamByName('Param').Value := ValeurText2+'%'; 
         Query1.Open;
       end;
     2:begin
          Query1.Close; 
          Query1.ParamByName('Param').Value := ValeurText3+'%'; 
          Query1.Open;
       end;
    end;
    end;
    mais cette méthode ou celle de liazidf n'est pas conseiller si le résultat de vos données trops grand rsique de gélé votres application lors du passage d'une page a une autres alors le mieux c'est de définir pour chaque page une requette.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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