Insert + update en Delphi avec base access

cs_carpiste Messages postés 13 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 7 octobre 2012 - 5 sept. 2005 à 18:23
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 10 sept. 2005 à 18:27
Je repose ma question, voici le code écrit, peut on l'optimiser

Langage DELPHI7

Base de données : Access
qpay.Active:=false;
qpay.SQL.Clear;
qpay.SQL.Add('SELECT * FROM Papaye ');
qpay.SQL.Add(' WHERE Salarie = '+quotedstr(Presal)+' ');
qpay.SQL.Add(' AND Papaye.Rubrique = '+inttostr(qrub.fieldbyname('Code').asinteger)+' ');

qpay.Active:=true;


if qpay.RecordCount > 0 then
begin
qecr.Active:=false;
qecr.SQL.Clear;
qecr.SQL.Add('UPDATE Papaye SET ');
qecr.SQL.Add(' Libelle = '+quotedstr(qrub.fieldbyname('Libelle_Long').asstring)+' ');
qecr.SQL.Add(' WHERE Salarie = '+quotedstr(Presal)+' ');
qecr.SQL.Add(' AND Papaye.Rubrique = '+inttostr(qrub.fieldbyname('Code').asinteger)+' ');
qecr.SQL.Add(' AND Papaye.Date_D = cdate('+quotedstr(datetostr(datdeb))+') ');
qecr.ExecSQL;
qecr.Active:=false;
end
else
begin
qecr.Active:=false;
qecr.SQL.Clear;
qecr.SQL.Add('INSERT INTO Papaye (Salarie,Rubrique,Montant,Libelle,Date_D,Date_F,Coef,Base) ');
qecr.SQL.Add('VALUES ('+quotedstr(Presal)+','+inttostr(qrub.fieldbyname('Code').asinteger)+', ');
qecr.SQL.Add(''+floattostrf(0.00,Fffixed,10,2)+','+quotedstr(qrub.fieldbyname('Libelle_Long').asstring)+', ');
qecr.SQL.Add('cdate('+quotedstr(datetostr(datdeb))+'),'+quotedstr(datetostr(datfin))+'),');
qecr.SQL.Add(''+floattostrf(0.00,Fffixed,10,2)+',sum(0.00) ),'+floattostrf(0.00,Fffixed,10,2)+' ');
qecr.ExecSQL;
qecr.Active:=false;
end;
qpay.Active:=false;

Merci d'avance

Carpiste
A voir également:

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 sept. 2005 à 20:05
Salut,



Pour la reponse le forum delphi te seras plus utile.



Sinon pour SELECT count(*) as nb FROM Papaye ... sera plus rapide

pour le calcul du nombre d'enregistrements.



Ensuite si tu met une cle sera sera plus rapide.

En plus sur les champ de la recherche un index est conseillé

et dans le select prends que les champs utiles

ou un champ



evites l'etoile ;-)

SELECT count(Salarie) as nb FROM Papaye



Esperant avoir guidant un peu.

Pour delphi, je ne connais pas trop les optimisations de ce langage









voila
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 sept. 2005 à 18:27
une seule fonction qecr.SQL.Add par requettes pourrait optimiser la partie dephi

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

0
Rejoignez-nous