bonjour à tous,
je travaille sous delphi 6 avec une base de données paradox. j'ai un souci avec la mise à jour d'une table.
on prend une table contenant 4 champs :
- idclient (type integer, cle primaire)
- iddate (type date, cle primaire)
- idtrans (type integer, cle primaire)
- idserv (type integer)
supposons que cette table contienne 900 enregistrements : les enregistrements idclient, idtrans et idserv sont uniques et vont de 1 à 900. iddate contient la date du jour pour ces 900 lignes.
si je veux modifier les enregistrements du champs idtrans, les 510 premiers seront modifiés et les enregistrements suivants seront supprimés de la table !?!!
impossible de comprendre la raison de ces suppressions... si j'enleve la cle primaire sur le champs idtrans, le update fonctionnera. pourtant, à aucun moment il n'y a de violation de clé.
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 procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin query1.SQL.Clear; query1.SQL.Add('select * from test2 order by idclient, iddate, idtrans'); Query1.open; Query1.First; i := 1000; while (not Query1.Eof) do begin Query2.SQL.Clear; Query2.SQL.Add('update test2 set idtrans = ' + IntToStr(i) + ' where (idtrans = ' + inttostr(query1['idtrans']) + ')'); Query2.ExecSQL; Query1.Next; inc(i); end; query1.close; query2.close; end;
pour info, il s'agit simplement d'un exemple. la table sur laquelle je travaille est plus complète mais mon probleme reste le meme : un update capricieux...
si quelqu'un a une idée, je suis preneuse.
merci,
![]()
del.
Partager