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
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
Comment