vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: VB-Programm frisst Arbeitsspeicher auf 
Autor: sandimandi
Datum: 07.02.08 15:57

Hi & danke für die Antwort.

Also in dem Fenster erscheinen dann 3 max. 5 Funktionen, also nix weltbewegendes.

Ich poste mal teile vom Source...

Hier der Importaufruf (von temp. Tabelle):
(dies ist schon der geänderte Auruf, also Funktion wird nach 100 Datensätzen beendet und dann wieder aufgerufen
NOMOREDATA:
        'Temp-Tabelle testen und importieren
        booImport = funImportManu(ifTestImport, ifPrint, ifAir, ProgressBar1, _
          lblProgressBar, Me.strPrinter, booLaserPrinter, i, strShortFileName)
        'Warum? wegen Speicherbelastung bei zu vielen Datensätzen
        If returntoimport Then GoTo NOMOREDATA
Hier der Anfang der eigentlichen Import-Funktion:
    Dim rst As ADODB.Recordset
 
    Dim strDatensaetzeWerdenImportiert
    strDatensaetzeWerdenImportiert = funGetMsgTrans(" Datensätze werden" & _
      "importiert!", 0, pubIntLanguage)
 
 
    Set rst = objDataTier.RetrieveRS("SELECT * FROM " & conTmpImportTbl & "" & _
      "WHERE Band_ID = " & pubBand & ";")
 
    returntoimport = False
 
'Nur beim 1.File
        If intFileNo = 0 Then objDataTier.Execute ("DELETE FROM " & _
          conImportTblAir & ";")
 
 
        y = funRecordCount(conTmpImportTbl & " WHERE Band_ID = " & pubBand)
        progBar.Max = 100
        progBar.Min = 0
        progBar.Value = 0
        Dim aVarBlank() As Variant
        ReDim aVarBlank(1, X)
        For z = 0 To X
          aVarBlank(0, z) = rst.Fields(z).Name
        Next z
 
...
...
So, gleiche Funktion, nur ab etwas weiter unten, ab hier beginnt die Schleife:
(Schon mit neuer Änderung wenn i > 99 dann verlasse Funktion und rufe sie komplett neu auf.)
        With rst
        If Not .BOF Then .MoveFirst
        Do While Not .eof
 
            If i > 99 Then
                returntoimport = True
                GoTo LEAFFUNCTION
            End If
 
            If strLPtmp = "" Then
                i = i + 1
            End If
 
            aVar = aVarBlank
            For z = 0 To X
                aVar(1, z) = .Fields(z).Value
            Next z
 
            Call funMappingStart(aVar, frmImport.cboCustomer.SubItem( _
              frmImport.cboCustomer.ListIndex, 1), objImportSpec, _
              frmImport.cboAirMappingName.SubItem( _
              frmImport.cboMappingName.ListIndex, 2), True, , , True)
 
            'Defaultwerte eintragen, wenn nix da is
            Call funAddDefaults(aVar, objImportSpec)
 
 
...
...
...
hier folgen jetzt diverse Checkroutine (das is wirklich viel deshalb lass ich _
  das mal weg)
...
...
...
 
 
            If UCase(aVar(0, UBound(aVar, 2))) = "IMPORTERROR_FIELDS" Then
                ReDim Preserve aVar(UBound(aVar, 1), UBound(aVar, 2) - 2)
            End If
 
            progBar.Value = i
 
            If i Mod 10 = 0 Then
                lblProgBar.Caption = i & "/" & CStr(y) & _
                  strDatensaetzeWerdenImportiert
                DoEvents
            End If
 
 
            If i = 1 Then
                ReDim Preserve aVar(UBound(aVar, 1), UBound(aVar, 2) + 1)
                aVar(0, UBound(aVar, 2)) = "Band_ID"
            End If
            aVar(0, UBound(aVar, 2)) = "Band_ID"
            aVar(1, UBound(aVar, 2)) = pubBand
 
 
 
            If Len(Nz(aVar(1, iIMPORTEXPORTTYPEAIR), "")) = 1 Then
                strImpExpType = aVar(1, iIMPORTEXPORTTYPEAIR)
                Select Case UCase(strImpExpType)
                    Case "P": strImpExpType = "Permanent"
                    Case "R": strImpExpType = "Repair & Return"
                    Case "T": strImpExpType = "Temporary"
                    Case Else
                    strImpExpType = "Permanent"
                End Select
 
                aVar = funSetArrayValue( _
                        "IMPORTEXPORTTYPE", _
                        strImpExpType, _
                        aVar)
            End If
 
.usw...
Hier das Ende der Funktion:

        Loop
        End With
 
 
LEAFFUNCTION:
 
    Call objDataTier.Execute("DELETE FROM tblPrint WHERE Band_ID = '" & pubBand _
      & "'")
 
    Set rst = Nothing
 
    funImportManu = True
 
PROC_EXIT:
    objErr.Pop
    Exit Function
PROC_ERR:
    objErr.HandleError
    Resume PROC_EXIT
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
VB-Programm frisst Arbeitsspeicher auf938sandimandi07.02.08 14:54
Re: VB-Programm frisst Arbeitsspeicher auf652BAStler07.02.08 15:25
Re: VB-Programm frisst Arbeitsspeicher auf643sandimandi07.02.08 15:57
Re: VB-Programm frisst Arbeitsspeicher auf605BAStler07.02.08 16:37
Re: VB-Programm frisst Arbeitsspeicher auf561sandimandi07.02.08 16:44
Re: VB-Programm frisst Arbeitsspeicher auf578BAStler07.02.08 19:25
Re: VB-Programm frisst Arbeitsspeicher auf558sandimandi08.02.08 00:48
Re: VB-Programm frisst Arbeitsspeicher auf577sandimandi08.02.08 11:29
Re: VB-Programm frisst Arbeitsspeicher auf603sandimandi08.02.08 11:30
Re: VB-Programm frisst Arbeitsspeicher auf571BAStler08.02.08 12:40
Re: VB-Programm frisst Arbeitsspeicher auf600sandimandi08.02.08 13:04
Re: VB-Programm frisst Arbeitsspeicher auf648sandimandi08.02.08 13:19
Re: VB-Programm frisst Arbeitsspeicher auf695BAStler08.02.08 14:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel