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 :

pb copie table par INSERT


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut pb copie table par INSERT
    Bonjour je fais une instruction toute simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Arbo
           SELECT *
           FROM ArboLocomotive;
    Et il me met l'erreur :

    EBDEngineError avec "Parametre incorrect.".

    Je ne sais pas d'ou cela vient!

    Surtout que mes deux tables sont identiques en champs...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonjour,

    J'uttilise MS SQL Server 2000, pas de problème cela fonctionne

    create table Table1 (A int)
    create table Table2 (A int)

    insert into Table1 values(1)

    INSERT INTO Table2 select * from table1

    select * from table2

    A
    -----------
    1

    drop table table1
    drop table table2

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par forzaxelah
    Bonjour je fais une instruction toute simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Arbo
           SELECT *
           FROM ArboLocomotive;
    Et il me met l'erreur :

    EBDEngineError avec "Parametre incorrect.".

    Je ne sais pas d'ou cela vient!

    Surtout que mes deux tables sont identiques en champs...
    Je crois que ce type de requete n'est pas possible avec paradox (pas sur à 100%).
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Si ça a marché.
    Je sais pas pkoi d'ailleurs, j'ai repris une autre table qui était identique et ça a marché....

    Bref! Et lorsque j'ai "transféré" le tout dans la table Arbo, je vais tout enregistrer dans une table qui est propre.
    Donc on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WITH DataModule1.QArbo DO
    BEGIN
    SQL.Clear;
    SQL.Add('SELECT * INTO "'''+Nom_Arbo+'''.db" FROM Arbo');
    ExecSQL;
    END;
    end;
    Mais j'ai encore une erreur, il me marque "Utilisation incorrecte du mot clé INTO"....

    j'essaie de voir si c'est pas encore un pb de table....




    PS: je vais vraiment me mettre en MySQL psq Paradox c'est assez limité quand même...

  5. #5
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Si tu utilise le BDE, cette fonction copie une table avec sa structure dans le même repertoire.(peut-être elle t'aideras?)

    appel de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomTableOriginale.Exclusive:=True;
    CopyTable(Table1.dbhandle, 'NomTableOriginale.DB', 'NomTableCopie.DB');
    Implementation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure CopyTable(hTmpDb: hDbiDb; SrcTableName: String; DestName: String);
    begin
      Check(DbiCopyTable(hTmpDb, True, PChar(SrcTableName), nil, PChar(DestName)));
    end;
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  6. #6
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WITH DataModule1.QArbo DO
    BEGIN
    SQL.Clear;
    SQL.Add('SELECT * INTO "'''+Nom_Arbo+'''.db" FROM Arbo');
    ExecSQL;
    END;
    end;
    Il y a une erreur dans ta requette, le mot cle INTO ne s'utilise pas avec la commande SELECT.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    POur ce qui est de BDE, j'aimerais bien faire la programmation en utilisant une requete SQL car si je veux migrer apres ou autre, j'aimerais bien avoir une porgrammation ne dépendant pas trop des outils mais plus du langage (comme SQL est universel...)

    Je vais voir sur les cours SQL pour le INTO....

    merci

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Bejaia-In
    Il y a une erreur dans ta requette, le mot cle INTO ne s'utilise pas avec la commande SELECT.
    Si si l'utilisation de Into est tout à fait possible avec un Select.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    WITH DataModule1.QArbo DO
    BEGIN
    SQL.Clear;
    SQL.Add('SELECT * INTO "' +Nom_Arbo +'.db" FROM Arbo');
    ExecSQL;
    END;
    end;
    Tu as mis trop de ' , teste comme j'ai corrigé plus haut
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Vous avez pas d'idée pour remplacer le INTO....

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    dsl j'avais pas refresh la feuille donc j'avais pas vu ta reponse malatar!! sorry

  11. #11
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Je voudrais qu'on m'explique a quoi sert "INTO" dans cette requette ?

    En plus il y a bien une erreur :
    Mais j'ai encore une erreur, il me marque "Utilisation incorrecte du mot clé INTO"....
    Alors ?
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  12. #12
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Bejaia-In
    Je voudrais qu'on m'explique a quoi sert "INTO" dans cette requette ?

    En plus il y a bien une erreur :


    Alors ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select [Liste des champs] Into [Table Destination] 
    In [Chemin et Nom de la base de données] 
    From [Table Source]
    Ca permet de copier une table, struture et enregistrements compris.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Donc je dois mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * INTO "ArboXX.db" IN ":DB_LCC" FROM Arbo
    avec :

    DB_LCC le nom de ma base de données
    ArboXX.db le nom de la nouvelle table qui sera crée

    C'est ça?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Le hic c'est qu'im me renvoir toujours la meme erreur :

    "Utilisation incorrecte du mot-clé.
    Elément: INTO
    "

  15. #15
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par forzaxelah
    Donc je dois mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * INTO "ArboXX.db" IN ":DB_LCC" FROM Arbo
    avec :

    DB_LCC le nom de ma base de données
    ArboXX.db le nom de la nouvelle table qui sera crée

    C'est ça?
    A mon avis ca serait plus dasn le style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select * into "ArboXX" In "[LE Répertoire destination]" 
    From Arbo
    Je sais que ca focntionne parfaitement avec ACCESS, mais c'est peut être un problème d'écriture des paramètres qui gène paradox.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  16. #16
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Notre ami "forzaxelah" utilise des tables paradox et le BDE ne supporte pas les instructions : "INTO"+"IN".

    Dans le cas de l'utilisation de "INTO", il manque le "IN" dans la requette donnée.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  17. #17
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Bejaia-In
    Notre ami "forzaxelah" utilise des tables paradox et le BDE ne supporte pas les instructions : "INTO"+"IN".
    Vu que je n'ai que très peu utilisé le BDE, et que je suis passé direct avec ADO, j'aurais pas pu lui dire mieux
    Quand on dit que le BDE c'est Obsolète, c'est pas pour rien

    Citation Envoyé par Bejaia-In
    Dans le cas de l'utilisation de "INTO", il manque le "IN" dans la requette donnée.
    Je crois que le paramètre n'est pas utile si après le In il renseigne Chemin + Nom
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Donc si je veux continuer à programmer:
    il faut que je passe en ADO???
    et puis je garder mes tables en Paradox????
    Comment faire la transition?

  19. #19
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Avec ADO il faut te connect par ODBC à paradox (Drivers fournit directement avec windows)
    Des les outils d'administrations tu as "Source de données ODBC".

    Pour la transition BDE -> ADO, je ne sais pas, ca depend combien tu as de ligne de code déjà en place, car il y a quelques différences dans l'écriture et l'accès a certaine fonctions/méthodes/etc...
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  20. #20
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Pourquoi aller aussi loin ?
    le problème est a la source, au premier post de forzaxelah voulait inserer des enregistrements d'une table dans une autre table.
    Sa requette étais celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Arbo
           SELECT *
           FROM ArboLocomotive;
    A part le ";" de fin, elle est tout a fait correcte; le problème est ailleurs.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2014, 21h25
  2. [11g] Empêcher un insert dans une table par un Trigger
    Par cmako dans le forum PL/SQL
    Réponses: 19
    Dernier message: 16/10/2013, 15h42
  3. [AC-2003] Copie de table par DAO
    Par Stef999 dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/07/2012, 20h18
  4. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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