Erreur EOutofMemory depuis migration des sources Delphi 2009 vers XE3

Résolu
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 5 juin 2013 à 16:43
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 3 juil. 2013 à 10:08
Depuis peu, j'ai migré un projet sous Delphi 2009 sur un poste sous XP Pro (2Go de ram, SP3 vers XE3) sur un poste en Win7 (64bits, 3Go de ram).
J'utilise les composants IBx pour me connecter et travailler avec la BDD sous Firebird.

Le programme prend un fichier texte avec x lignes de longueur 120 et le transforme après divers contrôles vers un fichier au format XML.
Dans le fichier texte, chaque ligne correspond à un tiers avec un montant, BBAN/IBAN, etc....

Je prends un fichier qui contient 6914 lignes (1.06 mo), donc 6914 tiers.
Si le fichier est ok, on enregistre chaque ligne dans une table LOT pour ensuite l'afficher dans un DBGrid (via un DataSource).

Pendant le traitement de chaque ligne, on contrôle la présence du tiers dans une table TIERS.
S'il existe (SELECT OPEN CLOSE), on ne fait rien et s'il n'existe pas, on insère le tiers (INSERT ExecSQL et COMMIT).

Dans tous les cas, on insère (INSERT et ExecSQL) chaque ligne du fichier dans la table LOT et on commit uniquement à la fin des contrôles.

Du coup, j'ai mis en place 2 transactions, une pour la table LOT et une pour la table TIERS.

Sous XP, tout fonctionne impeccable.
En revanche sous Win7, avec ce même fichier j'ai systématiquement une erreur EOutofMemory vers la 5000 ème ligne sur 6914 quand je contrôle la présence du Tiers dans la Table TIERS.

Avez-vous déjà fait face à ce problème.

Merci pour votre aide et si vous avez besoin d'autres informations...

Cordialement.

2 réponses

grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
3 juil. 2013 à 10:08
Bonjour,

Mon problème concernant l'erreur EOutofMemory depuis la migration de mes sources Delphi 2009 vers XE3 a été résolu en installant la mise à jour pour Delphi XE3. Il devait s'agir d'un bug qui a été corrigé.

Cordialement,
3
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
14 juin 2013 à 14:43
Bonjour,

J'apporte quelques précisions.

En dehors de mon cas exposé ci-dessus, avez-vous déjà rencontré des problèmes de mémoires insuffisantes (EOutMemory) suite à la migration d'un projet sous Delphi 2009 vers XE3 ?

Pensez-vous que le problème vienne de la migration du code ? Ou des composants IBx que j'utilise.

Merci d'avance.

Cordialement,
0
Rejoignez-nous