Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Tabellenspalte mit array füllen (https://www.delphipraxis.net/146867-mysql-tabellenspalte-mit-array-fuellen.html)

Ykcim 28. Jan 2010 10:35

Datenbank: MySQL • Version: 5 • Zugriff über: ohne Komponenten

MySQL Tabellenspalte mit array füllen
 
Hallo Zusammen,

ich brauche mal wieder Hilfe...

Ich habe eine Tabelle mit vielen Spalten und ca. 40.000 Datensätzen. Diese Datensätze und weitere Datensätze aus anderen Tabellen werden in mein Programm gezogen. Danach berechne ich eine Spalte (das Ergebnis ist ein Datum, welches basierend auf Lagermengen, Kundenbedarfen und Fertigungsauftragsmengen errechnet wird). Bis hierhin alles kein Problem.
Jetzt möchte ich nur noch die Daten wieder zurück in den MySQL Server schreiben. Das mache ich bislang direkt nach der Berechnung für jeden Datensatz einzeln.
Da ich aber mit ca. 40.000 Datensätzen hantiere, dauert das sehr lange.

Hier die Frage:

Ich kann die Daten, die ich berechnet habe in das Array of Array, in dem alle Daten dieser Tabelle enthalten sind schreiben. Wie kann ich eine ganze Spalte in einer MySQL Tabelle mit einer Update Funktion mit der entsprechenden Spalte aus meinem Array füllen? Kann ich die Werte nur einzeln übergeben, oder kann ich soetwas wie Spalte=Array[x] durchführen?

Das klingt etwas verworren, gebe ich zu. Ich hoffe, Ihr könnte das Problem nachvollziehen.

Vielen Dank im Voraus

Ykcim

Ykcim 28. Jan 2010 13:02

Re: MySQL Tabellenspalte mit array füllen
 
Hilfe!

Ist die Frage so blöd oder sinnlos oder sollte hier wirklich noch nie jemand ein solches Problem gehabt haben, dass niemand die Lösung weiß?

Muss ich weitere Angaben machen oder ist die Frage unverständlich?

Bitte um einen Hinweis!

Ykcim

DeddyH 28. Jan 2010 13:09

Re: MySQL Tabellenspalte mit array füllen
 
Zum Einen ist Pushen vor Ablauf von 24 Stunden nicht gern gesehen. Zum Anderen frage ich mich, ob es nicht einfacher wäre, die Berechnung in eine SP zu verlagern und auf dem DB-Server ausführen zu lassen.

Ykcim 28. Jan 2010 13:16

Re: MySQL Tabellenspalte mit array füllen
 
Hallo DeddyH,

als erstes: Sorry für meine Ungeduld - ich werde Deinen Hinweis in Zukunft berücksichtigen :oops:

Was ist eine SP?

Ich muss einen anderen Weg finden als jetzt, denn es nicht nur der Zeitfaktor. Die Procedur funktioniert komischer Weise 2 Mal, bevor ich dann die nächsten 2 Mal eine Fehlermeldung bekomme. Nach weiteren 2 Malen, in denen es funktioniert kommen 3 Fehlermeldungen, bevor es dann wieder 2 Mal funktioniert und 4 Fehlermeldungen kommen . . .

Ich hatte einen Timer von 5 Minuten draufgelegt. Die Procedur benötigt selbst ca. 90 sec...

Gruß
Ykcim

mkinzler 28. Jan 2010 13:21

Re: MySQL Tabellenspalte mit array füllen
 
Zitat:

Was ist eine SP?
Eine Stored Procedure, also eine Prozedur die in der Datenbank gespeichert ist und vom (Datenbank-)Server ausgeführt wird.

Vielleicht wäre es auch interessant die Fehlermeldung zu kennen

Ykcim 28. Jan 2010 13:28

Re: MySQL Tabellenspalte mit array füllen
 
Damit hatte ich gerechnet - ist ja richtig - musste nur warten, bis sie wieder kam...

Fehlermeldung:
Zugriffsverletzung bei Adresse 00404C53 in Modul 'DatenbankUpdate.exe'. Lesen von Adresse 00000001.

Ykcim 29. Jan 2010 14:26

Re: MySQL Tabellenspalte mit array füllen
 
Hallo Zusammen,

dass ist jetzt NICHT als push gedacht. Ehrlich!

Ich habe nur festgestellt, dass der Arbeitsspeicher beim ausführen der Procedure erst auf 16MB und dann auf fast 50MB am Ende steigt.

Wenn ich die Procedure erneut anschmeiße stegt der Arbeitsspeicher von 48MB auf 52MB und dann noch einmal auf 66MB...

Wenn die Procedure fertig ist, geht der Arbeitsspeicher nicht wieder runter. Ich habe versucht mit Hilfe von setlength() die Arrays zu löschen, aber das hat mich nicht weitergebracht. Kann mir jemand helfen, indem ich erfahre, wie ich sehen kann, wo der Speicher "gefressen" wird und wie ich dann wieder leere. Das zweite ist mir wichtiger.

Vielen Dank

Ykcim

mkinzler 29. Jan 2010 14:40

Re: MySQL Tabellenspalte mit array füllen
 
Zitat:

dass ist jetzt NICHT als push gedacht. Ehrlich!
Könnte aber so aufgefasst werden :zwinker:

Ykcim 29. Jan 2010 15:10

Re: MySQL Tabellenspalte mit array füllen
 
Ich habe mir gestern einen berechtigten Anpfiff dafür abgeholt, dass ich kaum so dumm sein werde, die Personen, auf deren Hilfe ich hoffe, zu verärgern.
Aber ich dachte, dass die Info bei Euch vielleicht die richtige Lösung hervorrufen könnte...

Gruß
Ykcim


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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