![]() |
Datenbank: DBE- Table • Version: 2007 • Zugriff über: dynamisch
Fehler: zu wenig Arbeitsspeicher für Datenbank
Hallo nochmal an alle DP´ler,
Wusste jetzt nicht, in welche Sparte ich das Posten sollte, da ich eigentlich eine Komponente derzeit vorbereite, die eine Datenbank-Anbindung beinhaltet aber da ich derzeit nur bei der Implementierung der Datenbank stecke, habe ich für diese Sparte entschieden. Also ich habe folgenden Code für meine Datenbank erstellt:
Delphi-Quellcode:
Die db-Datei existiert und es hat auch bis ebend sehr gut funktioniert, bis auf einmal die Meldung in der gekennzeichneten Zeile kommt, dass zu wenig Arbeitsspeicher vorhanden ist. Habe alle Änderungen, welche ich seit der funktionierenden Version, rückgängig gemacht (glaube ich :-D ) trotzdem bleibt der Fehler.
unit TischDatenbank;
interface uses Classes, Controls, DBTables, DB, DBCtrls, Dialogs, Graphics; const DatenbankFile = 'Sensordatenbank.db'; Type TTischDatenbank = class(TWinControl) private FTable: TTable; FTBTableSensorname: TStringfield; FTBVersuchstabelleSpleisspositionrechts: TFloatField; FTBVersuchstabelleSpleisspositionlinks: TFloatField; FTBVersuchstabelleMantellaenge: TFloatField; FTBVersuchstabelleGap: TFloatField; FTBVersuchstabelleManteldurchmesser: TFloatField; FDataSource: TDataSource; FDBNavigator: TDBNavigator; FDBEdit: TDBEdit; function CreateTable: TTable; function CreateDataSource: TDataSource; function createDBNavigator: TDBNavigator; function createTDBEdit: TDBEdit; protected //procedure CreateWnd; override; published public constructor create(AOwner: TComponent); end; implementation constructor TTischDatenbank.create(AOwner: TComponent); begin inherited create(AOwner); Controlstyle := Controlstyle - [csAcceptsControls]; Visible := true; Color := clBlack; Width := 300; Height := 300; FTable := CreateTable; //FDataSource := CreateDataSource; //FDBNavigator := CreateDBNavigator; end; function TTischDatenbank.CreateTable: TTable; begin result := TTable.Create(nil); result.TableName := DatenbankFile; result.TableType := ttParadox; if not result.Exists then // <--- hier kommt der Fehler begin Showmessage('Die Datenbankdatei "Sensorendaten.db" konnte nicht gefunden werden'); Enabled := false; end else result.Open; {FTBTableSensorname := TStringField.create(nil); result.Fields.Add(FTBTableSensorname); {result.Fields.Add(FTBVersuchstabelleSpleisspositionrechts); result.Fields.Add(FTBVersuchstabelleSpleisspositionlinks); result.Fields.Add(FTBVersuchstabelleMantellaenge); result.Fields.Add(FTBVersuchstabelleGap); result.Fields.Add(FTBVersuchstabelleManteldurchmesser); } //result.CreateTable; end; function TTischDatenbank.CreateDataSource: TDataSource; begin result := TDataSource.Create(nil); result.DataSet := FTable; end; function TTischDatenbank.createDBNavigator: TDBNavigator; begin result := TDBNavigator.Create(nil); result.Parent := Self; result.DataSource := FDatasource; result.Left := 10; result.Top := 10; result.Width := 200; result.Height := 20; end; function TTischDatenbank.createTDBEdit: TDBEdit; begin result := TDBEdit.Create(nil); result.Parent := Self; result.Enabled := true; result.DataSource := FDataSource; //result.DataSource.DataSet := FTable; result.DataField := FTBTableSensorname.FieldName; result.Left := 10; result.Top := 50; result.Width := 100; result.Height := 20; end; {procedure TTischDatenBank.CreateWnd; begin //FDBEdit := CreateTDBEdit; end;} end. |
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Alle Anwendungen, welche die BDE verwenden (auch die IDE) beenden und neu starten.
Das ist einer der Gründe, warum man die BDE nicht mehr verwenden sollte. |
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Zitat:
|
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Hallo,
Ursache ist, dass du das Programm beim Debuggen wohl manchmal abschiesst, die BDE bleibt aufgrund der offenen IDE aber auch offen. Die BDE benutzt intern ein paar begrenzte Speicher, die dann irgendwann voll sind. Heiko |
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Zitat:
|
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Also bleibt mir doch nur auf externe Komponenten zurückzugreifen, wenn ich nicht alles in Ini oder Excel über Ole speichern will?
|
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Ist IBX nicht Teil von TDE? Sonst wären vielleicht Zeos einen Blick wert ( auf jeden Fall für lokale/embedded Datenbestände)
|
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Hallo,
Zitat:
Das kommt drauf an. Bsp. 1 TTable wird im Design-Mode schon geöffnet -> besser erst zur Laufzeit öffnen Bsp2: excessives Nutzen von Ctrl+F2. -> besser das Programm sauber beenden. Heiko |
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Hallo,
welche Datenmenge? Wenn's wenig ist, schau Dir mal ![]() Hoika nennt die wesentlichen Ursachen für Probleme mit der BDE, bei "sachgerechter" Nutzung läuft sie durchaus über lange Zeiträume stabil. |
Re: Fehler: zu wenig Arbeitsspeicher für Datenbank
Trotzdem würde ich heute keine (Neu-)Programm mehr damit entwickeln bzw. den Umgang mit der BDE erlernen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz