Bonjour à tous,
je souhaite déplacer un enregistrement d'une même AdoTable qui se compose de plusieurs champs vers une autre ligne de la même table par programmation.
je suis tenté de faire un select vers la ligne n° 3, copier les champs (Fields.count), ensuite faire un autre select pour se positionner sur la ligne 15 et faire un Edit pour insérer l'enregistrement.
Existe t'il une autre astuce?
Merci.
Pièce jointe 151075


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
31
 
procedure CopieRowToRow(Dataset:TAdoQuery);
var
  aField : Variant;
  i: Integer;
  Num1, Num2:Integer;
begin
 
Num1:=3;     //destinée au Select SQL
Num2:=15;
 
// code que j'ai trouvé. ne fonctionne pas chez moi
  // Create a variant Array
  aField := VarArrayCreate([2,DataSet.Fieldcount-1], VarVariant);
  // read values into the array
  for i := 2 to (DataSet.Fieldcount-1) do
  begin
     aField[i] := DataSet.fields[i].Value ;
  end;
 
 
  // Put array values into new the record
   for i := 2 to (DataSet.Fieldcount-1) do
   begin
   DataSet.Edit;
   if (DataSet.fields[i].CanModify) then
   DataSet.fields[i].Value := aField[i] ;
   DataSet.Post;
   end;
End;
end;