AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Out of Memory - beim öffnen nicht alle Datensätze laden?
Thema durchsuchen
Ansicht
Themen-Optionen

Out of Memory - beim öffnen nicht alle Datensätze laden?

Ein Thema von bidi · begonnen am 10. Mai 2007 · letzter Beitrag vom 10. Mai 2007
Antwort Antwort
bidi

Registriert seit: 30. Jan 2005
16 Beiträge
 
#1

Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 11:38
Datenbank: postgres • Version: 8.2 • Zugriff über: ADO->ODBC
Hallo!

Ich habe eine ADOTable die eine Tabelle representiert, welche ca. 5 Mio Datensätze hat. Die ADOTable ist eigentlich nur zum anfügen von neuen Datensätzen. Wenn ich die ADOTable öffne, dann versucht er erstmal alle Datensätze zu laden und das endet mit Out of Memory. Ich habe schon versucht MaxRecords auf 1 zu setzen. Gebracht hat's allerdings nichts. Was kann ich also tun AUßER einen Insert-Query zu verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#2

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 12:01
Hi,

möchte man mit SQL leere Datensätze holen, macht man das ja in der Regel mit

Select * from whatever WHERE 1=2 Probier doch deshalb bei der TTable einfach einen sinnlosen Filter zu setzen, der nichts liefert.
Catbytes
  Mit Zitat antworten Zitat
bidi

Registriert seit: 30. Jan 2005
16 Beiträge
 
#3

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 12:23
Als 1=2 will er nicht. Aber entry_id=-1. Allerdings bringt das nichts. Nach dem Öffnen schaufelt er mir 1,5GB in den RAM. Vermutlich wird als Client-Seitig gefiltert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 12:28
Wie ist die Curser-Location?

Kannst du keine Select-Query mit TOP bzw. Limit-Angabe schreiben?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#5

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 12:30
Will er nicht? Lautet so die Fehlermeldung? Ich habe noch keine DB kennengelernt, wo 0=1 oder so nicht funktioniert hätte... Vielleicht gibt´s da auch einen Befehl zum Beschränken der Lieferung, wie "fetch first 50 rows only" bei DB2.

Cu,
UDontknow
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 12:34
Hallo,

ich würde eine empty query aufsetzen (SELECT * FROM tbl WHERE 1 = 2). Diese Query kann dann genauso wie jedes andere TDataset benutzt werden (Insert, Append, Delete, Edit). Damit sind kaum Änderungen am Code notwendig.

Grüße vom marabu
  Mit Zitat antworten Zitat
hoika

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

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 14:39
Hallo,

für eine SQL-Datenbank sollte man die eine Table-Komponente benutzen
(kenne ich jetzt nur von der bde aus eigener Erfahrung).
Was spricht denn gegen die Insert-Query ?


Heiko
Heiko
  Mit Zitat antworten Zitat
ice.icewing

Registriert seit: 10. Feb 2005
17 Beiträge
 
#8

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 14:47
Wenn es nicht zu viel Aufwand macht würde ich die ADOTable durch eine Query ersetzen.
Wenn das nicht geht kann ein View auf die Tabelle nutzen bringen.
create View V_Name as select * from Tabelle where entry_id = (select max(entry_id) from Tabelle);
Dann gibst du deiner Table statt der Tabelle den View und bekommst nur noch den letzten Datensatz in von der Datenbank. Oder halt mit entry_id = -1 gar keinen. Es sollte aber dennoch möglich sein Daten in die Tabelle einzufügen.

icewing
J. Renner
  Mit Zitat antworten Zitat
bidi

Registriert seit: 30. Jan 2005
16 Beiträge
 
#9

Re: Out of Memory - beim öffnen nicht alle Datensätze laden?

  Alt 10. Mai 2007, 18:13
Hallo!

Vielen Dank für eure hilfe! Ich habe jetzt einen View erzeugt... funktioniert soweit.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:33 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