sylviecl
Messages postés26Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 1 février 2006
-
19 sept. 2005 à 17:58
dubois77
Messages postés675Date d'inscriptionjeudi 17 avril 2008StatutMembreDernière intervention19 février 2019
-
24 févr. 2013 à 16:28
Bonjour, je cherche à permettre de dupliquer un enregistrement complet d'une table (pour éviter la resaisie complète), j'utilise un insertrecord mais le problème que j'ai c'est que le premier champ est un champ autoincrémenté et cela ne passe pas.
Pouvez-vous m'aider ?
Voilà mon code :
procedure TForm1.DupliquerFiche;
var
i : integer;
ListeChamps : string;
begin
ListeChamps :='';
For i:=1 to DM1.QFicheInter.FieldCount -1 do
if DM1.QFicheInter.Fields[i].Value = null then
ListeChamps := ListeChamps + ', Null'
else if DM1.QFicheInter.Fields[i].DataType = ftDate then
ListeChamps := ListeChamps + ','+ DateToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].DataType = ftTime then
ListeChamps := ListeChamps + ','+ TimeToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].DataType = ftCurrency then
ListeChamps := ListeChamps + ','+ FloatToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].DataType = ftFloat then
ListeChamps := ListeChamps + ','+ FloatToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].DataType = ftBoolean then
ListeChamps := ListeChamps + ','+ BoolToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].DataType = ftSmallint then
ListeChamps := ListeChamps + ','+ IntToStr(DM1.QFicheInter.Fields[i].Value)
else if DM1.QFicheInter.Fields[i].Value <> null then
ListeChamps := ListeChamps + ','+ DM1.QFicheInter.Fields[i].Value;
DM1.TFicheInter.InsertRecord([ListeChamps]);
end;
cs_sim51
Messages postés240Date d'inscriptiondimanche 31 octobre 2004StatutMembreDernière intervention31 décembre 20062 20 sept. 2005 à 16:53
Salut,
J'ai une petite question pour toi : pourquoi ton champs est autoincrémenté ?
Peut êrte parceque c'est la clef primaire de ta table non ?
Donc de toute façon tu ne peux pas copier un enregistement complet, il
faut obligatoirement que la clef primaire soit unique donc différente
de l'enregistrement que tu copies.
Sinon, il te suffit de faire un update sur la copie de ton
enregistrement en changeant le champ autoincrementé ( le type
autoincrémentation ne s'effectue que sur un insert, tu peux toujours le
changer par un update )
Bonne continuation.
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
Bonjour! j ai une table documentation et j utilise des Tquery! et j aimerai ajouter une table exemplaire !de telle sorte que si j ai quantité de livre = n sa m enregistre n fois le livre mais avec explaire1,2....jsko N eme livre!Merci de bien vouloir me repondre
CORRECTION ........ c est luto ajouter un champs pas une table!!!!
Bonjour! j ai une table documentation et j utilise des Tquery! et j aimerai ajouter un champs exemplaire !de telle sorte que si j ai quantité de livre = n sa m enregistre n fois le livre mais avec explaire1,2....jsko N eme livre!Merci de bien vouloir me repondre
sylviecl
Messages postés26Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention 1 février 2006 20 sept. 2005 à 18:08
On m'a conseillé cela et ça marche niquel, avis à ceux que cela pourrait intéresser :
Code:
,
----
With DM1.QFicheInter do
begin
DM1.Table.Append;
for i := 1 to FieldCount -1 do
DM1.Table.Fields.Fields[i].assign(Fields.Fields[i]);
try
DM1.Table.Post;
Except on Exception do
DM1.Table.Cancel;
end;
end; // with