Pb Mémoire insuffisante [Résolu]

VbKenza 27 Messages postés mercredi 25 juillet 2007Date d'inscription 12 décembre 2011 Dernière intervention - 5 nov. 2008 à 18:19 - Dernière réponse : VbKenza 27 Messages postés mercredi 25 juillet 2007Date d'inscription 12 décembre 2011 Dernière intervention
- 7 nov. 2008 à 11:30
Salut tout le monde,  quand j'éxecute mon application sur un serveur Hp ML310 ou hp ML110 et sous un système d'exploitation windows server 2003 le système m'affiche   le message d'erreur "Erreur 7 : Mémoire insuffisante".
si vous avez une idée à propos de mon problème,veuillez me répondre s'il vous plaît.
Merci d'avance.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 5 nov. 2008 à 18:48
3
Merci
décembre : http://www.vbfrance.com/forum/sujet-MEMOIRE-INSUFFISANTE-ERREUR_1047979.aspx
avril : http://www.vbfrance.com/forum/sujet-ERREUR-MEMOIRE-INSUFFISANTE_1105643.aspx
maintenant....

dis-donc tu balades ton problème depuis presque un an, tu poses ta question et ne donne jamais de suite?
il peut persister encore un bon moment tu sais :)

oui oui "c'est autre chose blabla", le fait est de donner suite, c'est la moindre des choses quand on demande de l'aide

bonne soirée

<hr size="2" width="100%" />
Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de PCPT
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 nov. 2008 à 18:31
0
Merci
Salut,

Une idée ? bien évidemment : tu as dans ton code des instructions qui aboutissent à une telle saturation.
Lesquelles ?
Ben... on ne voit rien de ton code !
Commenter la réponse de jmfmarques
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 5 nov. 2008 à 20:02
0
Merci
Salut,

Je vais tenté de répondre.

As-tu un temps de réponse exponentiel?

Avec un jeu de données faible pas de probleme
avec un jeu de données importante BOOM

Essaie de diagnostiquer le problème avec le perform.exe
Regardes le comportement de ta mémoire et essaie d'isoler la fonction qui te pose problème.

Après ré étudie, l'algo en général c'est un problème d'algo.
Il y a avoir une boucle infinie dans ton code.

Ou un probleme de réinitialisation de variable.

Ferme les connections base de données.
N'oublies pas les Set objectX = Nothing
C'est les objet COM (ADO, collection, ) et les collections si tu les utilisent.

Avec un log, écrit le nombre d'objet dans les collections par exemple ou l'etat de tes gros objet.

Il peut être intéressant de logger les requêtes SQL, ou les observer (sql profiler si sql server)
Pour voir si le problème ne vient pas de là. (temps ou  taille des requetes, il faut peut être tuner ta base, index, ...)

Travailles-tu avec une base de données ou excel, si oui laquelle.

Apres la config de ton serveur peut jouer mais en général c'est les programmes qui sont mal fait.
A moins de traiter des volumes tres importants de données (des go ou +)

Le programme marche-t-il sur une autre machine même moins puissante?

Bon courage.
Commenter la réponse de nhervagault
VbKenza 27 Messages postés mercredi 25 juillet 2007Date d'inscription 12 décembre 2011 Dernière intervention - 7 nov. 2008 à 11:30
0
Merci
Bonjour PCPT , vous avez dit que je lance des questions sur le forum sans faire un suivi.oui vous avez raison mais je travaille pour une société mon application tourne bien sur cetrains ordi et à chaque fois ke je rencontre ce pb je me tourne vers le forum. pour mon logiciel j'ai deux version une vb + access et l'autre vb + SQL .
pour celle vb access je peut accéder à certains fenêtres et pour d'autre je reçois le message dit.et par contre je peut pas exécuter la version VB + SQL le système m'affiche le message "Erreur d'éxécution 7 : Mémoire insuffisante."

je démarre mon appli avec un sub Main dont voilà le code :


Sub Main()
Dim WindowsVersion As String
Dim ComputerNameCode As String
Dim SecuriteCode As String
Dim CurrentChar As String
Dim CurrentCharAsc As String
Dim Lng As Integer
Dim PreFixe As String
Dim i As Integer
Dim Nomserveur As String


Dim NumLicence As String
Dim NumLicenceSaisie As String
Dim MsgLicence As String
Dim CleSecret As String
Dim AscCle As String
''InitCommonControlsIsVB
ParaSociete = False
 
  ComputerName = Space(255)
  Call GetComputerName(ComputerName, 255)
  ComputerName = Mid(Trim(ComputerName), 1, 6)


  WindowsVersion = Trim(GetVersion())
  Lng = Len(ComputerName)


  PreFixe = Right(WindowsVersion, 6)
  PreFixe = Trim(Str(Val(PreFixe) + 71))


  CleSecret = Trim("Gest")
  Lng = Len(ComputerName)


  PreFixe = Right(WindowsVersion, 6)
  'ComputerName = StrToLong(Comp uterName)
  ComputerNameCode = ""
  SecuriteCode = ""


Dim j As Integer
j = 0


    For i = 1 To Lng
      CurrentCharAsc = Asc(Mid(ComputerName, i, 1))
       AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))


      CurrentChar = Hex(Val(CurrentCharAsc) + Val(AscCle))
      If Len(CurrentChar) = 1 Then
        CurrentChar = "0" & CurrentChar
      End If
      ComputerNameCode = ComputerNameCode & CurrentChar


    Next i


    For i = 1 To 6
      CurrentCharAsc = Asc(Mid(ComputerNameCode, i, 1))
       AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))
      Code1 = Code1 & Trim(CStr((Val(CurrentCharAsc) + Val(AscCle) + Val(Mid(PreFixe, IIf(Len(PreFixe) > i, i, 1), 1)))))
    Next i


Code1 = Left(Code1, 6)


'''''''''''''''''''''''''''''' 2ème code '''''''''''''''''''''''''''''''''''''
CleSecret = "ALGEST"
ComputerNameCode = ""


   For i = 1 To Lng
     CurrentCharAsc = Asc(Mid(ComputerName, i, 1))
     AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))


     CurrentChar = Hex(Val(CurrentCharAsc) + Val(AscCle))
     If Len(CurrentChar) = 1 Then
      CurrentChar = "0" & CurrentChar
     End If
      ComputerNameCode = ComputerNameCode & CurrentChar
   Next i


   For i = 1 To 6
     CurrentCharAsc = Asc(Mid(ComputerNameCode, i, 1))
     AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))
     Code2 = Code2 & Trim(CStr((Val(CurrentCharAsc) + Val(AscCle) + Val(Mid(PreFixe, IIf(Len(PreFixe) > i, i, 1), 1)))))
   Next i


Code2 = Left(Code2, 6)
'''''''''''''''''''''''''''''' 3ème code ''''''''''''''''''''''''''''''''''''
CleSecret = "MsGest"


    ComputerNameCode = ""


        For i = 1 To Lng
          CurrentCharAsc = Asc(Mid(ComputerName, i, 1))
           AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))


          CurrentChar = Hex(Val(CurrentCharAsc) + Val(AscCle))
          If Len(CurrentChar) = 1 Then
            CurrentChar = "0" & CurrentChar
          End If
          ComputerNameCode = ComputerNameCode & CurrentChar
        Next i


        For i = 1 To 6
          CurrentCharAsc = Asc(Mid(ComputerNameCode, i, 1))
           AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))


          Code3 = Code3 & Trim(CStr((Val(CurrentCharAsc) + Val(AscCle) + Val(Mid(PreFixe, IIf(Len(PreFixe) > i, i, 1), 1)))))
        Next i
Code3 = Left(Code3, 6)
'''''''''''''''''''''''''''''' 4ème code ''''''''''''''''''''''''''''''''''''


CleSecret = "COMMERCE"


    ComputerNameCode = ""


        For i = 1 To Lng
          CurrentCharAsc = Asc(Mid(ComputerName, i, 1))
           AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))


          CurrentChar = Hex(Val(CurrentCharAsc) + Val(AscCle))
          If Len(CurrentChar) = 1 Then
            CurrentChar = "0" & CurrentChar
          End If
          ComputerNameCode = ComputerNameCode & CurrentChar


        Next i


'        Directory


        For i = 1 To 6
          CurrentCharAsc = Asc(Mid(ComputerNameCode, i, 1))
           AscCle = Asc(Mid(CleSecret, IIf(Len(CleSecret) > i, i, 1), 1))
          Code4 = Code4 & Trim(CStr((Val(CurrentCharAsc) + Val(AscCle) + Val(Mid(PreFixe, IIf(Len(PreFixe) > i, i, 1), 1)))))
        Next i
Code4 = Left(Code4, 6)
    SecuriteCode = Code1 & "L" & Code2 & "o" & Code3 & "B" & Code4
'''''''''''''''''''''' Extraire la Clé ''''''''''''''''''''
Dim s As String
Dim st As String


s = Space(255)
Call GetWindowsDirectory(s, 255)


st = Left(s, Len(Trim(s)) - 1)


    Open st & "\system32\config\SysGUserKey.Don" For Random Access Read Write As #1 Len = Len(Enreg)
    NumLicence = "" 'GetSetting("SysLG", App.ProductName, "Licence", 0)
    i = Loc(1)
    If i >= 1 Then
      i = 1
      Seek #1, i
    Else
      i = LOF(1) / Len(Enreg) + 1      If i >1 Then i 1
    End If


    Get #1, i, Enreg
    NumLicence = Enreg.Cle1 & "L" & Enreg.Cle2 & "o" & Enreg.Cle3 & "B" & Enreg.Cle4
'    Close #1
'''''''''''''''''''''''''''''''''''''''''
    If NumLicence <> SecuriteCode Then
     'MsgBox "Vous avez droit à 30 accès au programme dans cas où vous n'avez pas de N°Licence." & Chr(13) & "Si vous atteignez ce nombre là vous n'avez plus possibilité d'accés au programme qu'aprés saisie du N°Licence."
      If Enreg.NbrAcces >= 30 And Enreg.NbrEssai > 3 Then
          End
      Else
      If Enreg.Gratuit = True And Enreg.NbrAcces <= 30 Then
         If MsgBox("il vous reste " & 30 - Enreg.NbrAcces & " accèes gratuit au programme, dès que vous dépasserez 30 accèes, il vous sera demandé de saisir le N°Licence." & Chr(13) & Chr(13) & "   - Si vous voulez resaisir le N°Licence Cliquez sur 'Oui'" & Chr(13) & "   - Sinon cliquez sur 'Non' pour continuer.", vbInformation + vbYesNo, App.ProductName) = vbNo Then
          i = Loc(1)
          If i > 1 Then i = 1
          Enreg.NbrAcces = Enreg.NbrAcces + 1
          Enreg.NbrEssai = 0
          Enreg.Gratuit = True          Enreg.Cle1 "": Enreg.Cle2 "": Enreg.Cle3 = "": Enreg.Cle4 = ""
          Put #1, i, Enreg
         Else
           Load FrmPrincipale
           FrmPrincipale.Show vbModal
         End If
       Else
         Load FrmPrincipale
         FrmPrincipale.Show vbModal
       End If
       End If
    End If
'  End Select


  ComputerName = Space(255)
  Call GetComputerName(ComputerName, 255)
  ComputerName = Trim(ComputerName)
  ComputerName = Left(ComputerName, Len(ComputerName) - 1)
 
  Nomserveur = GetSetting(App.Title, "Settings", "ServerName", "")
 
  If Dir(App.Path & "\MsGestConfig.ini") = "" Then
  Close #1
  Open App.Path & "\MsGestConfig.ini" For Output As #1
  Close #1
  EcritIni "MsGest", "SocName", "", App.Path & "\MsGestConfig.ini"
  Dossier = ""
  End If
  If Nomserveur = "" Then
  Dossier = ""
  Else
  If ComputerName <> Nomserveur Then
  Dossier = GetSetting(App.Title, "Settings", "BdName", "")
  End If
  End If  If Dossier "" Then Dossier LitIni("MsGest", "SocName", App.Path & "\MsGestConfig.ini")
    'Affichage de l'ecran de démarage
    frmSplash.Show
    If Dossier = "" Then
      FrmOuvrirSoc.Show vbModal
    Else
      frmLogin.Show vbModal
    End If
   
    If Not frmLogin.OK Then
      ''l 'ouverture de session a échoué. Application terminée
     End
    End If


  '''''''''''''L'ouverture de l'application'''''''''''''''''''''''
   
    OuvrirSoc = False
    Unload frmSplash
    Unload frmLogin
    Set fMainForm = New FrmMain


    fMainForm.Show
    MDIShow = True
    If ParaSociete = True Then
      frmEntreprise.Show
    End If
   
    ''''''''''Initialisation de la table des valeurs par défaut''''''
   
    fMainForm.sbStatusBar.Panels(2) = UCase(Utilisateur)
    ''Afficher le Chemin  complet de la base de données
   
 
    fMainForm.sbStatusBar.Panels(3).Text = UCase(Mid(Dossier, 3, 100))
   
End Sub

N.B: toutes les variables sont déclarées dans un module en mode Public.

Merci.
Commenter la réponse de VbKenza

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.