Einzelnen Beitrag anzeigen

windi

Registriert seit: 22. Dez 2004
Ort: Chemnitz
21 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Select-Query auf MS-SQL-Server - nicht genügend Speicher

  Alt 29. Sep 2009, 12:19
Datenbank: MS-SQL-Server • Version: 2005 • Zugriff über: ADO
Hallo Leute,

habe folgendes Problem: In meinen Programm versuche ich über eine ADOConnection + ADOQuery eine SELECT-Abfrage auf einen MS-SQL-Server auszuführen:

SELECT MAX(protRecord_ID) FROM [WeldMeasureProt_T] WHERE [timerName]='R1SK1' AND [progNo]=146

(Die Daten in der WHERE-Klausel sind nur Beispiele) Diese Abfrage (und viele weitere) werden zyklisch immer wieder aufgerufen. Nach einiger Zeit bekomme ich jedoch eine Exception wenn ich die ADOQuery aktivieren möchte: "1240640 - Für diesen Vorgang ist nicht genügend Speicher verfügbar" Nach einiger Zeit kommt zusätzlich noch die Meldung: "Zugriffsverletzung bei Adresse 7C911F6E im Modul 'ntdll.dll'. Lesen von Adresse 000000004". Danach ist das Programm abgeschmiert.

Die SQL-Abfragen werden dabei in Threads ausgeführt. Hintergrund: Meine Programm kommuniziert mit einer SPS und empfängt zyklisch Meldungen. Diese müssen mit anderen Informationen aus verschiedenen Tabellen der SQL-Datenbank verknüpft und in eine andere Tabelle geschrieben werden. Anfangs hatte ich eine zyklische Arbeitsweise verwendet - leider kam es hier zu nicht akzeptablen Verzögerungen beim der Datenbankabfrage (teilweise 5s für eine SELECT-Query!) Deshalb habe ich die Informationen der SPS einem Thread übergeben, der ADOConnection und ADOQuery selbst erzeugt und nach der Abarbeitung auch wieder frei gibt. (Ich weiss die Beschreibung ist nicht so toll aber der Quellcode ist zu groß um diesen hier zu posten)

Die Fehlermeldung mit dem nicht genügend Speicher ist ja ein Indiz, nur wenn ich mir im Taskmanager den Speicherverbrauch meines Programmes anschau, dann ist der noch "normal" - also ca. 32MB - mal bissel mehr, mal bissel weniger - ich glaube also nicht dass es ein Speicherleak ist - habs auch mal mit Eurekalog getestet - das Programm hat keine Fehler gebacht.

Vielleicht hat ja schon mal jemand von euch mit einem solchen Problem zu kämpfen gehabt oder zumindest ne Erklärung für die Fehlermeldungen? Hab schon gegoogelt - nur nichts zufriedenstellendes gefunden.

Bin für jede Hilfe dankbar!

Windi
  Mit Zitat antworten Zitat