Announcement

Collapse
No announcement yet.

Fehlermeldung "zu viele offene Tabellen vorhanden"

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

  • Fehlermeldung "zu viele offene Tabellen vorhanden"

    Hallo,<br>
    Ich habe eine Paradoxdatenbank, wo in einem Datensatzfeld ein eindeutiger Name eingetragen werden soll (Name + lfd Nummer).<bre>
    Auf die Tabelle greife ich folgendermaßen zu:

    <pre>
    while(fErgebnis){
    Query->SQL->Clear();
    Query->SQL->Text = "SELECT * FROM " + DBName + " WHERE Name = '" + sName + "'";
    Query->ExecSQL();
    Query->Open();
    if(Query->RecordCount == 0)fErgebnis = false;// Name nicht gefunden
    else{
    fErgebnis = true;//Name schon vorhanden
    i++;
    sName = sDefaultName + IntToStr(i);
    }
    Query->Close();
    }
    </pre>

    Durch diese Abfrage werden im Laufe der Zeit natürlich viele Abfragen gestartet. Ab einer gewissenen Anzahl (ich denke so bei 255) kommt eine EDBEngineError - Exception mit dem Titel "zu viele offene Tabellen vorhanden". Nur wie kann das sein, wo ich doch jedesmal die TQuery- Komponente mit Close() wieder schliesse?

    Gruß Thorsten

  • #2
    Hallo Thorsten,

    nach dem Zuweisen der SELECT-Abfrage wird zuerst <b>ExecSQL</b> und danach <b>Open</b> aufgerufen. Die Methode ExecSQL darf nur dann verwendet werden, wenn die SQL-Anweisung keine Ergebnismenge zurückliefert. Ich habe das zwar so noch nicht ausprobiert, aber an dieser Stelle hätte ich eine Exception erwartet (der Aufruf von Open für eine nicht SELECT-Anweisung wird sofort als Fehler bemängelt).

    Kommentiere den Aufruf von ExecSQL aus, dann sollte der Spuk verschwunden sein

    Comment


    • #3
      Hallo Andreas,

      danke, jetzt läuft es :-)<br>
      Ich glaube diese Konstellation hatte ich mir aus irgendeiner Hilfe zusammengebastelt. <br>
      Ich bin nur froh das dieser Fehler an dieser offensichtlichen Stelle aufgetreten ist, sonst hätte ich aber eine interessante Fehlersuche vor mir gehabt...

      Gruß Thorste

      Comment

      Working...
      X