Announcement

Collapse
No announcement yet.

Anfängerfrage: Speicherfresser

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anfängerfrage: Speicherfresser

    Moin moin,<BR>
    hier mein Problem:<BR>
    Ich führe einen DataReader.Reade() in einer While()-Schleife aus,
    mache Änderungen und schreibe diese mit einem SQLCommand.ExecuteNonQuery() zurück.<BR>
    Da die Tabelle aber viele Datensätze hat, bläht sich mein Programm im Arbeitsspeicher immer weiter auf, bis zum Speicherende und damit zum Abbruch!<BR>
    Ich habe es schon an einigen Objekten mit .Dispose() versucht, aber keine Besserung.<BR>
    Welche grundlegenden Fehler mache ich?<BR>

    Danke und MfG,
    H. Reimers

  • #2
    Hallo,

    wenn das Problem mit dem SqlDataReader auftritt, wie sieht ein kurzes Testprogramm aus, mit dem dieser Effekt jederzeit reproduziert werden kann? Da der offene SqlDataReader die genutzte Verbindung (SqlConnection) blockiert, muss der ExecuteNonQuery-Aufruf eine zweite Verbindung nutzen. Um hier die Kontrolle zu behalten, sollte explizit immer eine eigene Verbindung (SqlConnection) definiert und von Hand geöffnet/geschlossen werden

    Comment


    • #3
      Hallo,

      das Problem scheint beim ODBC zu liegen!
      Ich habe ein vereinfachtes Programm geschrieben und für das Update jeweils einen SQLCommand + SQLConnection und einen ODBCCommand + ODBCConnection erstellt.
      Wenn ich ein SQL-Update mache, dann ist alles gut.
      Wenn ich aber den ODBC-Part benutze, dann fängt das Programm an, den Arbeitsspeicher zu fressen!
      Ich kann mir das i.A. nicht erklären!

      Comment

      Working...
      X