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 :

Tranfert de données


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Tranfert de données
    je veux copier les donnees d'une table d'une base vers une deuxieme table
    merci pour votre aide
    le programme
    ...........................
    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
    23
    24
    25
    26
    27
    28
    29
    30
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if IBTransaction1.Active then
    IBTransaction1.Commit;
    IBTransaction1.StartTransaction;
    IBQuery1.ParamByName('ADATEMI').AsDate:=StrToDate(MaskEdit1.text);
    IBQuery1.ParamByName('ADATEMI').AsDate:=StrToDate(MaskEdit2.text);
    IBQuery1.Open;
    IBQuery1.First;
     while not IBQuery1.Eof do begin
    Query1.ParamByName('CNUMPOL').AsString:=IBQuery1.Fields[0].AsString;
    Query1.ParamByName('ANUMAVE').AsFloat:=IBQuery1.Fields[1].AsFloat;
    Query1.ParamByName('ADATEMI').AsDate:=IBQuery1.Fields[2].AsDateTime;
    Query1.ParamByName('ADATEFF').AsDate:=IBQuery1.Fields[3].AsDateTime;
    Query1.ParamByName('ADATEXP').AsDate:=IBQuery1.Fields[4].AsDateTime;
    Query1.ParamByName('AMONTPM').AsFloat:=IBQuery1.Fields[5].AsFloat;
    Query1.ParamByName('AACCESS').AsFloat:=IBQuery1.Fields[6].AsFloat;
    Query1.ParamByName('APTAXES').AsFloat:=IBQuery1.Fields[7].AsFloat;
    Query1.ParamByName('APTOTAL').AsFloat:=IBQuery1.Fields[8].AsFloat;
    Query1.ParamByName('ANUMATR').AsString:=IBQuery1.Fields[9].AsString;
    Query1.ExecSQL;
     
    IBQuery1.Next;
    ProgressBar1.StepIt;
    end;
    IBTransaction1.Commit;
    showmessage('Terminé');
    end;
     
    end.
    ..........................................
    le code sql
    .......................................
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT CNUMPOL,ANUMAVE,ADATEMI,ADATEFF,ADATEXP,
    AMONTPM,AACCESS,APTAXES,APTOTAL,ACODAGE
    FROM AVENANT
    WHERE  ABRANCH=100
    AND AMONTPM>0 
    AND ADATEMI>=:ADATEMI and  ADATEMI<=:ADATEMI
    order by acodage


    la copie doit se faire entre les deux date choisie au hasard
    le programme s'execute mais ne respecte pas les dates ca deborde...je comprends pas. merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    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 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Query1 = TQuery ? BDE ?
    IBQuery1 = TIBQuery = InterBase Express ?

    A lire comme ça, ton code fait une copie de IB vers PARADOX !?
    Dans ce sens ? c'est bizarre !

    Si c'est la même DB
    un simple SQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Cible (CNUMPOL,ANUMAVE,ADATEMI,ADATEFF) SELECT CNUMPOL,ANUMAVE,ADATEMI,ADATEFF,...FROM AVENANT...
    Cela se fait d'un coup ! Cela fonctionne sur Sybase et MySQL

    Dans les deux cas, soit INSERT SELECT ou boucle INSERT, ton paramètre ADATEMI est en double, cela peut poser des problèmes mais dans ton cas c'est juste totalement faux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IBQuery1.ParamByName('ADATEMI_Deb').AsDate:=StrToDate(MaskEdit1.text);
    IBQuery1.ParamByName('ADATEMI_Fin').AsDate:=StrToDate(MaskEdit2.text);
    ...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    AND ADATEMI>=:ADATEMI_Deb and ADATEMI<=:ADATEMI_Fin
    ou
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    AND ADATEMI BETWEEN :ADATEMI_Deb and :ADATEMI_Fin
    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

  3. #3
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Bonjour,

    malgré les and, j'ai un doute sur les parenthèses avec certains SGBD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    WHERE  (ABRANCH=100)
    AND (AMONTPM>0) 
    AND (ADATEMI>=:ADATEMI) AND  (ADATEMI<=:ADATEMI)
    la solution de ShaiLeTroll est bien meilleure

Discussions similaires

  1. [AC-2007] Comment convertir une piece jointe en adresse pour un tranfert de données
    Par Hervé40 dans le forum VBA Access
    Réponses: 0
    Dernier message: 28/09/2009, 21h25
  2. pas de tranfert de données en ajax
    Par lrgtk dans le forum Langage
    Réponses: 2
    Dernier message: 31/08/2008, 01h57
  3. tranfert de donnée de input à input (type texte)
    Par nicerico dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/10/2006, 17h16
  4. Réponses: 1
    Dernier message: 20/07/2006, 15h42
  5. Tranfert de données d'une base Oracle vers PostGre
    Par Elois dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/01/2004, 18h08

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