AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Tabellenspalte mit array füllen

MySQL Tabellenspalte mit array füllen

Ein Thema von Ykcim · begonnen am 28. Jan 2010 · letzter Beitrag vom 29. Jan 2010
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 10:35
Datenbank: MySQL • Version: 5 • Zugriff über: ohne Komponenten
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
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 13:02
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 13:09
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 13:16
Hallo DeddyH,

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

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
Patrick
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 13:21
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
Markus Kinzler
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: MySQL Tabellenspalte mit array füllen

  Alt 28. Jan 2010, 13:28
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.
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: MySQL Tabellenspalte mit array füllen

  Alt 29. Jan 2010, 14:26
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
Patrick
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: MySQL Tabellenspalte mit array füllen

  Alt 29. Jan 2010, 14:40
Zitat:
dass ist jetzt NICHT als push gedacht. Ehrlich!
Könnte aber so aufgefasst werden
Markus Kinzler
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: MySQL Tabellenspalte mit array füllen

  Alt 29. Jan 2010, 15:10
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
Patrick
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:56 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