Entwickler-Ecke

Datenbanken - Sperrungs-Datei ist zu groß


Buggi - Di 05.11.02 17:02
Titel: Sperrungs-Datei ist zu groß
Hi Leutz,

ich bekomme bei der Erzeugung eines Quickreport's die Fehlermeldung
"Sperrungs-datei ist zu groß". Allerdings nur wenn die Datenmenge größer ist.

In der DetailbandBeforePrint steht folgender Code

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  tempstring := 'select SUM(Anzahl*preis*vk_aufschlag) AS Fremdleistung'
  +' from materialauftrag' + DateiNamenAnhang()+ '.db where auftragsnummer='
  + datamodule6.ta_auftragauftragsnummer.asstring+ ' AND Gruppe=7';
  datamodule6.query1.active:=false;
  datamodule6.query1.sql.clear;
  datamodule6.query1.sql.add(tempstring);
  datamodule6.query1.active:=true;
  if datamodule6.query1.Fields.Fields[0].asfloat > 0 then
     LFremdleistung.Caption := format('%m',[datamodule6.query1.Fields.Fields[0].asfloat])
  else LFremdleistung.Caption:= '';

Ich hatte mal irgentwo gelesen, das man dem Problem mit dem Löschen
der Dateien mit den Endungen .net und .lck zu Leibe rücken kann, aber war nich so.
Weiß jemand Rat?

Gruß Burkhard


bis11 - Di 05.11.02 21:46

Probiere es einfach mal so :


Quelltext
1:
2:
3:
tempstring := 'select SUM(Anzahl*preis*vk_aufschlag) AS Fremdleistung' 
  +' from materialauftrag ' + DateiNamenAnhang()+ '.db where auftragsnummer=' 
  + IntToStr(datamodule6.ta_auftragauftragsnummer.asinteger+ ' AND Gruppe=7';


LCS - Mi 06.11.02 09:46

Hi
Buggi hat folgendes geschrieben:

Ich hatte mal irgentwo gelesen, das man dem Problem mit dem Löschen
der Dateien mit den Endungen .net und .lck zu Leibe rücken kann, aber war nich so.

Jein. Das Löschen dieser Dateien bringt nur was, wenns darum geht nach einem Programmabsturz o. Ä. nicht zurückgesetzte Satzsperren wieder verschwinden zu lassen.

Du verwendest hier eine Query, die du beim Drucken für jeden einzelnen Datensatz auslöst. Ich würde an deiner Stelle mal Versuchen diese daten gleich in deinem Dataset für den Druck mit einzubinden. Dann dauert zwar das Öffnen der Datenmenge unter Umständen etwas länger, aber du hast es nur einmal. Damit würdest du das Problem der Sperren umgehen und innerhalb des DetailbandBeforePrint würde sich dein Code auf die Abfrage reduzieren.

Gruss Lothar


Buggi - Mi 06.11.02 17:31

Hi Lothar,

Du schriebst
Zitat:
Ich würde an deiner Stelle mal Versuchen diese daten gleich in deinem Dataset für den Druck mit einzubinden.


Kannst Du das noch mal näher erläutern. Und was macht im Zusammenhang mit der Query die Sperrungs-Datei?

Zur Erklärung : Ich hab verschiedene Reports die die Aufträge wiederspiegeln mit unterschiedlichen Informationsgehalt.
Dieser Report soll u.a. die Fremdleistungen (Gruppe=7) beinhalten.

Oh, by the way, bis11, das funzt nicht

Gruß Burkhard


LCS - Mi 06.11.02 18:14

Hi
ich meinte damit folgendes:
Die Daten für den Report rufst du doch wahrscheinlich ebenfalls über eine Query ab. Bereits in dieser Query würde ich mittels JOIN auch die Werte abrufen, die du hier für jedes Detailband abrufst.

Gruss Lothar