Bonjour,

Je vais être bref. Je code un programme en delphi 7 qui a pour but de copier un fichier texte dans une table sous sql server 2008 avec le composant ADOT. Une fois la table remplie j'ouvre une autre table paradoxe avec le composant BDE simple. Je dois comparer les deux tables et mettre à jour la table paradoxe si il y a une valeur commune d'apres le champ LSNRMTD(table paradoxe) et lieferschein ( table normale). Mon soucis est la, dans la table paradoxe il y a une clé composé de deux champs clé1,LSNRMTD alors que dans ma table normale il n'y a pas de clé primaire car c'est une table unique. J'ai fait :

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
ADOT_XSST.first
while not ADOT_XSST.EOF do
   begin
   while not T_fusion.eof do
      begin
      if T_fusion.FieldByName('LSNRMTD').value =ADOT_XSST.FieldByName('lieferschein').value then
         begin 
         T_fusion.edit
         T_fusion.FieldByName('KDGRP').Value:=ADOT_XSST.fieldbyname('Kundengrup').Value;
         ...
         T_fusion.post
         end;
      T_fusion.next
      end;
   end;
Cela marche mais le resultat est beacoup beaucoup trop long. 
QUand j'essaye de faire 
 
Qfusion1.SQL.Clear;
Qfusion1.SQL.Add('UPDATE T_fusion');
Qfusion1.SQL.Add('SET T_fusion.KDGRP = ADOT_XSST.Kundengrup' );
Qfusion1.sql.Add('FROM T_fusion INNER JOIN ADOT_XSST on T_fusion.LSNRMTD = ADOT_XSST.lieferschein' );
Delphi me dit que je fais une mauvaise utilisation de mon mot clef FROM.

Si quelqu'un a une idée ^^
Qfusion1.ExecSQL;