vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

Fragen & Antworten rund um sev-Komponenten
Re: sevDatagrid rowloaded Geschwindigkeit 
Autor: Kewi
Datum: 10.12.05 07:02

Sorry, zu schnell abgeschickt, noch mal:



Ich greife mit meinem Datagrid aud eine DB-Tabelle zu, die IDs enthält, die auf andere Tabellen verweisen.
Um eine sinnvolle Anzeige zu erhalten, verwende ich das rowloaded-Ereignis wie folgt:
Dim nID10 As Long
With Item
nID10 = Val(.CellText("beleg_adr_id"))
If nID10 = 0 Then
.CellText("beleg_adr_id") = "unbekannt"
End If
 
If nID10 > 0 Then
Dim vg10 As ADODB.Recordset
Set vg10 = New ADODB.Recordset
With vg10
.ActiveConnection = conn
.CursorType = adOpenStatic
.LockType = adLockOptimistic
SQL = "SELECT adr_nr from adressen WHERE adr_id = " & nID10
.Open SQL
End With
If Not vg10.EOF Then
.CellText("beleg_adr_id") = vg10!adr_nr
End If
End If
End With
Für farbliche Markierungen bestimmter Datensätze gehe ich so vor:
'LAGER GEBUCHT?
Dim nID5 As Long
With Item
nID5 = Val(.CellText("beleg_nr"))
If nID5 > 0 Then
Dim vg5 As ADODB.Recordset
Set vg5 = New ADODB.Recordset
With vg5
.ActiveConnection = conn
.CursorType = adOpenStatic
.LockType = adLockOptimistic
SQL = "SELECT vorgangsart_lager_plus," & _
  "vorgangsart_lager_minus,vorgangsart_op_plus, vorgangsart_op_minus " _
& " from vorgangsart WHERE vorgangsart_id = " & _
Grid1.Recordset!beleg_vorgangsart
.Open SQL
End With
If Not vg5.EOF Then
    If vg5!vorgangsart_lager_plus = True Or vg5!vorgangsart_lager_minus = True _
      Then
 
        Dim gebucht As ADODB.Recordset
        Set gebucht = New ADODB.Recordset
        With gebucht
        .ActiveConnection = conn
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        SQL = "SELECT pos_lager_gebucht, pos_artikel_id from position WHERE" & _
          "pos_artikel_id > 0 AND pos_beleg_nr  = " & nID5
        .Open SQL
        End With
        While Not gebucht.EOF
        If gebucht!pos_lager_gebucht = False Then
            Dim rs9 As ADODB.Recordset
            Set rs9 = New ADODB.Recordset
            With rs9
            .ActiveConnection = conn
            .CursorType = adOpenStatic
            .LockType = adLockOptimistic
            SQL = "SELECT artikel_check_lager from artikel WHERE artikel_id = " _
              & gebucht!pos_artikel_id
            .Open SQL
            End With
            If rs9!artikel_check_lager = True Then
            Counter = 1
            End If
        End If
        gebucht.MoveNext
        Wend
 
        If Counter <> 0 Then
            .ForeColor = vbRed
        End If
    End If 'lager_plus
 
        If vg5!vorgangsart_op_plus = True Or vg5!vorgangsart_op_minus = True _
          Then
 
        Dim opgebucht As ADODB.Recordset
        Set opgebucht = New ADODB.Recordset
        With opgebucht
        .ActiveConnection = conn
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        SQL = "SELECT beleg_op_gebucht from beleg WHERE beleg_nr  = " & nID5
        .Open SQL
        End With
 
        While Not opgebucht.EOF
        If opgebucht!beleg_op_gebucht = False Then
            counter2 = 1
        End If
 
 
        opgebucht.MoveNext
        Wend
 
        If counter2 <> 0 Then
            .ForeColor = vbBlue
        End If
    End If 'op_plus
End If 'vg5.eof
End If 'nid5
 
End With 'item
Counter = 0
Leider dauert es sehr lange, bis das Datagrid gefüllt ist.
Ich habe mal einen Timer eingebaut, wie hier vorgeschlagen.

http://www.vbarchiv.net/forum/id20_i2340t2325.html


Ergebnis ohne rowloaded:
openRecordset: 0,015625
Grid: 0,109375

Ergebnis mit rowloaded:
openRecordset: 0,015625
Grid: 4,34375

Kann ich die Performance irgendwie steigern?

Viele Grüße
Kewi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevDatagrid rowloaded Geschwindigkeit1.066Kewi10.12.05 06:58
Re: sevDatagrid rowloaded Geschwindigkeit881Kewi10.12.05 07:02
Re: sevDatagrid rowloaded Geschwindigkeit718ModeratorDieter12.12.05 08:23
Re: sevDatagrid rowloaded Geschwindigkeit548Kewi12.12.05 13:15
Re: sevDatagrid rowloaded Geschwindigkeit561Kewi12.12.05 16:46
Re: sevDatagrid rowloaded Geschwindigkeit792ModeratorDieter12.12.05 18:13
Danke! Das war! o.T.521Kewi12.12.05 18:44

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