AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 10.000 Datensätze ganz schnell einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

10.000 Datensätze ganz schnell einfügen

Ein Thema von tuxic · begonnen am 12. Jul 2004 · letzter Beitrag vom 14. Jul 2004
Antwort Antwort
Seite 1 von 3  1 23      
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#1

10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 12:28
Hi,
ich habe das Problem das ich gaaaaaaaaaaaaaaaaaaanz schnell mindestens(!) 10.000 Datensätze in eine Paradox über die BDE eintragen muss.
Das ganze ist in sofern einfach, weil sich eigentlich nur ein Feld immer verändert (mit einer laufenden Nummer). Dieses Feld ist aber ein Textfeld, und _kein_ AutoInc.
Im moment füge ich die Datensätze via for-Schleife ein, das dauert aber trotzdem ein wenig.
Hat irgendwer einen Optimierungsvorschlag?

MfG
Daniel
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 12:31
Das Problem hatte ich auch mal

Das ist zwar schon länger her, aber bei irgend einer komponente die du hast

gibt es ControlsDisabled oder ControlsEnabled.

Disable die Controls vor dem Einfügen und Enable sie dann wieder.


Schau einfach mal genau nach, funktionieren tut es sicher!

mytar
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#3

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 12:32
Ich kenn mich nicht so gut aus mit datenbanken, aber wie wärs wenn du die daten erst in einen array schreibst und dann den array als blob oder etwas anderes stream ähnliches in die db haust?
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 12:44
@phlux
Bei einer "richtigen" DB würdest _fast_ richtig liegen, dort löst man das über Bulk DML (auch Array DML gennant )

Bei diesem BDE-Zeugs gibt's IMHO so etwas wie BatchMove (habe ich hier irgendwo mal gelesen ).
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#5

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 12:48
Zitat von Robert_G:
@phlux
Bei einer "richtigen" DB würdest _fast_ richtig liegen, dort löst man das über Bulk DML (auch Array DML gennant )

Bei diesem BDE-Zeugs gibt's IMHO so etwas wie BatchMove (habe ich hier irgendwo mal gelesen ).
Dann bin ich ja beruhigt, dass der Schuss ins Blaue geglückt ist
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#6

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 13:38
Zitat von mytar:
Das Problem hatte ich auch mal

Das ist zwar schon länger her, aber bei irgend einer komponente die du hast

gibt es ControlsDisabled oder ControlsEnabled.

Disable die Controls vor dem Einfügen und Enable sie dann wieder.


Schau einfach mal genau nach, funktionieren tut es sicher!

mytar
hey, guter Tipp. Anscheinend schreibt er den Index erst am Ende der INSERT's neu. Wobei das immernoch nen bischen langsam ist - aber viel schneller als vorher

Daniel
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 16:13
Ich hab da einfach ein Sanduhr als MouseStyle gesetzt.


D.h.

setze vor dem einfügen

CursorStyle := csHourGlass; nach dem einfügen

CursorSytel := csDefault;
Such einfach mal in der OH nach CursorStyle oder csHourGlass;

Ich glaub im Form müsste es

Self.CursorStyle sein

dann weis der User, aha jetzt passiert was.

ich hoffe es hilft dir
Francis Obikwelu
  Mit Zitat antworten Zitat
tuxic

Registriert seit: 3. Feb 2004
Ort: Berlin
90 Beiträge
 
#8

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 20:01
Zitat von mytar:
Ich hab da einfach ein Sanduhr als MouseStyle gesetzt.
hehe, ich hab einfach eine Form, auf der ein Zähler immer weiterzählt, dann weiß der User auch, nach wievielen Stunden er seine Mittagspause beenden muss

Aber das mit dem Batchmove werde ich mir mal angugn

Daniel
LOAD "Windows XP", 8, 1
---- immerhin ein floppy, und keine Datasette ----
http://www.devloop.de
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 20:12
Gibst du jeden der 10.000 Schleifendurchläufe optisch aus? Dann ist es klar, dass das länger dauert. Nimm das mal raus, dann sollte es schon VIEL schneller gehen
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10

Re: 10.000 Datensätze ganz schnell einfügen

  Alt 12. Jul 2004, 20:14
Batchmove ist aber eine gute Empfehlung. Geht schnell und ist einfach zu benutzen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:15 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