Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE
  • 1 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 10

#1 17-06-2008 09:43:36

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

[RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Bonjour tout le monde,

Je suis content de trouver un forum PowerBuilder. J'ai, en effet, un grand problème que je n'arrive pas à résoudre tout seul.

Lorsque j'exporte des données à partir de ma base de données, mon application PB (l'EXE) peut passer, selon le nombres des données, de 30Mo à 700Mo.
Le problème c'est qu'à la fin de l'export, la taille de mon application reste à 700Mo (Malgré mon quit, distroy, etc).
Après une recherche sur Internet, j'ai trouvé que PB, crée un OLE Object pour chaque objet Excel (Classeur, Feuille, Cellule, etc) référencés dans le programme. Et visiblement, à la fin de l'export, PB ne les détruit pas
Quelqu'un aurait-il une solution?

Merci d'avance.

Hors ligne

 

#2 17-06-2008 09:50:49

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

salut,
tu veux dire par la que ta session excel reste ouverte ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 17-06-2008 09:52:55

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Bonjour pick ouic,
Non, l'application Excel ferme. L'objet OLE est détruit. Mais la taille de mon application PB reste à 700Mo.

Hors ligne

 

#4 17-06-2008 09:56:07

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

ceci est confirmé au niveau du gestionnaire des taches ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 17-06-2008 10:00:29

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Oui, c'est par le gestionnaire des tâches que j'ai su la taille de mon application...

Hors ligne

 

#6 17-06-2008 10:07:16

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

on peut voir ton script ?

je ferai un essai sous pb11 et une version anterieure de pb...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 17-06-2008 11:27:51

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

pick ouic a écrit:

on peut voir ton script ?

je ferai un essai sous pb11 et une version anterieure de pb...

Mon code est divisé en plusieurs fonctions. En plus, j'ai créé un objet OleExcel pour manipuler Excel. En plus, mon import est à partir d'une base de données. Comment faire pour te copier coller mon code?
Est-ce possible? Je ne vois pas comment!

Dernière modification par mamid1706 (17-06-2008 11:32:24)

Hors ligne

 

#8 17-06-2008 12:15:48

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Bonjour,

Pour que ton PB diminue en taille, il faut impérativement faire un GarbageCollect() après chaque instruction OLE (voir livre blanc de Sybase sur le sujet).


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#9 17-06-2008 14:44:20

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Chrnico a écrit:

Bonjour,

Pour que ton PB diminue en taille, il faut impérativement faire un GarbageCollect() après chaque instruction OLE (voir livre blanc de Sybase sur le sujet).

Chrnico,

J'ai utilisé ta fonction à la fin de l'export ça n'a pas marché.
Mais après chaque instruction, ça marche. La taille de mon application n'augmente  plus que de 700Ko.

Cependant, je pense que cela couteux. J'ai cherché à une autre solution. la voici:

1. Ecrire dans un fichier Texte.
2. Créer un fichier Excel.
4.Créer une chaîne de caractère contenant le code Visual Basic lisant dans le fichier Texte et le copiant dans le fichier Excel
3.Créer un nouveau module dans Excel dont le code est la chaîne créée précédemment

Code: :

String lsSheetName

uoExcel   = CREATE unvo_OleExcel
uoExcel.of_Connect( )

uoExcel.ActiveWorkbook.VBProject.VBComponents.Add( 1)

lsSheetName    = "MaFauille"
lsActiveSheet  = "ActiveWorkbook.Sheets(~"" + lsSheetName + "~")"

uoExcel.ActiveWorkbook.VBProject.VBComponents.Item("Module1").CodeModule.AddFromString( &
"Sub PowerBuilder_MacroData()"                   +    "~r~n"       +   &
                                         "~r~n"       +      &
"' Ceci est un commentaire dans VB"                      +    "~r~n"       +   &
lsActiveSheet + ".Cells.Select"                      +  "~r~n"      +        &
"With Selection.Font"                         +      "~r~n"  +    &
"  .Name = ~"Arial~""                   +    "~r~n"      +          &
"  .Size = 8"                           +  "~r~n"      +        &
"  .Strikethrough = False"                   +    "~r~n"      +          &
"  .Superscript = False"                    +     "~r~n"  +   &
"  .Subscript = False"                     +      "~r~n"   +    &
"  .OutlineFont = False"                    +     "~r~n"   +   &
"  .Shadow = False"                    +     "~r~n"   +   &
"  .Underline = xlUnderlineStyleNone"                    +     "~r~n"   +   &
"  .ColorIndex = xlAutomatic"                   +        "~r~n"      +      &
"End With"                                       +         "~r~n"       +       &
"End Sub")

Hors ligne

 

#10 17-06-2008 14:57:50

mamid1706  
Membre
Date d'inscription: 17-06-2008
Messages: 6
Pépites: 25
Banque: 0

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

Merci à tous.

Hors ligne

 

#11 17-06-2008 15:57:26

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

merci à toi pour ta reponse


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#12 18-06-2008 14:12:51

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE

mamid1706 a écrit:

Chrnico a écrit:

Bonjour,

Pour que ton PB diminue en taille, il faut impérativement faire un GarbageCollect() après chaque instruction OLE (voir livre blanc de Sybase sur le sujet).

Chrnico,

J'ai utilisé ta fonction à la fin de l'export ça n'a pas marché.
Mais après chaque instruction, ça marche. La taille de mon application n'augmente  plus que de 700Ko.

Cependant, je pense que cela couteux.

C'est un point de vue. Je pense pas que l'ajout de garbagecollect() soit si couteux que ça... Une instruction de plus après un appel OLE c'est pas la mort et ce n'est pas consommateur en temps machine. A l'inverse ton contournement obligera tes successeurs à coder du VBScript dans un fichier texte (donc sans compilateur pour vérifier la syntaxe)... En terme de maintenance je ne suis pas certain que ce soit le plus simple...

mamid1706 a écrit:

J'ai cherché à une autre solution. la voici:

1. Ecrire dans un fichier Texte.
2. Créer un fichier Excel.
4.Créer une chaîne de caractère contenant le code Visual Basic lisant dans le fichier Texte et le copiant dans le fichier Excel
3.Créer un nouveau module dans Excel dont le code est la chaîne créée précédemment

Code: :

String lsSheetName

uoExcel   = CREATE unvo_OleExcel
uoExcel.of_Connect( )

uoExcel.ActiveWorkbook.VBProject.VBComponents.Add( 1)

lsSheetName    = "MaFauille"
lsActiveSheet  = "ActiveWorkbook.Sheets(~"" + lsSheetName + "~")"

uoExcel.ActiveWorkbook.VBProject.VBComponents.Item("Module1").CodeModule.AddFromString( &
"Sub PowerBuilder_MacroData()"                   +    "~r~n"       +   &
                                         "~r~n"       +      &
"' Ceci est un commentaire dans VB"                      +    "~r~n"       +   &
lsActiveSheet + ".Cells.Select"                      +  "~r~n"      +        &
"With Selection.Font"                         +      "~r~n"  +    &
"  .Name = ~"Arial~""                   +    "~r~n"      +          &
"  .Size = 8"                           +  "~r~n"      +        &
"  .Strikethrough = False"                   +    "~r~n"      +          &
"  .Superscript = False"                    +     "~r~n"  +   &
"  .Subscript = False"                     +      "~r~n"   +    &
"  .OutlineFont = False"                    +     "~r~n"   +   &
"  .Shadow = False"                    +     "~r~n"   +   &
"  .Underline = xlUnderlineStyleNone"                    +     "~r~n"   +   &
"  .ColorIndex = xlAutomatic"                   +        "~r~n"      +      &
"End With"                                       +         "~r~n"       +       &
"End Sub")

Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] PB11.1: Problème taille application PB après Export Excel via OLE
  • 1 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 10

Pied de page des forums

Propulsé par FluxBB 1.2.22