AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler: zu wenig Arbeitsspeicher für Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler: zu wenig Arbeitsspeicher für Datenbank

Ein Thema von BAMatze · begonnen am 18. Mai 2009 · letzter Beitrag vom 19. Mai 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:01
Datenbank: DBE- Table • Version: 2007 • Zugriff über: dynamisch
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:
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.
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 ) trotzdem bleibt der Fehler.
2. Account Sero
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:04
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.
Markus Kinzler
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:07
Zitat von mkinzler:
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.
Passiert sowas oft?
2. Account Sero
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:08
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:10
Zitat:
Passiert sowas oft?
Hin und wieder bis oft.
Markus Kinzler
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:11
Also bleibt mir doch nur auf externe Komponenten zurückzugreifen, wenn ich nicht alles in Ini oder Excel über Ole speichern will?
2. Account Sero
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:13
Ist IBX nicht Teil von TDE? Sonst wären vielleicht Zeos einen Blick wert ( auf jeden Fall für lokale/embedded Datenbestände)
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:17
Hallo,

Zitat:
Hin und wieder bis oft.
Moment !

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
Heiko
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:24
Hallo,

welche Datenmenge?

Wenn's wenig ist, schau Dir mal TDBF an, kann mit dBase-Tabellen umgehen, braucht keine BDE und keinen (wie auch immer gearteten) Datenbankserver. Für kleinere Sachen durchaus brauchbar.

Hoika nennt die wesentlichen Ursachen für Probleme mit der BDE, bei "sachgerechter" Nutzung läuft sie durchaus über lange Zeiträume stabil.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Fehler: zu wenig Arbeitsspeicher für Datenbank

  Alt 18. Mai 2009, 14:26
Trotzdem würde ich heute keine (Neu-)Programm mehr damit entwickeln bzw. den Umgang mit der BDE erlernen
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz